Dua tapak peer BGP melalui terowong IPsec, mempelajari prefiks satu sama lain, dan rajah dilabel semula sebagai kawalan laluan. Label itulah permulaan kekeliruan. Sesi memang menukar kebolehcapaian dan memang menggunakan dasar, tetapi ia tiada suara tentang pembekal, kabel atau penghala mana yang membawa paket disulitkan. Saya pernah melihat pasukan membina semula terowong yang berfungsi kerana mereka menjangka perubahan laluan BGP akan memindahkan trafik ke laluan gentian lain yang sesi itu tidak pernah boleh pengaruhi.

Apa yang orang andaikan sesi beli

Sebahagian besar jangkaan datang daripada rupa perubahan laluan di makmal. Anda mengumumkan prefiks melalui terowong, sisi jauh memasangnya, dan trafik bergerak. Urutan yang sama berlaku pada penghala yang benar-benar mempunyai kawalan kejuruteraan trafik, jadi kedua-duanya dikelirukan. Di makmal kedua-dua tapak biasanya berkongsi satu pautan akses, dan itulah sebabnya perbezaan tidak pernah muncul di sana.

BGP ialah protokol kebolehcapaian. Ia memberitahu peer bahawa anda boleh menghantar paket untuk sesuatu prefiks dan membenarkan setiap sisi menyusun tawaran yang diterimanya. Itu benar-benar berguna melalui terowong: prefiks muncul dan hilang apabila tapak datang dan pergi, dan anda boleh menolak julat tanpa menulis laluan statik pada setiap peranti tepi. Apa yang ia tidak lakukan ialah meletakkan penghala pembekal di bawah kawalan anda.

Underlay membawa pengepala luar. Titik akhir terowong anda menghantar paket disulitkan ke alamat peer, dan rangkaian antara kedua-dua alamat itu memajukannya menggunakan laluan yang dipasang oleh pengendalinya. Tiada apa dalam sesi BGP mengubah keputusan itu, melainkan pembekal yang sama menawarkan perkhidmatan disokong yang berbuat demikian.

Apa yang sebenarnya dibawa sesi

Penutur BGP membuka sambungan TCP ke port 179 pada peer-nya, menggunakan format mesej dan atribut laluan yang ditakrifkan dalam RFC 4271. Apabila alamat peer berada di dalam terowong, terowong mesti aktif dan alamat itu boleh dicapai sebelum sesi boleh bermula. Pertukaran IKE yang selesai bukan jiran BGP. Pelaksanaan IPsec berasaskan laluan hanya melepaskan trafik apabila laluan terowong yang sepadan wujud, dan yang berasaskan dasar memerlukan alamat peer di dalam pemilih terlindung. Membalikkan perkara ini menghasilkan keadaan klasik di mana terowong hijau dan sesi duduk terbiar.

Setelah sesi aktif, dasar menentukan apa yang melintasinya. Senarai prefiks, penapis AS-path, siling maksimum prefiks dan keputusan jelas tentang laluan lalai ialah minimum, dan ia terpakai dalam kedua-dua arah. Peer yang menerima semua yang diterimanya boleh memberi anda laluan lalai yang senyap menggantikan akses internet tempatan. Kedua-dua arah memerlukan senarai berasingan, kerana apa yang anda terima daripada peer dan apa yang anda umumkan kepadanya ialah dua keputusan berbeza.

router bgp 65010
 neighbor 10.255.0.2 remote-as 65020
 address-family ipv4 unicast
  neighbor 10.255.0.2 prefix-list SITE-B-IN in
  neighbor 10.255.0.2 prefix-list SITE-B-OUT out
  neighbor 10.255.0.2 maximum-prefix 50

Seterusnya MTU menggigit. Enkapsulasi mengecilkan muatan berguna, jadi kemas kini besar boleh menyekat sesi yang kelihatan mantap: peer kekal aktif, prefiks tidak pernah tiba, dan tiada apa yang jelas masuk ke log. Hadkan TCP MSS pada antara muka terowong, atau tetapkan MTU terowong dengan ruang untuk overhed, sebelum menyalahkan penapis.

Ke mana paket luar masih pergi

Paket disulitkan dari satu tapak ke tapak lain keluar melalui apa yang dipilih oleh penghala tempatan untuk alamat awam peer. Jika kedua-dua tapak membeli transit daripada pembekal yang sama, melintasi kemudahan metro yang sama, atau satu pihak berada di belakang NAT gred pembawa, terowong terselamat daripada kegagalan pembekal hanya secara kebetulan. Mengira ikon terowong dalam alat pemantauan tidak memberitahu anda apa-apa tentang itu.

Pemilihan laluan dan pemasangan pemajuan juga peristiwa berasingan. Sesuatu prefiks boleh duduk dalam jadual BGP sebagai terbaik dan masih tiada dalam jadual pemajuan, kerana hop seterusnya tidak dapat diselesaikan atau laluan yang lebih khusus menang. Apabila seseorang melaporkan bahawa BGP telah mempelajari prefiks itu tetapi trafik tidak mengalir, soalan berguna ialah sama ada ia dipasang dan hop seterusnya mana yang ditujunya.

Jawapan jujur untuk semakan reka bentuk ialah senarai kebergantungan dikongsi: litar akses, pembekal huluan, kemudahan dan mana-mana peranti berkeadaan pada laluan balik. Sesi melalui terowong tidak boleh membuang kebergantungan yang ia tidak duduk di atasnya.

Tiga keputusan yang wajar dipisahkan

Apabila reka bentuk mencampurkan perkara ini, setiap perbualan gangguan berputar-putar. Pisahkan dahulu di atas kertas, kemudian petakan setiap satu kepada peranti yang benar-benar menguatkuasakannya.

DecisionWho controls itTypical failure
Which prefixes may cross the relationship?Both sides, through prefix and AS-path policy you configure deliberatelyA default route accepted by mistake, or a vague aggregate
Which overlay next hop wins?Local BGP selection plus next-hop resolution on your own routersPrefix learned, never installed in the forwarding table
Where do the encrypted packets travel?The underlay operators, unless a supported service adds real controlPath diversity that was never there

Setiap baris mempunyai pemilik berbeza. Yang pertama ialah rundingan, yang kedua ialah konfigurasi pada peranti anda, yang ketiga kebanyakannya rangkaian orang lain. Permintaan perubahan yang menamakan baris yang disentuhnya jauh lebih mudah diluluskan daripada yang menyebut masalah BGP.

Mod kegagalan yang wajar dirancang

Menerima laluan ringkasan peer ialah kecederaan diri yang paling biasa. Seseorang mengumumkan agregat pendek untuk memudahkan pertukaran, sisi jauh menerimanya, dan trafik bagi julat yang bukan di belakang terowong mengikut terowong dan mati. Tapis pada prefiks yang dijangka tepat, atau gunakan senarai prefiks dengan had yang betul, dan jangan sekali-kali menerima agregat kosong kerana ia membuatkan sesi kelihatan kemas.

Masa pengeluaran ialah yang kedua. Pengesanan bergantung pada pemasa pegangan, BFD jika anda mengaktifkannya, pengesanan peer mati terowong dan betapa pantas sisi jauh berhenti mengumumkan. Sesi sedia ada ialah masalah berasingan: laluan baharu boleh memulihkan sambungan baharu sementara sesi TCP yang telah terbentuk terus menggunakan alamat lapuk, dan tembok api berkeadaan atau NAT di laluan mungkin menyimpan entri yang tidak lagi sepadan. Letakkan pemulihan aplikasi dalam kriteria penerimaan dan bukan menganggap perubahan laluan menyelesaikan segala-galanya.

Yang ketiga ialah asimetri laluan balik. Trafik boleh tiba melalui terowong dan kembali melalui pautan pembekal yang tidak pernah dimaksudkan untuk membawanya, yang muncul sebagai audio sehala, jabat tangan gagal atau tembok api yang membuang balasan. Periksa kedua-dua arah secara berasingan.

Apa yang perlu ditulis dalam kontrak, dan cara mengesahkannya

Minta prefiks yang dibenarkan secara bertulis: siapa yang dibenarkan mencipta setiap julat, sama ada laluan lalai dibenarkan, dan keluarga alamat mana yang disokong oleh perkhidmatan terowong. RFC 8212 menjadikan dasar import dan eksport yang jelas sebagai jangkaan untuk eBGP dalam pelaksanaan yang mengikutnya, jadi peer yang masih bergantung pada tingkah laku tersirat menerima apa sahaja wajar dipersoalkan.

Kemudian sahkan daripada peranti dan bukan daripada rajah. Arahan berguna pada penghala gaya FRR:

show bgp summary
show bgp ipv4 unicast 10.10.0.0/16
show bgp ipv4 unicast neighbors 10.255.0.2 advertised-routes
show ip route 10.10.0.0/16

Tambah dua pemerhatian yang tidak dapat diberikan oleh jadual laluan. Tangkap pada antara muka luar untuk mengesahkan alamat mana yang sebenarnya disasarkan oleh paket terkapsul, contohnya tcpdump -ni eth0 udp port 51820 untuk terowong WireGuard, atau penapis ESP untuk IPsec. Kemudian jejaki ke arah alamat awam peer dan bandingkan hop dengan jejak di dalam terowong; jika kedua-duanya mengikut rantaian pembekal yang sama, lebihan anda hidup dalam dasar laluan dan bukan dalam rangkaian.

Akhir sekali, uji pengeluaran dengan sengaja. Turunkan terowong semasa tetingkap penyelenggaraan, catat berapa lama prefiks kekal dipasang, apa yang berlaku kepada sesi sedia ada, dan sama ada sisi jauh kembali ke laluan yang benar-benar anda terima. Latihan itu lebih banyak bercakap tentang reka bentuk daripada mana-mana rajah.

Laluan bukan kebenaran. Prefiks yang anda bersetuju untuk bertukar tidak menyatakan apa-apa tentang pengguna mana yang boleh mencapai perkhidmatan mana di belakang terowong, jadi kekalkan pengesahan, perkhidmatan dibenarkan dan tembok api hos tepat di tempat asalnya. Peer yang boleh dicapai juga bukan kebenaran untuk transit tanpa had atau mencipta alamat sewenang-wenangnya, dan kuasa seperti itu tergolong dalam kontrak sebagai soalan komersial, bukan dalam baris dasar BGP.

  • Namakan prefiks yang boleh dicipta oleh setiap pihak, dan yang tidak boleh diterimanya sekali-kali.
  • Hadkan MSS pada terowong dan sahkan bahawa kemas kini besar benar-benar tiba.
  • Senaraikan kebergantungan underlay yang dikongsi, bukan bilangan terowong.
  • Ukur masa pengeluaran sebenar dan catat apa yang dilakukan aplikasi.

Artikel berkaitan