Ikki sayt IPsec tunneli orqali BGP peering qiladi, bir-birining prefikslarini o'rganadi va diagramma yo'lni boshqarish deb qayta nomlanadi. Aynan shu yorliq chalkashlikning boshlanishi. Sessiya yetib borishni almashadi va siyosatni qo'llaydi, lekin qaysi provayder, kabel yoki router shifrlangan paketlarni tashiydi degan savolga uning aytadigan gapi yo'q. Men ishlab turgan tunnelni qayta qurayotgan jamoani ko'rdim, chunki ular BGP marshrut o'zgarishi trafikni sessiya hech qachon ta'sir qila olmaydigan boshqa tolali yo'lga ko'chiradi deb kutgan edi.

Odamlar sessiya nima sotib oladi deb o'ylaydi

Kutishning ko'p qismi laboratoriyada marshrut o'zgarishi qanday ko'rinishidan kelib chiqadi. Siz tunnel orqali prefiks e'lon qilasiz, uzoq tomon uni o'rnatadi va trafik harakatlanadi. Xuddi shu ketma-ketlik haqiqatan ham trafik injiniringi boshqaruvlari bor routerda ham sodir bo'ladi, shuning uchun ikkalasi aralashtiriladi. Laboratoriyada ikkala sayt odatda bitta kirish liniyasini bo'lishadi va farq aynan shuning uchun u yerda hech qachon ko'rinmaydi.

BGP — yetib borish protokoli. U peer'ga prefiks uchun paketlarni yetkaza olishingizni aytadi va har bir tomonga olingan takliflarni tartiblash imkonini beradi. Tunnel orqali bu haqiqatan foydali: saytlar kelib-ketganda prefikslar paydo bo'ladi va yo'qoladi, va har bir chekka qurilmada statik marshrut yozmasdan diapazonni rad eta olasiz. U qilmaydigan narsa — provayder routerlarini sizning nazoratingizga o'tkazish.

Quyi qatlam tashqi sarlavhani tashiydi. Tunnel oxirgi nuqtangiz shifrlangan paketlarni peer manziliga yuboradi va bu ikki manzil orasidagi tarmoq ularni operatorlari o'rnatgan marshrutlar bo'yicha uzatadi. BGP sessiyasida hech narsa bu qarorni o'zgartirmaydi, agar o'sha provayder buni qiladigan qo'llab-quvvatlanadigan xizmat taklif qilmasa.

Sessiya aslida nimani tashiydi

BGP spikeri peer'ining 179 portiga TCP ulanishini ochadi, RFC 4271 da belgilangan xabar formatlari va yo'l atributlaridan foydalanib. Peer manzili tunnel ichida bo'lganda, sessiya boshlanishidan oldin tunnel ko'tarilgan va manzil yetib boradigan bo'lishi kerak. Tugallangan IKE almashinuvi BGP qo'shnisi emas. Marshrutga asoslangan IPsec tatbiqlari faqat mos tunnel marshruti mavjud bo'lganda trafikni o'tkazadi, siyosatga asoslangan tatbiq esa himoyalangan selektorda peer manzilini talab qiladi. Buni teskari qilish tunnel yashil, sessiya esa bekor o'tirgan klassik holatni keltirib chiqaradi.

Sessiya ko'tarilgach, siyosat undan nima o'tishini hal qiladi. Prefiks ro'yxatlari, AS-path filtrlari, maksimal prefikslar chegarasi va standart marshrutlar bo'yicha aniq qaror minimal hisoblanadi va ular ikki tomonda ham amal qiladi. Olgan hamma narsasini qabul qiladigan peer sizga mahalliy internet kirishini jimgina almashtiradigan standart marshrut berishi mumkin. Ikki tomon alohida ro'yxatlarga muhtoj, chunki peer'dan qabul qilganingiz va unga e'lon qilganingiz ikki xil qaror.

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

Keyin MTU tishlaydi. Inkapsulyatsiya foydali yukni kamaytiradi, shuning uchun katta yangilanish to'liq o'rnatilgandek ko'rinadigan sessiyani to'xtatishi mumkin: peer yuqorida qoladi, prefikslar hech qachon kelmaydi va jurnalga aniq narsa tushmaydi. Filtrlarni ayblashdan oldin tunnel interfeysida TCP MSS ni cheklang yoki qo'shimcha xarajat uchun joy qoldirib tunnel MTU sini belgilang.

Tashqi paketlar baribir qayerga ketadi

Bir saytdan ikkinchisiga shifrlangan paketlar mahalliy router peer'ning ommaviy manzili uchun tanlagan yo'ldan chiqadi. Agar ikkala sayt bir provayderdan tranzit sotib olsa, bir metro obyektidan o'tsa yoki bir tomon operator darajasidagi NAT orqasida bo'lsa, tunnel provayder nosozligidan faqat tasodifan omon qoladi. Kuzatuv vositasida tunnel belgilarini sanash bu haqda sizga hech narsa demaydi.

Marshrut tanlash va yo'naltirishni o'rnatish ham alohida hodisalar. Prefiks BGP jadvalida eng yaxshi bo'lib turishi va baribir yo'naltirish jadvalida yo'q bo'lishi mumkin, chunki keyingi sakrash hal qilinmaydi yoki aniqroq marshrut yutadi. Kimdir BGP prefiksni o'rgandi, lekin trafik oqmayapti deb xabar qilganda, foydali savol — u o'rnatilganmi va qaysi keyingi sakrashga ishora qiladi.

Dizayn ko'rigi uchun halol javob umumiy bog'liqliklar ro'yxati: kirish liniyasi, yuqori provayder, obyekt va qaytish yo'lidagi holat saqlaydigan har qanday qurilma. Tunnel orqali sessiya o'zi ustida o'tirmagan bog'liqlikni olib tashlay olmaydi.

Ajratishga arziydigan uchta qaror

Dizayn bularni aralashtirsa, har bir nosozlik suhbati aylana boshlaydi. Avval ularni qog'ozda ajrating, keyin har birini haqiqatan bajaradigan qurilmaga bog'lang.

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

Har bir satrning egasi boshqa. Birinchisi muzokara, ikkinchisi qurilmalaringizdagi konfiguratsiya, uchinchisi asosan boshqa birovning tarmog'i. Tegishli satrni nomlaydigan o'zgartirish so'rovini tasdiqlash BGP muammosi degan so'rovdan ancha oson.

Rejalashtirishga arziydigan nosozlik rejimlari

Peer'ning jamlangan marshrutini qabul qilish eng keng tarqalgan o'z-o'ziga yetkazilgan jarohat. Kimdir almashinuvni soddalashtirish uchun qisqa agregat e'lon qiladi, uzoq tomon uni qabul qiladi va tunnel orqasida bo'lmagan diapazonlar trafigi tunnelni kuzatib o'ladi. Aynan kutilgan prefikslar bo'yicha filtrlang yoki to'g'ri chegaralarga ega prefiks ro'yxatidan foydalaning va hech qachon yalang'och agregatni qabul qilmang, chunki u sessiyani tartibli ko'rsatadi.

Bekor qilish vaqti ikkinchisi. Aniqlash ushlab turish taymerlariga, yoqsangiz BFD ga, tunnelning o'lik peer aniqlashiga va uzoq tomon e'lon qilishni qanchalik tez to'xtatishiga bog'liq. Mavjud sessiyalar alohida muammo: yangi marshrut yangi ulanishlarni tiklay oladi, lekin o'rnatilgan TCP sessiyalari eski manzillarni ishlatishda davom etadi va yo'ldagi holat saqlaydigan xavfsizlik devorlari yoki NAT endi mos kelmaydigan yozuvlarni saqlashi mumkin. Marshrut o'zgarishi hammasini hal qiladi deb taxmin qilish o'rniga ilova tiklashni qabul mezonlariga kiriting.

Uchinchisi — qaytish yo'lining asimmetriyasi. Trafik tunnel orqali kelib, uni tashish uchun hech qachon mo'ljallanmagan provayder liniyasi orqali qaytishi mumkin, bu bir tomonlama ovoz, muvaffaqiyatsiz qo'l berish yoki javoblarni tashlab yuboradigan xavfsizlik devori sifatida namoyon bo'ladi. Ikki tomonni alohida tekshiring.

Shartnomaga nima yozish kerak va uni qanday tekshirish kerak

Ruxsat etilgan prefikslarni yozma ravishda so'rang: har bir diapazonni yaratish huquqi kimda, standart marshrutga ruxsat bormi va tunnel xizmati qaysi manzil oilalarini qo'llab-quvvatlaydi. RFC 8212 unga amal qiladigan tatbiqlarda eBGP uchun aniq import va eksport siyosatini kutilmaga aylantirdi, shuning uchun hanuz yashirin hamma narsani qabul qilish xulqiga tayanadigan peer so'rashga arziydi.

Keyin diagrammadan emas, qurilmadan tekshiring. FRR uslubidagi routerlarda foydali buyruqlar:

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

Marshrut jadvali bera olmaydigan ikkita kuzatuvni qo'shing. Inkapsulyatsiya qilingan paketlar aslida qaysi manzilni nishonga olishini tasdiqlash uchun tashqi interfeysda yozib oling, masalan tcpdump -ni eth0 udp port 51820 WireGuard tunneli uchun yoki IPsec uchun ESP filtri. Keyin peer'ning ommaviy manzili tomon kuzatib boring va sakrashlarni tunnel ichidagi iz bilan solishtiring; agar ikkalasi bir xil provayder zanjirini kuzatsa, sizning zaxirangiz tarmoqda emas, marshrut siyosatida yashaydi.

Nihoyat, ataylab bekor qilishni sinab ko'ring. Xizmat ko'rsatish oynasida tunnelni tushiring, prefiks qancha vaqt o'rnatilgan qolishini, mavjud sessiyalarga nima bo'lishini va uzoq tomon haqiqatan qabul qiladigan marshrutga qaytishini qayd eting. Bu mashq dizayn haqida har qanday diagrammadan ko'proq gapiradi.

Marshrut — ruxsat emas. Almashishga kelishgan prefikslar tunnel orqasidagi qaysi xizmatga qaysi foydalanuvchilar yeta olishi haqida hech narsa demaydi, shuning uchun autentifikatsiya, ruxsat etilgan xizmatlar va xost xavfsizlik devorlarini bo'lgan joyida qoldiring. Yetib boradigan peer ham cheksiz tranzit yoki ixtiyoriy manzillar yaratish uchun ruxsat emas va bunday vakolat BGP siyosat satrida emas, shartnomada tijoriy savol sifatida bo'lishi kerak.

  • Har bir tomon yaratishi mumkin bo'lgan prefikslarni va hech qachon qabul qilmasligi kerak bo'lganlarini nomlang.
  • Tunnelda MSS ni cheklang va katta yangilanishlar haqiqatan yetib kelishini tasdiqlang.
  • Umumiy quyi qatlam bog'liqliklarini sanab o'ting, tunnellar sonini emas.
  • Haqiqiy bekor qilishni o'lchang va ilova nima qilishini qayd eting.

O'xshash maqolalar