Екі сайт, бір туннель және біраз уақыт жауап беріп, содан кейін үнсіз қалатын алыс префикс. Рефлекс оны маршруттау циклі деп атау, және кейде дәл солай. Бірақ цикл мен флаппинг маршрут бірдей шағым тудырады және қарама-қарсы жөндеуді талап етеді: біреуі ешқашан аяқталмайтын жіберу шешімі, екіншісі кестеден үнемі шығып кететін префикс. Үш байқау оларды ажыратады, және үшеуін де сүзгіге қол тигізбес немесе туннельді қайта іске қоспас бұрын шлюздің пәрмен жолынан жинай аласыз.

Цикл секіріс сайын шешіледі. A сайты тағайындау үшін B-ні келесі секіріс ретінде таңдайды, B сол тағайындау үшін A-ны таңдайды, және пакет екі айналымнан кейін TTL-де аяқталады. Флаппингті керісінше маршруттау протоколы шешеді: префикс кері қайтарылады, қайта орнатылады немесе балама келесі секіріспен ауыстырылады, сондықтан кейбір пакеттерде мүлде маршрут жоқ, ал басқалары толығымен жақсы маршрутпен жүреді.

Мәселені шешетін үш тексеру

Бірінші шешім үшін пакет ұстау қажет емес. Сізге екі ұштағы префикс күйі, әр жақ таңдайтын келесі секіріс және қайталанатын немесе қайталанбайтын секіріс саны қажет. Егер трафик сәтсіз болған кезде префикс сол келесі секіріспен орнатылған күйде қалса, цикл жіберу жолында өмір сүреді. Егер префикс жоғалып, қайта оралса, ақау жіберуден жоғары және жөндеу маршруттау протоколына тиесілі, статикалық маршрутқа емес.

ObservationRouting loopRoute flapping
Prefix in the tableInstalled, same next hop throughoutWithdrawn and reinstalled, or next hop alternates
Hop countReaches zero at the same two gatewaysExpires only while the prefix is missing
Failure shapeConsistent loss for that prefix from every sourceBursts, often after a link or peer event
Where the fix belongsThe site that owns the prefix, plus filters on the transit pathAdvertisement, hold timers, or the flapping link

Бастамас бұрын бір ескерту. Егер мұны цикл жасап жатқан туннель арқылы оқып отырсаңыз, маршрутты өзгерткен сәтте сессияңыз өледі. Түзетпек болып отырған префикске тәуелді емес консольді немесе басқару жолын ашыңыз.

Бірінші тексеру: префикс тұрақты ма әлде қозғалып тұр ма

Ядродан не орнатқанын сұраңыз, конфигурация файлы не уәде ететінін емес. Linux шлюзінде ip route get 10.20.30.40 жіберу жолы орындайтын дәл сол іздеуді орындайды, соның ішінде саясат кестелерін, ал ip route show 10.20.30.0/24 жазбаның өзін көрсетеді. ip monitor route әр өзгерісті ол болған сәтте таратады, бұл префикстің келуі мен кетуін бақылаудың ең жылдам жолы.

FRR немесе BIRD жүргізетін маршрутизаторда қызықтысы жіберу кестесі емес. show ip bgp 10.20.30.0/24 таңдалған жолды және оның жұмыс уақытын қайтарады; әр бірнеше минут сайын қалпына келетін жұмыс уақыты — атауға болатын флаппинг, цикл емес. show ip bgp summary көршілердің күйін және префикстер санын көрсетеді, сондықтан үнемі құлап жатқан серіктес кінәні жіберу жолынан алады.

Бірдеңені өзгертудің алдында жауапты жазып қойыңыз. Пингтер сәтсіз болған кезде он минут тұрақты болу және он минутта төрт рет жоғалу әртүрлі келесі қадамдарға әкеледі. Екіншісі статикалық маршрут туралы барлық теорияны маңызсыз етеді.

Екінші тексеру: келесі секіріс кіру туннеліне кері ме сілтейді

Цикл үшін екі шлюздің келісуі керек. Пакетті қабылдайтын сайтта пакеттің шығу үшін қолданатын маршрутын қараңыз: нақты бастау адресімен ip route get 10.20.30.40 from 10.10.5.20, өйткені саясат ережесі негізгі кестеден басқаша жауап беруі мүмкін. Содан кейін оны жіберген сайтта іздеуді қайталаңыз. Егер әр жақ сол префикс үшін екіншісін келесі секіріс ретінде таңдаса, цикл дәлелденді және ешбір ұстау ештеңе қоспайды.

Себебі әрдайым дерлік туннельден өтпеуі тиіс хабарландыру болады. Туннельге қайта бөлінген әдепкі маршрут, алыс сайттың өз ішкі желісін қамтитын агрегат немесе сақтық үшін серіктеске бағытталған статикалық маршрут — барлығы бірдей өзара келесі секіріс жасайды. Туннель толық орнатылған болып, трафикті шеңбермен тасуы мүмкін; strongSwan-ның жіберу туралы жазбалары сол талаптың маршруттау жағын сипаттайды.

WireGuard өз жазбасына лайық, өйткені кінәлайтын хабарландыру жоқ. wg show әр серіктестің AllowedIPs тізімін көрсетеді, ал ядро серіктеске арналған тағайындауды тек сол ауқымға түссе ғана қабылдайды. Ондағы цикл — қабаттасатын AllowedIPs ауқымы немесе интерфейстен кері сілтейтін статикалық маршрут, сондықтан жөндеу тек сол екі жерде өмір сүреді.

Үшінші тексеру: секіріс санын оқыңыз, жұлдыздарды емес

traceroute -n -I 10.20.30.40 мен mtr -n -r -c 20 10.20.30.40 екеуі де жолды көрсетеді, ал ICMP режимі UDP зондтарын жейтін сүзгілеуден жиі аман қалады. Цикл сол екі шлюз мекенжайының қысқа қайталанатын тізбегіне ұқсайды, TTL сайын өседі. Құлау соңғы жауап берген шлюзден кейінгі жұлдыздарға ұқсайды, ал жалғыз үнсіз секіріс ештеңеге дәлел емес.

Жол екіұшты болғанда, сымдағы TTL-ді оқыңыз. Екі шлюздегі tcpdump -ni any -vv icmp әр пакеттің TTL-ін және уақыт асқаны туралы әр жауаптың бастау адресін көрсетеді. Егер пакет алыс сайтқа жолда болуы мүмкін секірістер санынан төмен TTL-мен жетсе, бірдеңе traceroute көрсетпейтін секірістерді қосып жатыр, және бұл бір сайттың фаерволы екіншісінің атынан зондтарға жауап бергенде болады.

Префикс иесін жөндеңіз, содан кейін екі бағытты тексеріңіз

Қай сайт тағайындауды жасайтынын және қандай транзиттік жолдарға рұқсат етілгенін шешіңіз, содан кейін сол иедегі хабарландыруды немесе статикалық маршрутты өзгертіңіз. Қабылдаушы сайтты түзету азғызарлық және әдетте қате: ол циклді бір префикс үшін жасырады және жаман хабарландыруды келесі үшін орнында қалдырады. Маршрут тегтері, тарату тізімдері және split-horizon ережелері мұны бастауында тоқтату үшін бар, және олар бір префикске сәйкес келетін сүзгіден арзан.

Өзгерістен кейін тура және кері бағытты бөлек тексеріңіз, өйткені цикл симптомда көрінетін жақсартусыз қара қуыспен алмастырылуы мүмкін. Екі ұштан ip route get іске қосыңыз, трафикті шлюз емес хосттан жіберіңіз және флаппингті жөндеуге шатастырмау үшін ip monitor route кемінде бір ұстау таймері бойы жұмыс істесін.

Бірдеңені өзгертудің алдында мына бес тармақты растаңыз: префикс тұрақты ма әлде қозғалып тұр ма, екі ұштағы келесі секіріс туннельге сілтейді ме, секірістер саны қайталанады ма, бір сайт префиксті иеленеді ме, және өзгеріске төтеп беретін басқару жолыңыз бар ма. Егер бесеудің біреуі белгісіз болса, қалған төртеуі болжам.

Қатысты мақалалар