BGP научи префикса, но трафикът все още заобикаля тунела
Префиксът в таблицата на BGP е новина за равнището на управление, а не решение за препращане. Проверете получаване, избор, инсталиране и съвпадение, преди да обвините тунела.
Шлюзът на клона показва префикса на облака в своята BGP таблица, сесията с доставчика е установена, а заявката на потребителя към този префикс все още излиза през грешния интерфейс. Нищо не е счупено по начина, който подсказва мониторингът, защото „BGP го научи“ е твърдение за равнището на управление. Между тази таблица и пакета има четири отделни прехода и потокът спира точно на един от тях. Преминете портите по ред и спрете на първата, която се провали.
Първа порта: какво всъщност изпрати съседът
Започнете с префикса такъв, какъвто е получен, а не обобщен. Намерете точната мрежа и маска в BGP таблицата и запишете следващия хоп, AS пътя и всяка общност, която политика за входящи маршрути може да съпостави. Обобщен маршрут в таблото може да скрие факта, че конкретният префикс никога не е бил приет.
Политиката за входящи маршрути е обичайното място, където маршрут изчезва без грешка. Списък с префикси, филтър по общности или входяща карта на маршрути могат да отхвърлят обновяването, докато сесията остава вдигната и здрава, и затова зелената лампа на съседа доказва толкова малко. Липсата на ред в журнала не означава липса на решение. Обикновено означава, че решението е взето тихо, точно както е конфигурирано.
show ip bgp 10.60.20.0/24 show ip bgp neighbors 203.0.113.5 advertised-routes show ip route 10.60.20.0 show ip cef 10.60.20.0
Прочетете изхода в този ред. Първите две команди казват дали информацията е пристигнала и какво твърди съседът, че е изпратил; последните две — дали нещо е достигнало таблиците за маршрутизация и препращане. Префикс, присъстващ в първата команда и отсъстващ в третата, е проблем с избора или инсталирането, а не проблем със свързаността.
Втора порта: избор, после инсталиране
BGP избира най-добрия път и избраният път не се инсталира автоматично. Следващият хоп трябва да се резолвне, а друг източник на маршрути може вече да притежава този префикс с по-добро административно разстояние. Статичен маршрут, останал от миграцията, лесно ще победи валиден BGP път и ще изпрати трафика другаде.
RFC 4271 разделя три идеи: какво е изпратил съседът, какво този говорител е избрал за най-добро и какво ще обявява нататък. Това са концептуални роли, а не три физически бази данни, които доставчикът е длъжен да покаже, но именно разделянето прави „това е в BGP“ непълен отговор.
Проверете също кой контекст на маршрутизация четете. Маршрут, инсталиран във VRF, към която интерфейсът на потребителя не принадлежи, е невидим за пакетите на този потребител, а таблицата изглежда правилна през цялото време.
Трета порта: търсенето, което се прилага за този поток
Сега спрете да питате за маршрута и започнете да питате за пакета. Запишете изходния адрес на потребителя, дестинацията, протокола, порта и входящия интерфейс, защото всяко от тях може да избере различна политика. След това погледнете търсенето, което се прилага за тази комбинация, а не общата таблица за маршрутизация.
ip route get 10.60.20.25 from 10.60.10.40 ip rule show sudo tcpdump -ni tun0 'host 10.60.20.25'
По-специфичен префикс е най-честата изненада тук, а политическият маршрут е втората. И двете отменят агрегата, който гледахте, и нито едно не се вижда в обобщение на BGP таблицата.
Ping от самия шлюз не е доказателство за сесията на потребителя. Друг изходен адрес, друг път на политика и често различен резултат. Тествайте с източника, който приложението използва, или приемете, че тестът отговаря на друг въпрос.
Четвърта порта: далечната половина на пътя
Ако локалното търсене наистина избере тунела, пакетът все още трябва да бъде приет от политиката за защита, разрешен от правилото за препращане и да получи отговор от нещо от другата страна. Крипто ACL, който не включва двойката адреси, ще изхвърли трафика, докато тунелът се отчита като вдигнат, което създава таймаут, неотличим от отказ на маршрутизацията.
Обратният път е толкова важен, колкото и изходящият. Страната на облака трябва да знае как да достигне до източника на клона — чрез маршрут или чрез транслация, която сте конфигурирали нарочно. Асиметричните обратни пътища са чести в проекти, тествани само от една посока.
Свържете ново оторизирано свързване с три наблюдения: локалната политика, която е съвпаднала, броячите на тунела, които са се променили, и получаването от далечната страна, където е видимо. Ако броячите не се движат, пакетът никога не е влизал в тунела, независимо какво казва таблицата за маршрути. Ако се движат и нищо не пристига, далечната страна го изхвърля или маршрутизира погрешно. Тези два изхода водят до напълно различни екипи.
Назовайте прехода, който се провали
Запишете резултата като едно от пет състояния: не е получен, не е приет от политика, не е избран, не е инсталиран или не е съпоставен от този поток. Добавете шесто за случая, когато локалният път е правилен и далечният край не може да отговори. Това изречение е резултатът и е много по-полезно от екранна снимка на установен съсед.
Дръжте в плана за приемане и негативен тест: дестинация, която не трябва да минава през тунела, проверена след промяната. Контролен списък, който доказва само успешния път, няма да хване широкото правило за политика, което някой добавя в следващия прозорец за поддръжка.