Същата /24 за двама клиенти? VPNv4 изисква RD и етикет
Двама наематели могат да обявяват една и съща /24 само защото RD дава на всеки маршрут собствена идентичност. Етикетът отговаря на друг въпрос: как да се препраща.
Двама наематели номерират клона си с 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.
| Field | Where it lives | Scope | If you remove it |
|---|---|---|---|
| RD | VPNv4 NLRI | Per advertised route | Overlapping prefixes collide |
| Route target | Extended community | Import and export policy | Route lands in the wrong VRF |
| Label | Labeled NLRI and forwarding state | Per allocating router | No instruction for the data plane |
| Next hop | Path attribute | Per path | The label cannot be resolved |
Защо едното не може да замести другото
Да четете обявление означава да гледате четири неща заедно: префикса с RD, целите на маршрут, следващия хоп и етикета. Да четете пакет на потребител означава да гледате стека, инсталиран от тази информация. Здравият дизайн показва съвпадение от двете страни, а счупеният обикновено има една страна вярна и друга остаряла. Това сравнение отделя проблема с идентичността от проблема с препращането.
Акуратното противопоставяне между контролна и потребителска равнина е учебен похват, а не описание на кодирането. RFC 8277 поставя етикета вътре в маркирания NLRI, така че самото обявление носи свързването; използването му за препращане е следващата, отделна стъпка.
Когато маршрут на наемател изчезне, проверявайте в този ред: два записа VPNv4 за префикса, правилната цел на маршрут при всеки, разрешим следващ хоп и етикет, за който получаващият PE има състояние. Поправянето на идентичността със стойност за препращане, или обратното, ще мине една проверка и ще се провали на следващата.