VPN saytlarida marshrutlash halqasini marshrut flappingidan qanday ajratish mumkin
Marshrutlash halqasi va flapping marshrut bir xil uzilishli yo'qotish keltiradi. Darvozalardagi uchta tekshiruv biror narsani o'zgartirishdan oldin ularni ajratadi.
Ikki sayt, bitta tunnel va bir muncha vaqt javob berib, keyin jim bo'lib qoladigan uzoq prefiks. Birinchi javob uni marshrutlash halqasi deb atash, va ba'zida bu aynan shunday. Lekin halqa va flapping marshrut bir xil shikoyat tug'diradi va qarama-qarshi tuzatishlarni talab qiladi: biri hech qachon tugamaydigan yo'naltirish qarori, ikkinchisi jadvaldan doim chiqib ketadigan prefiks. Uch kuzatuv ularni ajratadi, va uchtasini ham filtrga tegishdan yoki tunnelni qayta ishga tushirishdan oldin darvoza buyruq satridan to'plash mumkin.
Halqa qadam-baqadam hal qilinadi. A sayti manzil uchun B ni keyingi qadam qilib tanlaydi, B xuddi shu manzil uchun A ni tanlaydi, va paket ikki aylanishdan keyin TTL da tugaydi. Flappingni esa marshrutlash protokoli hal qiladi: prefiks qaytarib olinadi, qayta o'rnatiladi yoki muqobil keyingi qadam bilan almashtiriladi, shuning uchun ba'zi paketlarda umuman marshrut yo'q, boshqalari esa butunlay yaxshisiga ergashadi.
Savolni hal qiluvchi uchta tekshiruv
Birinchi qaror uchun paket ushlash kerak emas. Sizga ikki uchidagi prefiks holati, har bir tomon tanlaydigan keyingi qadam, va takrorlanadigan yoki takrorlanmaydigan qadamlar soni kerak. Agar trafik muvaffaqiyatsiz bo'layotganda prefiks o'sha keyingi qadam bilan o'rnatilgan bo'lib qolsa, halqa yo'naltirish yo'lida yashaydi. Agar prefiks yo'qolib, qaytib kelsa, nosozlik yo'naltirishdan yuqorida va tuzatish marshrutlash protokoliga tegishli, statik marshrutga emas.
| Observation | Routing loop | Route flapping |
|---|---|---|
| Prefix in the table | Installed, same next hop throughout | Withdrawn and reinstalled, or next hop alternates |
| Hop count | Reaches zero at the same two gateways | Expires only while the prefix is missing |
| Failure shape | Consistent loss for that prefix from every source | Bursts, often after a link or peer event |
| Where the fix belongs | The site that owns the prefix, plus filters on the transit path | Advertisement, hold timers, or the flapping link |
Boshlashdan oldin bitta ogohlantirish. Agar buni halqalanayotgan tunnel orqali o'qiyotgan bo'lsangiz, marshrutni o'zgartirgan paytda sessiyangiz o'ladi. Tuzatmoqchi bo'lgan prefiksga bog'liq bo'lmagan konsol yoki boshqaruv yo'lini oching.
Birinchi tekshiruv: prefiks barqarormi yoki qaynayaptimi
Yadrodan nima o'rnatganini so'rang, konfiguratsiya fayli nima va'da qilishini emas. Linux darvozasida ip route get 10.20.30.40 yo'naltirish yo'li bajaradigan o'sha qidiruvni siyosat jadvallari bilan birga bajaradi, ip route show 10.20.30.0/24 esa yozuvning o'zini ko'rsatadi. ip monitor route har bir o'zgarishni sodir bo'lgan paytda uzatadi, prefiksning kelishi va ketishini kuzatishning eng tez yo'li shu.
FRR yoki BIRD ishlaydigan routerda qiziqarli narsa yo'naltirish jadvali emas. show ip bgp 10.20.30.0/24 tanlangan yo'lni va uning ish vaqtini qaytaradi; har bir necha daqiqada qayta tiklanadigan ish vaqti nomlash mumkin bo'lgan flapping, halqa emas. show ip bgp summary qo'shnining holati va prefikslar sonini ko'rsatadi, shuning uchun doim yiqiladigan hamkor aybni yo'naltirish yo'lidan oladi.
Biror narsani o'zgartirishdan oldin javobni yozib qo'ying. Ping muvaffaqiyatsiz bo'lganda o'n daqiqa barqaror turish, va o'n daqiqada to'rt marta yo'qolish turli keyingi qadamlarga olib boradi. Ikkinchisi statik marshrut haqidagi barcha nazariyalarni ahamiyatsiz qiladi.
Ikkinchi tekshiruv: keyingi qadam kelish tunneliga qaytadimi
Halqa uchun ikki darvozaning kelishuvi kerak. Paketni qabul qiladigan saytda paket chiqish uchun ishlatadigan yo'lni ko'ring: haqiqiy manba manzili bilan ip route get 10.20.30.40 from 10.10.5.20, chunki siyosat qoidasi asosiy jadvaldan boshqacha javob berishi mumkin. Keyin uni yuborgan saytda qidiruvni takrorlang. Agar har bir tomon o'sha prefiks uchun boshqasini keyingi qadam qilib tanlasa, halqa isbotlangan va hech qanday ushlash hech narsa qo'shmaydi.
Sabab deyarli har doim tunneldan o'tmasligi kerak bo'lgan e'lon bo'ladi. Tunnelga qayta taqsimlangan standart marshrut, uzoq saytning o'z ichki tarmog'ini qamrab oluvchi agregat yoki ehtiyot uchun hamkorga qaratilgan statik marshrut — barchasi bir xil o'zaro keyingi qadamni yaratadi. Tunnel to'liq o'rnatilgan bo'lib, trafikni aylana bo'ylab olib yurishi mumkin; strongSwan ning yo'naltirish haqidagi eslatmalari o'sha talabning marshrutlash tomonini tasvirlaydi.
WireGuard o'z eslatmasiga loyiq, chunki ayblash uchun e'lon yo'q. wg show har bir hamkorning AllowedIPs ro'yxatini beradi, va yadro hamkor uchun manzilni faqat o'sha oraliqqa tushsa qabul qiladi. U yerdagi halqa bir-biriga ustma-ust tushadigan AllowedIPs oralig'i yoki interfeys orqali orqaga qaratilgan statik marshrutdir, shuning uchun tuzatish faqat o'sha ikki joyda yashaydi.
Uchinchi tekshiruv: qadamlar sonini o'qing, yulduzlarni emas
traceroute -n -I 10.20.30.40 va mtr -n -r -c 20 10.20.30.40 ikkalasi ham yo'lni ko'rsatadi, va ICMP rejimi UDP zondlarini yeydigan filtrlashdan ko'pincha omon qoladi. Halqa bir xil ikki darvoza manzilining qisqa takrorlanuvchi ketma-ketligiga o'xshaydi, TTL har safar oshadi. Yiqilish oxirgi javob bergan darvozadan keyingi yulduzlarga o'xshaydi, va bitta jim qadam hech narsaga dalil emas.
Yo'l noaniq bo'lganda, simdagi TTL ni o'qing. Ikki darvozada tcpdump -ni any -vv icmp har bir paketning TTL ini va vaqt oshgan har bir javobning manba manzilini ko'rsatadi. Agar paket uzoq saytga yo'lda bo'lishi mumkin qadamlar sonidan past TTL bilan yetsa, traceroute ko'rsatmaydigan qadamlarni nimadir qo'shmoqda, va bu bir saytning xavfsizlik devori boshqasi nomidan zondlarga javob berganda sodir bo'ladi.
Prefiks egasini tuzating, keyin ikki yo'nalishni tekshiring
Qaysi sayt manzilni yaratishini va qaysi tranzit yo'llarga ruxsat berilganini hal qiling, keyin o'sha egadagi e'lonni yoki statik marshrutni o'zgartiring. Qabul qiluvchi saytni tuzatish jozibali va odatda noto'g'ri: u bitta prefiks uchun halqani yashiradi va keyingisi uchun yomon e'lonni joyida qoldiradi. Marshrut teglari, taqsimlash ro'yxatlari va split-horizon qoidalari buni manbada to'xtatish uchun bor, va ular bitta prefiksga mos keladigan filtrdan arzon.
O'zgarishdan keyin borish va qaytish yo'nalishini alohida tekshiring, chunki halqa alomatda ko'rinadigan yaxshilanishsiz qora tuynuk bilan almashtirilishi mumkin. Ikki uchidan ip route get ni ishga tushiring, trafikni darvoza bo'lmagan xostdan yuboring, va flapping tuzatish deb qabul qilinmasligi uchun ip monitor route ni kamida bitta ushlab turish taymeri davomida ishlating.
Biror narsani o'zgartirishdan oldin bu besh bandni tasdiqlang: prefiks barqarormi yoki qaynayaptimi, ikki uchidagi keyingi qadam tunnelga qaratilganmi, qadamlar soni takrorlanadimi, bitta sayt prefiksga egami, va o'zgarishga bardosh beradigan boshqaruv yo'lingiz bormi. Agar beshdan biri noma'lum bo'lsa, qolgan to'rttasi taxmin.