MPLS-VPN of IPsec-overlay: drie contracten om af te ronden
Een provider-VPN stuurt pakketten door en scheidt routing. Versleuteling is een derde contract dat niemand per ongeluk koopt, dus geef elke belofte een eigenaar.
Drie beloften zitten in één enkele wide-area offerte, en het ene kopen betekent niet dat je de andere koopt. Iemand stuurt je pakketten door, iemand houdt je routing gescheiden van elke andere klant, en iemand beslist of de payload onderweg leesbaar is. Die beloften kunnen bij verschillende partijen horen en toch één werkbaar ontwerp beschrijven. Ze scheiden is de beslissing; een technologienaam kiezen niet.
Drie beloften in één enkele wide-area offerte
De eerste belofte is transport: welke locaties verbinden, via welke toegangscircuits, en wie pakketten daartussen doorstuurt. De tweede is routing: welke prefixen elkaar mogen bereiken, wie een wijziging goedkeurt, en hoe je verkeer gescheiden blijft van een andere huurder. De derde is bescherming: wat versleuteld is, tussen welke eindpunten, en wie de sleutels heeft. Vraag elk schriftelijk, want elk antwoord staat in een ander document.
Een providerofferte heeft de neiging het eerste te prijzen, het tweede aan te nemen en het derde aan jou over te laten. Dat is geen oneerlijkheid; de drie worden door verschillende teams verkocht. Het wordt een probleem wanneer een ontwerpbeoordeling ontdekt dat het beveiligingsteam versleuteling aannam en het netwerkteam aannam dat de provider dat regelde. De zin in drieën splitsen kost een uur en voorkomt die vergadering.
Een label beschrijft doorsturen, niet de dienst bij het afleverpunt
Multiprotocol label switching zegt hoe een pakket binnen een providernetwerk reist. Het zegt niet waarop de klant aansluit, of wat de klant met de providerrand uitwisselt. Een provider kan een gerouteerde IP-VPN op MPLS bouwen, of een layer-2-dienst met een heel ander aansluitmodel, en beide kunnen je bereiken als een „MPLS-verbinding”.
De IETF-terminologie voor door de provider geleverde VPN’s definieert de woordenschat precies hiervoor: de klantrand, de providerrand en de dienstmodellen die daartussen worden gebouwd. Gebruik die wanneer een offerte de lagen vervaagt, en vraag wat de overdracht fysiek is.
Een gerouteerde dienst geeft je een routeringsrelatie met de providerrand, dus een prefix toevoegen wordt een wijzigingsverzoek in twee organisaties. Een layer-2-overdracht draagt je eigen routing en verplaatst de operationele last naar jouw kant. Geen van beide is in het abstracte beter; het antwoord volgt uit hoe vaak je topologie verandert en wie je om drie uur ’s ochtends wilt laten antwoorden.
Versleuteling is een belofte die je niet per ongeluk kunt delegeren
Privétransport maakt een payload niet onleesbaar. Scheiding door de provider houdt huurders operationeel uit elkaar; het is geen uitspraak over wie de bytes op het pad kan inspecteren. Als de eis is dat de provider het verkeer niet kan lezen, heeft die eis een mechanisme nodig dat jij beheert, en IPsec is het gebruikelijke.
IPsec draait net zo makkelijk over privétransport als over internettoegang, dus „MPLS of IPsec” is een valse keuze wanneer je beheerde bereikbaarheid en je eigen vertrouwensgrens tegelijk nodig hebt. Bepaal waar de tunnel eindigt, want een tunnel die op een router eindigt, laat het segment achter die router in klare tekst. Bepaal daarna wie elke peer beheert, want een sleutel bij een derde partij is geen grens die jij bezit.
Geef elke belofte een naam en een meetbare grens
Schrijf één regel per belofte met een eigenaar en een grens die meetbaar is. De beschikbaarheid van een toegangscircuit hoort bij de leverancier, de backbone-latentie hoort bij de provider, en de levensvatbaarheid van de tunnel hoort bij wie de eindpunten beheert. Eén enkel end-to-end-getal dat niemand meet, is een getal dat niemand je schuldig is.
Een service level agreement komt uit het contract en de reikwijdte ervan, niet uit de letters van een technologienaam. IPsec vereist geen best-effort internettransport, en MPLS draagt op zichzelf geen latencygarantie; beide hangen af van het onderliggende netwerk en de eindpunten die je kiest.
Test het pad dat je hebt getekend, inclusief het falen ervan
Een privétransport met een ruime interface kan alsnog falen zodra een overlay headers toevoegt, en het symptoom is een sessie die tot stand komt en dan vastloopt op grote antwoorden. Test de bruikbare grootte in plaats van erover te redeneren, en schrijf het grootste pakket op dat end-to-end passeert. Doe dat voordat je over bandbreedte discussieert, want een pad dat grote pakketten laat vallen lijkt op een applicatieprobleem. Het getal hoort in het ontwerpdocument naast de MTU van elk toegangscircuit.
ping -M do -s 1400 -c 3 <vpn-gateway>
traceroute -n <vpn-gateway>
Die commando’s komen van een Linux-host op één locatie; andere platforms schrijven dezelfde test anders. Als een locatie een kleinere waarde nodig heeft, is dat een ontwerpbeperking om vast te leggen, geen fout om te melden. Dezelfde discipline geldt voor doorvoer, want versleuteling kost verwerking en het eindpunt wordt onderdeel van de capaciteitsberekening.
Teken twee diagrammen voordat je ondertekent: het normale pad met elke eigenaar gelabeld, en het faalpad met dezelfde labels. Het tweede legt ontwerpen bloot die op papier redundant lijken en in de praktijk van één apparaat afhangen. Wanneer een storing komt, is het die tekening die een verwarrende ochtend in een korte triage verandert.