EVPN тип 2 срещу тип 5: защо един IP адрес означава два маршрута
Маршрутът от тип 2 се ключира с MAC плюс незадължителен IP; маршрутът от тип 5 се ключира с префикс. Четете ключа, а не маската, преди да наречете маршрута с размер на хост.
Два маршрута на една и съща машина могат да сочат към 198.51.100.77 и въпреки това да отговарят на различни въпроси. Единият описва къде е достижим MAC адрес и по избор кой IP е обвързан с него. Другият описва префикс, който се резолвира през следващ хоп, дори когато този префикс е един-единствен хост. Объркването им поражда тикет, който изглежда като грешка в маршрутизацията, но всъщност е погрешно прочетен тип маршрут.
Най-бързият начин да ги различите е да прочетете ключа, около който е изграден NLRI, а не маската в края му.
Ключът на маршрута показва какво твърди маршрутът
Тип 2 е маршрутът за обява на MAC/IP от RFC 7432 и ключът му е 48-битовият MAC адрес вътре в NLRI. Зад този ключ стои поле за IP адрес, чието поле за дължина може да бъде 0, 32 или 128 бита, така че обява само на MAC е пълен маршрут, а не запис за хост с липсващи части. Стекът от етикети, който следва, сочи към мостовия контекст, където живее този MAC.
Запълването на IP полето променя това, което маршрутът твърди, а не вида маршрут. При дължина 32 или 128 бита подателят също твърди, че този IP принадлежи на този MAC в рамките на един EVPN екземпляр. При нулева дължина подателят не прави никакво IP твърдение. Нито един от вариантите не казва, че префикс е достижим през рутер.
Тип 5 е маршрутът за IP префикс от RFC 9136 и ключът му е префикс, записан като дължина плюс толкова бита. Дължината варира от 0 до 32 за IPv4 и от 0 до 128 за IPv6.
И двата края на този диапазон са законни и нито един не предполага MAC. Префикс с нулева дължина твърди достижимост, без да назовава хост, докато /32 назовава точно един адрес. NLRI носи също IP адрес на шлюз, който изходната страна използва, за да изгради overlay индекса, плюс етикет за контекста на препращане. Няма MAC поле, по което да се комутира, затова получателят третира тип 5 като маршрутизирана дестинация.
Маршрутът за префикс /32 не е преименуван тип 2
Префиксите с размер на хост са обикновени маршрути от тип 5. Маршрут за префикс /32 и маршрут от тип 2 за същия адрес могат да съществуват едновременно в един EVPN екземпляр и носят различна информация за препращане.
Вземете 198.51.100.77 в EVPN екземпляр с VNI 10100. Тип 2 може да го свърже с MAC 02:00:00:00:00:77 и етикет, идентифициращ мостовия домейн, където този MAC е бил научен. Тип 5 може да обяви 198.51.100.0/24 за цялата подмрежа или 198.51.100.77/32 само за този адрес, с адрес на шлюз, сочещ към изходния VTEP. Адресите се припокриват нарочно, защото маршрутите отговарят на различни въпроси.
Единият маршрут казва, че обвързване на крайна точка съществува и е достижимо през определен мост. Другият казва, че префикс е достижим през определен рутер, независимо дали някога е била научена крайна точка в него.
Тази разлика решава къде да погледнете първо, когато трафикът се провали. Ако един хост е недостижим, докато маршрутът на подмрежата му изглежда наред, тип 5 никога не е трябвало да носи този хост; търсете липсващия тип 2. Ако маршрутът на хоста съществува, но цялата подмрежа е недостижима, проверете дали тип 5 е бил изобщо генериран. Четенето на полетата по ред е по-добро от гадаене по дължината на маската.
Четене на двата маршрута без гадаене
На NX-OS show bgp l2vpn evpn route type 2 и show bgp l2vpn evpn route type 5 разделят таблицата точно по тази линия, а show l2route evpn mac ip показва локалните обвързвания MAC към IP зад маршрутите от тип 2. На Junos show evpn database изброява научените обвързвания на MAC и IP, докато show route table bgp.evpn.0 показва какво е било обявено и получено.
Филтрирайте по route distinguisher и Ethernet таг, преди да правите изводи. Същият MAC или префикс може да се появи в няколко EVPN екземпляра, а маршрут, който изглежда грешен в един екземпляр, може да е правилен в друг.
След това четете NLRI по ред: тип на маршрута, ключ, полета за шлюз или етикет, после route targets в атрибутите. Тип 2 с ненулев ESI ви казва, че MAC е multi-homed, и точно тази стойност свързва обявите от различните PE рутери. Тип 5 с адрес на шлюз ви казва кой изходен VTEP трябва да получи трафика.
Ако липсва маршрут, проверете генерирането, преди да гледате кодирането. Потвърдете, че източникът има обвързването или префикса локално, после потвърдете, че свързаният с него route target е импортиран на тази машина. Повечето доклади за счупен тип 5 завършват при политика за импорт, а не при формата на NLRI.
Записвайте контекста, не само типа на маршрута
Запишете заедно типа на маршрута, EVPN екземпляра, route distinguisher, импортираните и експортираните route targets и резолвирания следващ хоп. Тип 2 без своя екземпляр е двусмислен, а следващ хоп без семейството на маршрута подканя към грешен извод.
И двете са EVPN маршрути, дори когато полезният товар е IPv4 адрес. Семейството адреси вътре в NLRI и семейството адреси на самия маршрут са отделни свойства и тип 5 не става маршрут IPv4-unicast или VPN-IPv4 само защото носи IPv4 префикс.
Тази разлика се проявява на границата между EVPN контролния план и IP-VRF. Route target решава кой VRF импортира префикса, докато адресът на шлюза и етикетът решават как пакетът се инкапсулира към изхода. Прочетете ги заедно и решението за препращане престава да изглежда произволно.
Следващия път, когато в EVPN таблицата се появи /32, проверете ключа преди маската. MAC ключ с незадължителен IP е обвързване от тип 2; ключ-префикс е маршрут от тип 5, каквато и да е дължината му. Запишете route target и следващия хоп до него и следващият инженер няма да трябва да извежда цялата история наново.