Bosh sahifa Wiki Routing loop

Routing loop

Routing loop — routerlar paketni maqsadga yaqinlashtirish o‘rniga bir-biriga yoki yopiq yo‘l bo‘ylab qayta yuboradigan noto‘g‘ri routing holati. Loop topology o‘zgarishi, mos kelmaydigan route, noto‘g‘ri redistribution yoki policy sabab paydo bo‘ladi. Paket TTL yoki Hop Limit nolga tushguncha aylanadi, bandwidth va router resursini sarflaydi hamda foydalanuvchiga packet loss yoki yuqori latency ko‘rinadi.

Yuzaga kelishi

Distance-vector tarmoqda A router maqsad Xga B orqali borishini bilishi mumkin. X uzilganda B buni biladi, ammo A eski route’ni hali saqlaydi. A Bga Xga yo‘l borligini update qilsa, B bu yo‘l aslida o‘zidan kelganini anglamasdan A orqali yangi route deb qabul qilishi mumkin. Natijada A paketni Bga, B esa Aga yuboradi.

Static route va summary ham loop yaratadi. Branch default route’ni core’ga, core esa noma’lum summary subnetni branchga yuborsa, mavjud bo‘lmagan address uchun loop yuz beradi. Summary bilan birga discard/null route qo‘yish aniqroq child route bo‘lmaganda paketni to‘xtatadi.

Count to infinity

Distance-vector routerlar yomon xabarni sekin tarqatishi mumkin. Qo‘shnilar maqsadga masofa 2, 3, 4 deb bir-biridan o‘rganib, metric “infinity”ga yetguncha oshadi. RIP 16ni unreachable deb belgilab jarayonni cheklaydi. Biroq convergence davomida trafik loop yoki blackhole’ga tushadi.

Split horizon route’ni o‘rganilgan interfeysga qayta reklama qilmaydi. Route poisoning o‘sha route’ni qayta yuborib, metricini infinity qiladi. Poison reverse qo‘shniga aynan undan o‘rganilgan route unreachable ekanini ochiq bildiradi. Hold-down timer yomon route ketgach shubhali tez “yaxshi” xabarni vaqtincha qabul qilmaydi.

OSPF kabi link-state protocol barcha routerga topology advertisement tarqatadi va har biri bir xil link-state database’dan shortest path tree hisoblaydi. Sequence number va aging eski LSA’ni ajratadi. Convergence paytida database farqi sabab transient microloop baribir yuz berishi mumkin.

Loop-Free Alternate oldindan hisoblangan backup next hopni tanlab, local failure paytida loop qilmasdan trafikni tez o‘tkazadi. Ordered FIB update yoki segment routing repair murakkab topology’da yangilanish tartibini boshqaradi. Protocolning “loop-free” xususiyati noto‘g‘ri redistribution va static policy’ni avtomatik tuzatmaydi.

BGP va policy looplari

BGP AS_PATH ichida o‘z AS raqamini ko‘rsa route’ni rad etib inter-AS loopni cheklaydi. Route reflector iBGP full mesh talabini kamaytiradi, lekin cluster list va originator ID noto‘g‘ri konfiguratsiyada loop prevention uchun muhim. Bir necha protocol orasidagi mutual redistribution route tag’siz amalga oshirilsa, route qayta o‘z manbasiga kirib metric va preference bo‘yicha loop yaratishi mumkin.

Data plane loop control plane table’lari normal ko‘ringanda ham FIB dasturlash xatosi yoki inconsistent update sabab bo‘lishi mumkin. Hardware va software forwarding holati alohida tekshiriladi.

Aniqlash

Traceroute bir nechta addressning takrorlanishini ko‘rsatishi mumkin. Ammo MPLS, ICMP rate limit yoki ECMP natijani murakkablashtiradi. Routerda TTL expired counter, interface traffic spike, routing update churn va adjacency o‘zgarishi kuzatiladi.

Packet capture destination bir xil, TTL kamayib borayotgan paketlarni ko‘rsatadi. Root cause uchun prefix bo‘yicha har routerdagi RIB va FIB, route source, next hop resolution va redistribution policy tekshiriladi. Faqat bitta routerda route’ni o‘chirish loopni vaqtincha to‘xtatib, asosiy policy xatosini yashirishi mumkin.

Bog‘liq tushunchalar

Count to infinity, Split horizon, Route poisoning, TTL, Convergence, Distance-vector routing, FIB