IPv6 во MPLS VPN: три одлуки, а не една адресна фамилија
VPN рутите на клиентот, BGP сесијата меѓу PE и транспортот во јадрото се одделни одлуки. Сесијата може да работи во една фамилија, а да носи друга.
Кажете „пушти IPv6 L3VPN преку IPv6 BGP“ на преглед на дизајн, и во таа една реченица се кријат три одделни одлуки. Кои префикси ѝ припаѓаат на VPN-от на клиентот, кои адреси ја носат рутирачката сесија меѓу рабовите на провајдерот и кое јадро го пренесува означеното пакетче се независни избори. Сите можат да бидат IPv6, можат да бидат измешани, а мешањето е намерно дозволено. Токму раздвојувањето на тие три го претвора нејасниот услов во нешто врз што платформата може да се тестира.
Одделете ги трите работи
Првата работа е клиентската рута: IPv6 префикси што му припаѓаат на еден рутирачки контекст на VPN и мора да останат надвор од секој друг контекст. Втората е рутирачката врска меѓу рабните рутери на провајдерот што ги разменуваат тие префикси. Третата е транспортот што го носи означеното клиентско пакетче низ јадрото до далечниот раб. Да се наведе само една од нив уште не е дизајн.
| Job | The question it answers | What confusion looks like |
|---|---|---|
| Customer VPN routes | Which IPv6 prefixes belong to each VPN context, and how are they kept apart? | Prefixes leak into the global table and between customers |
| PE-to-PE BGP session | Which addresses carry the routing connection between the two edges? | A session-family mismatch gets chased as a core transport fault |
| Transport to the remote PE | How does the chosen core move the labelled packet to the far edge? | A route is present and unforwardable in the same moment |
Секоја работа има своја адресна фамилија, свои начини на откажување и често свој тим. Табелата е корисна токму затоа што една реченица во документ за дизајн има навика да ги сплеска сите три реда во еден.
Фамилијата на рутата е VPN-IPv6, а не IPv6 unicast
RFC 4659 ја дефинира фамилијата BGP/MPLS IPv6 VPN, а членството во неа е поспецифично отколку што сугерира зборот IPv6. Рутата таму е разликувач на рута поврзан со IPv6 префикс, кодиран под AFI 2 и SAFI 128. Обичниот IPv6 unicast е друга фамилија, па објавата што во looking glass изгледа како префикс може воопшто да не е истиот објект. Погрешното читање на фамилијата е првиот начин на кој овој дизајн тргнува наопаку.
Разликата каса на раб, каде рутата мора прво да слета во вистинската VPN контекст пред да направи нешто. Примањето префикс докажува дека размената се случила и не кажува ништо за инсталацијата. Таа празнина го создава класичниот извештај во кој сесијата е крената, а клиентот уште е во мрак.
Сесијата може да работи во друга фамилија од VPN-от
Ништо не ја присилува BGP врската меѓу два раба да ја користи сопствената фамилија на VPN-от. Спецификацијата дозволува IPv4 или IPv6 сесија, а транспортот на IPv6 VPN и самиот е дефиниран врз двата типа јадро. Затоа IPv6 сесијата не кажува ништо за фамилијата на тоа што го носи и не го избира ни податочното ниво. Три независни бита, и дизајнот треба да ги носи сите три одделно.
Тоа ослободува и истовремено лесно се чита погрешно. IPv6 клиентски рути можат да патуваат по сесија со IPv4 адреса, а IPv4 рути по IPv6 сесија, доколку платформата ја поддржува комбинацијата и следниот хоп се разреши. Она што не смее да се случи е сесијата да го подразбира товарот, во документот за дизајн или во мониторингот што подоцна го докажува сервисот.
Следниот хоп на IPv4 јадро има свое кодирање
Кога јадрото под VPN-от е IPv4, рутата не се појавува со следен хоп што влезниот раб може да го користи директно. Таа пристигнува во IPv4-мапирана IPv6 форма, и така спецификацијата го изразува излезниот раб кога транспортот под него е IPv4. Влезниот рутер потоа мора да ја претвори таа мапирана адреса во нешто до што навистина може да стигне низ јадрото, а разрешувањето е чекорот што тивко откажува.
Читајте го како зависност за препраќање, а не како низа за копирање меѓу уреди. Потврдете три работи на платформата што навистина ја управувате: објавениот следен хоп се разрешува во употреблив пат, стекот со ознаки се прифаќа и одредиштето слетува во предвидената VPN контекст. Ако било кое од нив откаже, останува сесија што изгледа здрава и не препраќа ништо, затоа проверката припаѓа во приемното извршување, а не во подоцнежен инцидент.
Напишете го условот во четири реда
Услов што вреди да се тестира именува четири работи: фамилијата на VPN-от, транспортот на сесијата, кодирањето на следниот хоп и уредувањето на јадрото. Потоа именува еден клиентски префикс што треба да се следи од почеток до крај: низ размена, инсталација, разрешување на ознаки и повратен пат. „Поддржува IPv6 BGP“ не покрива ниту една од четирите и крие каде навистина лежи несовпаѓањето.
Здрава сесија без размената VPN-IPv6 е нецелосна, а примена VPN рута без работечко препраќање е еднако нецелосна. Нивното држење како одделни приемни редови го скратува следниот разговор за отстранување проблеми, бидејќи редот што откажува е веќе запишан.