Двама наематели номерират клона си с 10.50.0.0/24 и след промяна маршрутът на единия изчезва от ръба на доставчика, докато другият продължава да работи. Опростяването зад този тикет обикновено е отпадането на разграничителя на маршрут (RD), защото „етикетът вече идентифицира клиента“. То не го прави. RD и етикетът отговарят на два различни въпроса и разликата става видима само когато припокриващите се адреси я наложат.

Един маршрут там, където трябва да има два

Обикновеният IPv4 unicast сравнява два пътя към един и същ префикс и инсталира по-добрия. 10.50.0.0/24 от наемател A и 10.50.0.0/24 от наемател B са един ключ, затова печели един, а другият оцелява само като резервен път. Протоколът направи това, което му беше казано; от контролната равнина беше поискано да съхрани два различни маршрута под един идентификатор.

Резултатът изглежда като липсващ маршрут, а не като грешка: PE, който загуби надпреварата, все още препраща своя наемател локално, така че ping в рамките на обекта успява, а тестът между обектите се проваля. Пребройте записите за този префикс в таблицата VPNv4, преди да пипате каквато и да е политика.

RD превръща един ключ в два

Осембайтов разграничител на маршрут се добавя пред префикса IPv4 и обектът, който BGP носи, става адрес VPN-IPv4 вместо префикс IPv4. Двама наематели могат да държат едни и същи 32 бита, защото 64-те бита отпред се различават. Съществуват типове формат за RD на база AS и за RD на база адрес, а изборът принадлежи на изходния PE. RD на база AS е обичаен, когато PE споделят един AS, а на база адрес — когато не го правят.

Не четете RD като етикет за членство. Целите на маршрут управляват вноса и износа и решават кои VRF могат да инсталират маршрута; RD гарантира само, че маршрутът има собствена идентичност. Даването на всеки VRF собствен RD е обичайна практика, защото запазва това съответствие четимо при преглед на таблицата с маршрути.

Етикетът е локална инструкция за препращане

Всяко обявление носи и етикет MPLS, чието значение е ограничено до маршрутизатора, който го е разпределил. Друг PE може да отпусне същия номер за несвързана дестинация. Точно затова етикетът не може да замести идентичността на клиента: номерът е правилен само до следващия хоп и състоянието за препращане, което го е инсталирало.

Гранулярността на разпределение варира според реализацията и дизайна: някои платформи дават един етикет на VRF, други — на префикс, а етикетът може да идентифицира действие за препращане, а не клиент. Два различни етикета, достигащи една дестинация, не са противоречие, нито е противоречие един и същ номер на етикет при два PE.

FieldWhere it livesScopeIf you remove it
RDVPNv4 NLRIPer advertised routeOverlapping prefixes collide
Route targetExtended communityImport and export policyRoute lands in the wrong VRF
LabelLabeled NLRI and forwarding statePer allocating routerNo instruction for the data plane
Next hopPath attributePer pathThe label cannot be resolved

Защо едното не може да замести другото

Да четете обявление означава да гледате четири неща заедно: префикса с RD, целите на маршрут, следващия хоп и етикета. Да четете пакет на потребител означава да гледате стека, инсталиран от тази информация. Здравият дизайн показва съвпадение от двете страни, а счупеният обикновено има една страна вярна и друга остаряла. Това сравнение отделя проблема с идентичността от проблема с препращането.

Акуратното противопоставяне между контролна и потребителска равнина е учебен похват, а не описание на кодирането. RFC 8277 поставя етикета вътре в маркирания NLRI, така че самото обявление носи свързването; използването му за препращане е следващата, отделна стъпка.

Когато маршрут на наемател изчезне, проверявайте в този ред: два записа VPNv4 за префикса, правилната цел на маршрут при всеки, разрешим следващ хоп и етикет, за който получаващият PE има състояние. Поправянето на идентичността със стойност за препращане, или обратното, ще мине една проверка и ще се провали на следващата.

Подобни статии