Bond aktif-sandaran Linux pada EVPN all-active: apa yang rosak
Segmen EVPN all-active menghantar unicast ke mana-mana daun, manakala bond aktif-sandaran Linux mendengar pada satu port sahaja. Selaraskan kedua-dua model sebelum menguji.
Letakkan bond aktif-sandaran pada pelayan dan segmen Ethernet all-active pada fabrik, dan separuh trafik balik boleh hilang tanpa satu pun kaunter ralat bergerak. Kedua-dua konfigurasi itu tidak salah dengan sendirinya. Masalahnya terletak pada penyerahan antara keduanya, apabila satu pihak memilih satu port dan pihak lain menganggap setiap daun yang bersambung boleh menyampaikan. Ikuti satu bingkai dalam setiap arah dan ketidakseragaman menjadi jelas.
Apa yang dilakukan aktif-sandaran pada bingkai masuk
Mod bonding 1 mengekalkan tepat satu hamba dalam laluan penghantaran dan menukarnya hanya apabila yang semasa gagal. Bahagian itu memang terkenal. Yang penting di sini ialah bahagian penerimaan: kernel hanya menyerahkan bingkai kepada tindanan jika ia tiba pada hamba aktif, dan membuang bingkai yang muncul pada mana-mana hamba lain. Tetapan all_slaves_active ini wujud khusus untuk melonggarkan peraturan itu, dan secara lalai ia dimatikan. ip -d link show bond0 mencetak nilai semasa di sebelah mod.
/proc/net/bonding/bond0 menamakan hamba aktif dan melaporkan keadaan pautan bagi setiap hamba. Fail itu satu-satunya sumber jujur tentang port mana yang sedang membawa trafik.
Hos dalam mod ini mempunyai satu laluan penerimaan yang boleh digunakan pada satu masa, dipilih secara tempatan tanpa pengetahuan tentang fabrik. Jika bingkai untuk hos itu tiba pada kabel yang satu lagi, port suis mengiranya sebagai diterima, tindanan hos tidak pernah melihatnya, dan semua kaunter kecuali kaunter buangan hos itu sendiri kelihatan sihat sepenuhnya.
Apa yang dilakukan multihoming all-active pada hop seterusnya yang jauh
Multihoming EVPN menerangkan satu set daun yang berkongsi satu segmen Ethernet, yang dikenali oleh ESI, dan mengumumkan segmen itu kepada seluruh fabrik. Dalam model all-active, rakan sebaya jauh memasang lebih daripada satu hop seterusnya untuk alamat segmen. Unicast menuju pelayan kemudian boleh tiba di mana-mana daun, dan fabrik bebas memilih bagi setiap aliran. Itulah keseluruhan tujuan reka bentuk, dan itulah juga andaian yang mesti dipenuhi oleh bond pelayan.
Trafik yang dibanjiri mengikut peraturan lain. Daun memilih penghantar yang ditetapkan bagi setiap segmen, jadi broadcast, unicast tidak dikenali dan multicast biasanya masuk melalui salah satu daripadanya. Jadi unicast dan banjir membuat dua keputusan berasingan, dan hanya satu daripadanya kelihatan dalam keadaan bond hos.
Di mana dua pemilihan itu tidak bersetuju
Kernel memilih hamba aktifnya daripada keadaan pautan dan dasarnya sendiri. Fabrik memilih hop seterusnya daripada laluan EVPN, dan penghantar yang ditetapkan daripada pemilihan antara daun. Tiada satu proses pun berunding dengan yang lain. Apabila mereka memilih daun yang berbeza, kegagalan bergantung pada arah: apa yang dihantar pelayan keluar seperti biasa, dan balasannya hilang.
Terdapat dua jalan keluar yang disokong, dan kedua-duanya tidak boleh ditukar ganti. Beri hos satu bond yang boleh dianggap fabrik sebagai satu sambungan logik, yang dalam amalan bermaksud bond LACP yang dirundingkan dengan daun, dan kedua-dua pautan benar-benar aktif bersama. Atau terima juga penghantaran single-active daripada fabrik, supaya segmen mengikut model satu-port-pada-satu-masa yang sama seperti bond. Yang tidak berkesan ialah segmen all-active di hadapan bond yang hanya mendengar pada satu port, kecuali anda sengaja menghidupkan penerimaan pada hamba tidak aktif dan menerima penghantaran berganda yang menyusul.
Mengapa kabel sandaran terus kelihatan sihat
Kabel yang tidak membawa trafik tetap melaporkan pautan naik, dan hamba sedia dalam bond direka untuk kelihatan bersedia. Pengendali membaca itu sebagai lebihan dan berhenti bertanya.
Tanyakan sebaliknya port fizikal mana yang digunakan oleh bingkai balik. Pada hos, kira paket diterima bagi setiap hamba dan bukan bagi setiap bond, kerana kaunter bond menyembunyikan asimetri itu. Pada daun, lihat entri penghantaran jambatan bagi MAC pelayan dan set hop seterusnya yang dibawa oleh laluan EVPN. Jika entri menunjuk ke daun yang pautan hosnya ialah sandaran, reka bentuk itu menghantar ke port yang diabaikan oleh hos. Ini ketakseragaman konfigurasi dan bukan kerosakan perkakasan, dan tidak berapa banyak pemantauan keadaan pautan akan mendedahkannya.
Uji penghantaran dalam kedua-dua arah, bukan keadaan pautan
Bina matriks dengan satu baris bagi setiap kegagalan dan satu lajur bagi setiap arah, kemudian isi dengan trafik yang dihantar dan bukan keadaan antara muka. Baris satu ialah operasi biasa, dan di situlah ketakseragaman bersembunyi, kerana gejalanya kelihatan seperti masalah aplikasi.
Kemudian tanggalkan pautan hos aktif, tanggalkan satu daun, tanggalkan uplink daun itu, dan pulihkan setiap satu secara bergilir. Selepas setiap langkah, catat hamba aktif, keadaan segmen EVPN, entri penghantaran jauh dan daya pengeluaran yang diperhatikan dalam kedua-dua arah. Daun yang kehilangan laluannya ke fabrik sementara pautan hosnya kekal naik ialah kes yang menarik, kerana sambungan itu kekal diumumkan dan boleh menjadi jalan buntu secara senyap. Uji dengan aliran unicast baharu dan dengan trafik banjir yang bergantung padanya aplikasi, kerana kedua-duanya menggunakan keputusan penghantaran yang berbeza.
Terima reka bentuk hanya apabila matriks menunjukkan penghantaran dua hala melalui laluan yang anda maksudkan. Dua kabel dengan pautan naik bukan hasil itu.