Perisian Yang Ditetapkan Perangkaian (SDN) - Sambungan OpenFlow dan OVSDB
Benamkan dokumen secara langsung di laman web anda dengan beberapa baris kod
Artikel ini didasarkan pada sambungan OpenFlow dan OVSDB antara pengawal SDN dan Openflow berasaskan suis dan menyediakan butiran mengenai kitaran hayat sambungan. Kami akan menggunakan pengawal SDN sumber terbuka iaitu Opendaylight (ODL) Karbon keluaran dan suis maya Openflow iaitu OpenVswitch (OVS) versi 2.6.0 untuk menerangkan mengenai sambungan OVSDB dan Openflow.
Pengawal SDN menguruskan aliran Openflow yang berpusat melalui dua jenis sambungan:
- OVSDB
- Openflow
Sambungan OVSDB dan Openflow
OVSDB adalah protokol pengurusan pangkalan data OVS yang mentakrifkan skema untuk pangkalan data OVS dan spesifikasi untuk komunikasi antara pengawal dan suis. Pengawal SDN menggunakan protokol ini untuk mengawal suis OVS dengan memasukkan pangkalan datanya dengan konfigurasi yang dimaksudkan.
Biasanya, pengawal SDN berjalan dalam mod pasif untuk mendengar sambungan OVSDB dan Openflow dari OVS pada port 6640 dan 6653 masing-masing.
Jadi, pertama, kita mulakan pengawal ODL, anda boleh memuat turunnya disini. Ia adalah prasyarat untuk menetapkan pembolehubah persekitaran JAVA_HOME dalam sistem anda kepada versi Java terkini. Running ODL begitu mudah, hanya lakukan langkah-langkah di bawah:
- Muat turun pengedaran ODL dari disini.
- Unzip edaran ODL.
- Masukkan sub-direktori 'bin' yang terletak di bawah direktori peringkat atas pakej yang dimuat turun.
- Jalankan perintah berikut untuk mendapatkan pengawal anda: karaf
Di bawah adalah gambar untuk langkah-langkah di atas yang dilakukan:
Oleh kerana kita perlu menguruskan suis OVS yang mana sambungan OVSDB dan Openflow akan dibuat, maka plugin Openflow dan OVSDB perlu dipasang ke ODL. yang perlu dilakukan Ini boleh dilakukan seperti ditunjukkan di bawah:
Sebaik sahaja plugin Openflow dan OVSDB dipasang, ODL akan mula mendengar sambungan Openflow dan OVSDB di port 6653 dan 6640. Ini boleh diperiksa pada pengawal dengan menjalankan arahan berikut:
netstat -a | grep 6653
netstat -a | grep 6640
Diketahui bahawa suis OVS sepatutnya sudah berjalan sebelum melaksanakan arahan OVS. Untuk menjalankan OVS di Ubuntu, jalankan arahan berikut dengan kebenaran root:
sudo /etc/init.d/openvswitch-switch start
Ia boleh didapati sebagai perkhidmatan, jadi anda juga boleh memeriksa statusnya.
sudo /etc/init.d/openvswitch-switch status
Sekali, OVS sedang berjalan, anda juga boleh melaksanakan arahan CLInya. Sebagai contoh,
Sudo ovs-vsctl show
Berikut ialah imej untuk output pelaksanaan arahan di atas:
Di sebelah OVS, arahan di bawah dijalankan untuk memulakan sambungan OVSDB dengan pengawal:
ovs-vsctl set-manager tcp: : 6640
Untuk mengesahkan bahawa sambungan itu ditubuhkan, di bawah arahan boleh dijalankan yang menunjukkan bendera 'is_connected' ditetapkan kepada benar dalam output.
Sudo ovs-vsctl show
Sambungan openflow dibuat pada jambatan, jadi sama ada anda boleh membuat jambatan pada OVS atau ODL juga boleh membuat jambatan pada OVS dengan menghantar konfigurasi ke OVS melalui sambungan OVSDB. Di atas jambatan di OVS, di bawah arahan boleh dijalankan untuk menyambungkan jambatan ke ODL, yang menetapkan pembentukan sambungan Openflow antara ODL dan OVS.
pengawal set ovs-vsctl tcp: : 6653
Semak di bawah untuk mendapatkan butiran sambungannya.
Seperti yang telah kita lihat dari sisi OVS bahawa sambungan OVSDB dan Openflow telah dibuat dan sama boleh disahkan di sisi ODL dengan menjalankan perintah berikut.
netstat -a | grep 6653
netstat -a | grep 6640
Semak imej di bawah untuk output arahan yang mengesahkan sambungan ESTABLISHED keadaan:
Oleh kerana sambungan OVSDB dan Openflow berasaskan TCP, mesej yang ditukar antara ODL dan OVS dapat dengan mudah ditangkap melalui perisian Wireshark. Semak di bawah imej tangkapan paket yang menunjukkan mesej ditukar semasa persediaan sambungan.
Dalam log pengambilalihan paket Wireshark, anda boleh melihat pelbagai mesej Openflow yang ditukar antara pengawal dan OVS semasa persediaan sambungan.
Seperti yang anda lihat semasa persediaan sambungan, ODL menghantar mesej Openflow FEATURES_REQUEST dan sebagai tindak balas, ODL menerima FEATURES_REPLY dari OVS. Di dalam mesej FEATURES_REPLY, ODL mendapat ID datapath (iaitu pengecam unik) jambatan OVS yang menjaga penghantaran (berdasarkan peraturan Openflow yang dikonfigurasi oleh OFL) lalu lintas di antara mesin Maya yang disambungkan ke port OVS.
Di sebelah OVS, arahan berikut boleh dijalankan untuk menunjukkan butiran jambatan.
sudo ovs-ofctl menunjukkan br-int -OOpenFlow13
Semak imej di bawah untuk output arahan:
Di sini, anda boleh melihat FEATURE_REPLY memaparkan ID datapath (dalam format hex) jambatan pada OVS.
Malah ODL mempunyai ciri dashboard DLUX yang memberikan antara muka web GUI kepada pengawal ODL di url http://localhost:8181/index.html di mana pengguna ODL boleh log masuk (oleh nama pengguna dan kata laluan lalai adalah 'admin') dan memeriksa topologi rangkaian pada pelayar sistem di mana ODL sedang berjalan. Semak imej di bawah untuk sama.
Dalam imej di atas, anda dapat melihat suis OVS ditunjukkan dalam topologi rangkaian yang diuruskan oleh pengawal ODL. Oleh kerana, kita telah menyambung satu suis sahaja, itulah sebabnya hanya satu nada Openflow ditunjukkan. Di sini, suis OVS ditunjukkan dengan ID datapath dalam format perpuluhan.
Untuk memadam sambungan Openflow dengan ODL, arahan di bawah boleh dijalankan di OVS:
ovs-vsctl del-pengawal
Untuk memadam sambungan OVSDB dengan ODL, arahan di bawah boleh dijalankan di OVS:
ovs-vsctl del-manager
Selepas sambungan dipadamkan, 'is_conncted' bendera yang 'benar' apabila sambungan ditubuhkan, akan hilang daripada output 'ovs-vsctl show' perintah CLI OVS.
Semak imej di bawah untuk penghapusan sambungan OpenFlow dan OVSDB yang dimulakan dari sisi OVS:
Untuk penyahpepijat dan penyelesaian masalah, anda boleh menyemak fail log yang dikekalkan dalam ODL dan OVS.
Laluan pembalakan ODL
Apabila pengedaran ODL (yang telah anda muat turun) dikecilkan dan anda menjalankan binari 'karaf', maka 'log' sub-direktori akan dibuat yang mengandungi fail karaf.log dan laluan generik mereka ialah: ~ / pengedaran-karaf- - / data / log.
Semak imej di bawah untuk fail log sisi ODL.
Laluan pembalakan OVS
Apabila OVS sedang berjalan, ia menghasilkan fail log OVSDB yang dinamakan 'ovsdb-server.log' dan fail log Openflow bernama 'ovs-vswitchd.log' di laluan:
/ var / log / openvswitch
Semak imej di bawah untuk fail log sisi OVS untuk OVSDB (ovsdb-server.log) dan modul Openflow (ovs-vswitchd.log) OVS.
+ === +
Rujukan: