Adaptere viser 255.255.255.255, og konklusionen er ofte, at VPN’et kan nå præcis én adresse. Den læsning forveksler klientens egen adresse med det sæt destinationer, der routes gennem tunnelen. På en punkt-til-punkt- eller rutet grænseflade er de to forskellige objekter, og kun det ene begrænser nåbarheden. Myten overlever, fordi masken ligner den subnetmaske, folk lærte på Ethernet.

Myten: en værtsmaske betyder én nåbar vært

En /32-tildeling fortæller grænsefladen, hvilken adresse der hører til denne ende af forbindelsen, og på en punkt-til-punkt-forbindelse er det alt, den betyder. Partnerens adresse er et separat felt, og de ruter, der siger, hvad der ligger ud over partneren, er igen separate. Intet i masken beskriver det fjerne netværk, fordi masken ikke er stedet, hvor fjerne netværk beskrives. At læse den som en nåbarhedsgrænse er som at læse sit eget husnummer som en liste over alle de adresser, man må besøge.

Forvirringen har en reel rod: på Ethernet ville en værtsmaske virkelig betyde én enkelt adresse på det segment. En tunnel er ikke et Ethernet-segment, og klientens routingtabel, ikke masken, afgør, hvad der går gennem den. Derfor kan den samme /32 ligge foran et helt datacenter.

Læs adressen og ruterne som separate objekter

Udskriv grænsefladen og tabellen sammen, og læs dem derefter som to svar på to spørgsmål. Adressen svarer på, hvem denne ende er; ruterne svarer på, hvor trafikken må gå hen. Et tredje spørgsmål, hvilke destinationer gatewayen tillader, er slet ikke synligt på klienten. Adressereferencen for iproute2 beskriver felterne for lokal adresse, partner og præfiksrute hver for sig netop derfor.

ip addr show tun0
ip route show
ip route get 10.60.5.10

På Windows findes samme opdeling mellem adresselisten og routingtabellen, og opslagskommandoen er den hurtigste måde at se, hvilken der vinder for en bestemt destination. Hvis opslaget returnerer tunnelegrænsefladen, sender klienten pakken derhen. Hvis det returnerer den fysiske adapter, spørger klienten aldrig VPN’et, og ingen tilladelse på serversiden ændrer det. Kontroller den destination, du faktisk har brug for, ikke en generisk offentlig adresse.

Get-NetIPAddress -InterfaceAlias "VPN"
Find-NetRoute -RemoteIPAddress 10.60.5.10

Stop, hvis opslaget peger på den forkerte grænseflade. Det er et routingproblem på klienten, og det rettes på klienten.

Hvorfor en bredere maske normalt gør det værre

At ændre tildelingen til en /24, så den ligner kontorets LAN, kan skabe et præfiks på forbindelsen: kernen tror nu, at hele /24’et er direkte knyttet til tunnelegrænsefladen. Trafik til adresser, der burde routes gennem gatewayen, sendes derefter, som om en nabo var på forbindelsen. Resultatet er et sort hul, der ligner et servernedbrud.

Det skjuler også det egentlige problem, nemlig en manglende rute eller en manglende tilladelse på gatewayen. Ingen af dem skabes af en bredere maske, og begge overlever ændringen. Hvis designet kræver et større præfiks på grænsefladen, er det en beslutning for den anvendte grænseflademodel, truffet med dokumentationen i hånden. At kopiere en maske fra et andet produkts skærmbilleder er ikke den beslutning.

Hvis ruten til det fjerne præfiks mangler, så ret dens provisionering. Hvis den findes, og forbindelsen stadig afvises, var masken aldrig diagnosen.

Når ruten er rigtig, og flowet stadig fejler

En korrekt rute beviser kun, at klienten vil sende pakken. Gatewayen skal stadig acceptere destinationen, returvejen skal findes for den tildelte adresse, og tjenesten skal tillade flowet. Test de tre ting hver for sig: opslaget på klienten, gatewayens tilladte omfang og en anmodning til én nødvendig server. At godkendelsen lykkes, før alle tre er på plads, er normalt, og det er derfor en tilsluttet klient stadig ikke kan nå noget.

ping -c1 10.60.5.10
traceroute -n 10.60.5.10
curl -sv https://app.internal.example/ -o /dev/null

Hold netværksobjekter og gruppetilladelser hos deres ejer på en tjeneste, der styres af et apparat. Det, klienten får besked om at nå, og det, den må bruge, er forskellige indstillinger, ofte på forskellige skærme. At ændre det ene og teste det andet er, hvordan en sag hopper mellem to teams.

Myten, der skal pensioneres, er, at masken er en nåbarhedsgrænse. Læs adressen, ruterne og gatewaypolitikken som tre separate fakta, og en /32 holder op med at ligne en begrænsning og begynder at ligne en normal tunneltildeling.

Relaterede artikler