IPv6 en MPLS-VPN: tri elektoj, ne unu adresa familio
La VPN-itineroj de la kliento, la BGP-sesio inter la PE kaj la transporto en la kerno estas apartaj decidoj. Sesio povas kuri en unu familio kaj porti alian.
Diru «ruligu IPv6 L3VPN super IPv6 BGP» en dizajna revizio kaj tri apartaj decidoj kaŝiĝas en tiu unu frazo. Kiuj prefiksoj apartenas al la VPN de la kliento, kiuj adresoj portas la enkursigan sesion inter la randoj de la provizanto kaj kiu kerno movas la etikeditan paketon estas sendependaj elektoj. Ĉiuj povas esti IPv6, ili povas esti miksitaj, kaj miksado estas intence permesita. Ĝuste malimpliki la tri transformas malklaran postulon en ion, kontraŭ kio platformo povas esti testata.
Apartigu la tri taskojn
La unua tasko estas la klienta itinero: IPv6-prefiksoj, kiuj apartenas al unu VPN-enkursiga kunteksto kaj devas resti ekster ĉiu alia kunteksto. La dua estas la enkursiga konekto inter la randaj enkursigiloj de la provizanto, kiuj interŝanĝas tiujn prefiksojn. La tria estas la transporto, kiu portas la etikeditan klientan paketon tra la kerno al la fora rando. Nomumi nur unu el ili ankoraŭ ne estas dizajno.
| 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 |
Ĉiu tasko havas sian propran adresan familion, siajn proprajn fiaskmanierojn kaj ofte sian propran teamon. La tabelo utilas ĝuste ĉar unu frazo en dizajna dokumento emas kunpremi ĉiujn tri vicojn en unu.
La itinera familio estas VPN-IPv6, ne IPv6 unicast
RFC 4659 difinas la familion BGP/MPLS IPv6 VPN, kaj membreco en ĝi estas pli specifa ol la vorto IPv6 sugestas. Itinero tie estas itinera distingilo kunigita kun IPv6-prefikso, kodigita sub AFI 2 kaj SAFI 128. Ordinara IPv6 unicast estas alia familio, do anonco, kiu en looking glass aspektas kiel prefikso, eble tute ne estas la sama objekto. Mislegi la familion estas la unua maniero, kiel ĉi tiu dizajno misfunkcias.
La diferenco montriĝas ĉe la rando, kie itinero devas unue surteriĝi en la ĝusta VPN-kunteksto antaŭ ol fari ion ajn. Ricevi prefikson pruvas, ke la interŝanĝo okazis, kaj diras nenion pri instalado. Tiu breĉo produktas la klasikan raporton, en kiu la sesio estas supren kaj la kliento ankoraŭ estas malluma.
La sesio povas kuri en familio malsama ol la VPN
Nenio devigas la BGP-konekton inter du randoj uzi la propran familion de la VPN. La specifo permesas IPv4 aŭ IPv6-sesion, kaj la transporto de IPv6 VPN mem estas difinita super ambaŭ kernaj tipoj. Do IPv6-sesio diras nenion pri la familio de tio, kion ĝi portas, kaj ĝi ankaŭ ne elektas la datuman ebenon. Tri sendependaj bitoj, kaj la dizajno devus porti ĉiujn tri aparte.
Tio liberigas kaj samtempe facile mislegiĝas. IPv6-klientaj itineroj povas rajdi sesion kun IPv4-adreso, kaj IPv4-itineroj povas rajdi IPv6-sesion, kondiĉe ke la platformo subtenas la kombinon kaj la sekva saltpunkto solviĝas. Kio ne rajtas okazi estas lasi la sesion implici la utilŝarĝon, en la dizajna dokumento aŭ en la monitorado, kiu poste pruvas la servon.
La sekva saltpunkto sur IPv4-kerno havas sian propran kodigon
Kiam la kerno sub la VPN estas IPv4, la itinero ne aperas kun sekva saltpunkto, kiun la enira rando povas uzi rekte. Ĝi alvenas en formo de IPv6 mapita al IPv4, kaj tiel la specifo esprimas la eliran randon, kiam la transporto sub ĝi estas IPv4. La enira enkursigilo tiam devas turni tiun mapitan adreson en ion, kion ĝi vere povas atingi tra la kerno, kaj solvado estas la paŝo, kiu silente fiaskas.
Legu ĝin kiel dependecon de plusendado, ne kiel ĉenon por kopii inter aparatoj. Konfirmu tri aferojn sur la platformo, kiun vi efektive funkciigas: la anoncita sekva saltpunkto solviĝas al uzebla vojo, la etikeda stako estas akceptita kaj la celo surteriĝas en la celita VPN-kunteksto. Se iu el tiuj fiaskas, restas sesio, kiu aspektas sana kaj plusendas nenion, kaj tial la kontrolo apartenas al la akcepta kuro, ne al posta incidento.
Skribu la postulon en kvar linioj
Postulo inda je testado nomas kvar aferojn: la familion de la VPN, la transporton de la sesio, la kodigon de la sekva saltpunkto kaj la aranĝon de la kerno. Poste ĝi nomas unu klientan prefikson por sekvi de fino al fino: tra interŝanĝo, instalado, etikeda solvado kaj revena vojo. «Subtenas IPv6 BGP» kovras neniun el la kvar kaj kaŝas, kie la misagordo efektive loĝas.
Sana sesio sen la interŝanĝo VPN-IPv6 estas nekompleta, kaj ricevita VPN-itinero sen funkcianta plusendado estas egale nekompleta. Teni ilin kiel apartajn akceptajn liniojn mallongigas la sekvan problemsolvan interparolon, ĉar la fiaskanta linio jam estas skribita.