SDN, nama penuh (Software Defined Network), ialah seni bina rangkaian inovatif baharu dalam Internet moden Teknologi terasnya OpenFlow memisahkan satah kawalan dan satah data peralatan rangkaian untuk mencapai kawalan trafik rangkaian yang fleksibel, menyediakan platform yang baik untuk rangkaian dan aplikasi. Mininet ialah rangkaian yang ditakrifkan perisian ringan dan platform ujian ia menggunakan teknologi virtualisasi ringan untuk menjadikan satu sistem kelihatan seperti rangkaian lengkap yang menjalankan sistem kernel pemikiran dan kod pengguna, yang juga boleh difahami secara ringkas sebagai platform virtualisasi berasaskan proses dalam sistem rangkaian SDN. Ia menyokong pelbagai protokol seperti OpenFlow dan OpenvSwith juga boleh mensimulasikan hos rangkaian lengkap, memaut dan menghidupkan komputer yang sama dan memudahkan pembangunan interaktif, ujian dan Demonstrasi, terutamanya yang menggunakan teknologi OpenFlow dan SDN juga mungkin untuk memindahkan kod daripada platform virtualisasi proses ini kepada persekitaran sebenar.
Ciri yang dilaksanakan oleh MininetKaedah pemasangan Mininet agak mudah Ia boleh dipasang dalam sistem Linux melalui kod sumber Git dan skrip pemasangan terbina dalam Di sini saya menggunakan pemasangan lalai semua pakej berkaitan Mininet, seperti: OpenFlow. POX dan alatan lain akan disimpan dalam fail semasa secara lalai Direktori rumah pengguna.
<br>
# git clone git://github.com/mininet/mininet<br>
# cd mininet/util/<br>
# ./install.sh -a<br>
#ls<br>
mininet of-dissector oflops selalunya pox aliran terbuka<br>
Rajah 1. Contoh rajah rangkaian mudah
Memandangkan Mininet menyokong rangkaian tersuai, berikut ialah contoh rangkaian mudah seperti yang ditunjukkan dalam Rajah 1. Masukkan terus perintah mn dalam sistem rangkaian Mininet untuk mencipta rangkaian topologi satu lapisan dalam sistem ini, dari mana dua hos dan satu dicipta oleh lalai, dan pengawal dan suis diaktifkan. Pada masa yang sama, anda juga boleh menyemak status pautan melalui jaring arahan Contoh disenaraikan secara ringkas dahulu, seperti mendayakan pelayan web dan klien dalam sistem Mininet.
<br>
#mn<br>
*** Mencipta rangkaian<br>
*** Menambah pengawal<br>
*** Menambah hos:<br>
h1 h2<br>
*** Menambah suis:<br>
s1<br>
*** Menambah pautan:<br>
(h1, s1) (h2, s1)<br>
***Mengkonfigurasi hos<br>
h1 h2<br>
*** Pengawal permulaan<br>
*** Memulakan 1 suis<br>
s1<br>
*** Memulakan CLI:<br>
mininet><br>
Dayakan dan lumpuhkan perkhidmatan web
Adalah mudah untuk mewujudkan pelayan Web dalam persekitaran Mininet Daripada contoh di bawah, anda boleh melihat bahawa pelayan Web ditubuhkan daripada hos1 dan mendapatkan permintaan HTTP daripada Hos lain kepada pelayan Web.
<br>
mininet> h1 python -m SimpleHTTPServer 80 & #Dayakan perkhidmatan Web pada hos h1<br>
mininet> h2 wget -O - h1 #Muat turun kandungan tapak web h1 pada hos h2<br>
--2013-11-04 00:05:40-- http://10.0.0.1/<br>
Menyambung ke 10.0.0.1:80... disambungkan.<br>
Permintaan HTTP dihantar, menunggu jawapan... 200 OK<br>
…………<br>
Panjang: 760 [teks/html<br>
<br>
<title>Penyenaraian direktori untuk /</title>
0K 100% 1.65J=0s
04-11-2013 00:05:40 (1.65 MB/s) - ditulis kepada stdout [760/760]
mininet> h1 kill %python # Bunuh proses web
10.0.0.2 - - [04/Nov/2013 00:05:40] "DAPATKAN / HTTP/1.1" 200 -
bash: baris 23: bunuh: python: ambik spec kerja
Ujian ping
Pada sistem Mininet, lakukan ujian interkoneksi antara dua hos.
<br>
mininet> h1 ping -c4 h2<br>
PING 10.0.0.2 (10.0.0.2) 56(84) bait data.<br>
64 bait daripada 10.0.0.2: icmp_req=1 ttl=64 masa=1.55 ms<br>
64 bait daripada 10.0.0.2: icmp_req=2 ttl=64 masa=0.094 ms<br>
64 bait daripada 10.0.0.2: icmp_req=3 ttl=64 masa=0.075 ms<br>
64 bait daripada 10.0.0.2: icmp_req=4 ttl=64 masa=0.071 ms
--- 10.0.0.2 statistik ping ---
4 paket dihantar, 4 diterima, kehilangan paket 0%, masa 3006ms
rtt min/avg/maks/mdev = 0.071/0.448/1.553/0.638 ms
Lihat nod dan pautan
<br>
mininet>
nod yang tersedia ialah:<br>
c0 h1 h2 s1<br>
mininet> net<br>
h1 h1-eth0:s1-eth1<br>
h2 h2-eth0:s1-eth2<br>
s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0<br>
c0<br>
<br>
Rajah 2. Contoh topologi tersuai
Memandangkan Mininet juga menyokong topologi berparameter, topologi fleksibel boleh dibuat melalui kod Python, yang juga boleh dikonfigurasikan mengikut parameter tersuai yang diluluskan, dan boleh digunakan semula dalam berbilang persekitaran Struktur umum kodnya disenaraikan secara ringkas di bawah .
#!/usr/bin/python<br>
daripada mininet.net import Mininet
daripada mininet.util import dumpNodeConnections
daripada mininet.log import setLogLevel
def __init__(diri, n=2, **pilihan):
Topo.__init__(diri, **pilih)
suis = self.addSwitch('s1') #Tambah suis dalam topologi
untuk h dalam julat(n):
hos = self.addHost('h%s' % (h + 1)) #Tambah hos pada topologi
self.addLink(host, switch) #Tambah topologi sambungan dua hala
topo = SingleSwitchTopo(n=4)
net = Mininet(topo) #Kelas utama untuk mencipta dan mengurus rangkaian
net.start() #Mulakan rangkaian topologi anda
cetak "Lambakan sambungan hos"
dumpNodeConnections(net.hosts) #Buang sambungan fail
cetak "Menguji ketersambungan rangkaian"
net.pingAll() #Semua nod menguji kesalinghubungan antara satu sama lain
net.stop() #Hentikan rangkaian anda
setLogLevel('info') #Tetapkan tahap output lalai Mininet, tetapkan maklumat ia akan memberikan beberapa maklumat berguna
SimpleTest()
# python test-single.py<br>
*** Mencipta rangkaian<br>
*** Menambah pengawal<br>
*** Menambah hos:<br>
h1 h2 h3 h4<br>
*** Menambah suis:<br>
s1<br>
*** Menambah pautan:<br>
(h1, s1) (h2, s1) (h3, s1) (h4, s1)<br>
***Mengkonfigurasi hos<br>
h1 h2 h3 h4<br>
*** Pengawal permulaan<br>
*** Memulakan 1 suis<br>
s1<br>
Lambakan sambungan hos<br>
h1 h1-eth0:s1-eth1<br>
h2 h2-eth0:s1-eth2<br>
h3 h3-eth0:s1-eth3<br>
h4 h4-eth0:s1-eth4<br>
Menguji ketersambungan rangkaian<br>
*** Ping: menguji kebolehcapaian ping<br>
h1 -> h2 h3 h4<br>
h2 -> h1 h3 h4<br>
h3 -> h1 h2 h4<br>
h4 -> h1 h2 h3<br>
*** Keputusan: 0% jatuh (12/12 diterima)<br>
mn --innamespace
# mn --innamespace --tukar pengguna<br>
*** Mencipta rangkaian<br>
*** Menambah pengawal<br>
*** Menambah hos:<br>
h1 h2<br>
*** Menambah suis:<br>
s1<br>
*** Menambah pautan:<br>
(h1, s1) (h2, s1)<br>
c0 <br> s1
*** Menguji rangkaian kawalan<br>
s1 -> c0<br>
c0 -> s1<br>
*** Keputusan: 0% jatuh (2/2 diterima)<br>
h1 h2
*** Pengawal permulaan
*** Memulakan 1 suis
s1
*** Memulakan CLI:
Jadual 1. Arahan lazim Mininet
Atas ialah kandungan terperinci Mininet sistem rangkaian SDN. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!