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 і наступны хоп, і наступнаму інжынеру не давядзецца зноў выводзіць усю гісторыю.