IPv6 MPLS VPN: trīs izvēles, nevis viena adrešu saime
Klienta VPN maršruti, BGP sesija starp PE un transports kodolā ir atsevišķi lēmumi. Sesija var darboties vienā saimē un pārvadāt citu.
Ja dizaina apskatā sakāt „palaid IPv6 L3VPN pāri IPv6 BGP“, tad šajā vienā teikumā slēpjas trīs atsevišķi lēmumi. Kuri prefiksi pieder klienta VPN, kuras adreses nes maršrutēšanas sesiju starp pakalpojumu sniedzēja malām un kurš kodols pārvieto marķēto paketi, ir neatkarīgas izvēles. Tās visas var būt IPv6, tās var būt sajauktas, un sajaukšana ir apzināti atļauta. Tieši šo trīs atdalīšana pārvērš neskaidru prasību kaut kā tādā, pret ko platformu var pārbaudīt.
Atdaliet trīs darbus
Pirmais darbs ir klienta maršruts: IPv6 prefiksi, kas pieder vienam VPN maršrutēšanas kontekstam un kuriem jāpaliek ārpus katra cita konteksta. Otrais ir maršrutēšanas savienojums starp pakalpojumu sniedzēja malas maršrutētājiem, kuri apmainās ar šiem prefiksiem. Trešais ir transports, kas nes marķēto klienta paketi caur kodolu uz tālo malu. Nosaukt tikai vienu no tiem vēl nav dizains.
| 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 |
Katram darbam ir sava adrešu saime, savi atteices veidi un bieži sava komanda. Tabula ir noderīga tieši tāpēc, ka viens teikums dizaina dokumentā mēdz saspiest visas trīs rindas vienā.
Maršruta saime ir VPN-IPv6, nevis IPv6 unicast
RFC 4659 definē BGP/MPLS IPv6 VPN saimi, un piederība tai ir konkrētāka, nekā liecina vārds IPv6. Maršruts tur ir maršruta atšķirējs, kas savienots ar IPv6 prefiksu un kodēts saskaņā ar AFI 2 un SAFI 128. Parastais IPv6 unicast ir cita saime, tāpēc sludinājums, kas looking glass izskatās kā prefikss, var nemaz nebūt tas pats objekts. Nepareiza saimes nolasīšana ir pirmais veids, kā šis dizains aiziet greizi.
Atšķirība iekož malā, kur maršrutam vispirms jānolaižas pareizajā VPN kontekstā, pirms tas kaut ko dara. Prefiksa saņemšana pierāda, ka apmaiņa notika, un neko nepasaka par instalēšanu. Šī plaisa rada klasisko ziņojumu, kurā sesija ir uzcelta, bet klients joprojām ir tumsā.
Sesija var darboties citā saimē nekā VPN
Nekas neliek BGP savienojumam starp divām malām izmantot pašas VPN saimi. Specifikācija atļauj IPv4 vai IPv6 sesiju, un IPv6 VPN transports pats ir definēts pāri abiem kodola tipiem. Tāpēc IPv6 sesija neko nepasaka par tās pārvadātā objekta saimi, un tā neizvēlas arī datu plakni. Trīs neatkarīgi biti, un dizainam vajadzētu nest visus trīs atsevišķi.
Tas atbrīvo un tajā pašā elpā ir viegli nepareizi nolasāms. IPv6 klienta maršruti var braukt pa sesiju ar IPv4 adresi, un IPv4 maršruti pa IPv6 sesiju, ja vien platforma atbalsta šo kombināciju un nākamais lēciens tiek atrisināts. Kam nevajadzētu notikt, ir ļaut sesijai implicēt lietderīgo slodzi, dizaina dokumentā vai uzraudzībā, kas vēlāk pierāda pakalpojumu.
Nākamajam lēcienam IPv4 kodolā ir sava kodēšana
Kad kodols zem VPN ir IPv4, maršruts neparādās ar nākamo lēcienu, ko ieejas mala varētu izmantot tieši. Tas pienāk IPv4 kartētā IPv6 formā, un tā specifikācija izsaka izejas malu, kad transports zem tā ir IPv4. Tad ieejas maršrutētājam šī kartētā adrese jāpārvērš kaut kā tādā, ko tas patiešām sasniedz caur kodolu, un atrisināšana ir solis, kas klusi neizdodas.
Lasiet to kā pārsūtīšanas atkarību, nevis kā virkni, ko kopēt starp ierīcēm. Apstipriniet trīs lietas platformā, kuru patiešām pārvaldāt: izsludinātais nākamais lēciens atrisinās uz lietojamu ceļu, etiķešu steks tiek pieņemts, un galamērķis nonāk paredzētajā VPN kontekstā. Ja kāda no tām neizdodas, paliek sesija, kas izskatās vesela un neko nepārsūta, tāpēc šī pārbaude pieder pieņemšanas skrējienam, nevis vēlākam incidentam.
Uzrakstiet prasību četrās rindās
Prasība, ko ir vērts pārbaudīt, nosauc četras lietas: VPN saimi, sesijas transportu, nākamā lēciena kodēšanu un kodola izkārtojumu. Pēc tam tā nosauc vienu klienta prefiksu, kas jāizseko no gala līdz galam: caur apmaiņu, instalēšanu, etiķešu atrisināšanu un atgriešanās ceļu. „Atbalsta IPv6 BGP“ neaptver nevienu no četrām un slēpj, kur patiesībā atrodas neatbilstība.
Vesela sesija bez VPN-IPv6 apmaiņas ir nepilnīga, un saņemts VPN maršruts bez strādājošas pārsūtīšanas ir tikpat nepilnīgs. Šo lietu turēšana atsevišķās pieņemšanas rindās padara nākamo problēmu risināšanas sarunu īsu, jo nespējīgā rinda jau ir pierakstīta.