VPN-adapteren viser /32: det betyr ikke én destinasjon
En maske på 255.255.255.255 på en VPN-adapter er klientens egen adresse, ikke en grense for nåbare verter. Les ruter, gateway-omfang og returvei hver for seg.
Adaptere viser 255.255.255.255, og konklusjonen er ofte at VPN-et kan nå nøyaktig én adresse. Den lesningen forveksler klientens egen adresse med settet av destinasjoner som rutes gjennom tunnelen. På et punkt-til-punkt- eller rutet grensesnitt er de to forskjellige objekter, og bare ett av dem begrenser nåbarheten. Myten overlever fordi masken ser ut som subnettmasken folk lærte på Ethernet.
Myten: en vertsmaske betyr én nåbar vert
En /32-tildeling forteller grensesnittet hvilken adresse som hører til denne enden av forbindelsen, og på en punkt-til-punkt-forbindelse er det alt den betyr. Partnerens adresse er et eget felt, og rutene som sier hva som ligger bak partneren, er igjen egne. Ingenting i masken beskriver det fjerne nettet, fordi masken ikke er stedet der fjerne nett beskrives. Å lese den som en nåbarhetsgrense er som å lese sitt eget husnummer som en liste over alle adressene man har lov til å besøke.
Forvirringen har en reell rot: på Ethernet ville en vertsmaske virkelig bety én enkelt adresse på det segmentet. En tunnel er ikke et Ethernet-segment, og hva som går gjennom den avgjøres av klientens rutetabell, ikke masken. Derfor kan den samme /32 stå foran et helt datasenter.
Les adressen og rutene som separate objekter
Skriv ut grensesnittet og tabellen sammen, og les dem deretter som to svar på to spørsmål. Adressen svarer på hvem denne enden er; rutene svarer på hvor trafikken kan gå. Et tredje spørsmål, hvilke destinasjoner gatewayen tillater, er ikke synlig i det hele tatt på klienten. Adressereferansen for iproute2 beskriver feltene for lokal adresse, partner og prefiksrute hver for seg nettopp av denne grunn.
ip addr show tun0
ip route show
ip route get 10.60.5.10
På Windows finnes den samme oppdelingen mellom adresselisten og rutetabellen, og oppslagskommandoen er den raskeste måten å se hvilken som vinner for en bestemt destinasjon. Hvis oppslaget returnerer tunellgrensesnittet, sender klienten pakken dit. Hvis det returnerer den fysiske adapteren, spør klienten aldri VPN-et, og ingen tillatelse på serversiden endrer det. Kontroller destinasjonen du faktisk trenger, ikke en generisk offentlig adresse.
Get-NetIPAddress -InterfaceAlias "VPN"
Find-NetRoute -RemoteIPAddress 10.60.5.10
Stopp hvis oppslaget peker på feil grensesnitt. Det er et ruteproblem på klienten, og det rettes på klienten.
Hvorfor en bredere maske vanligvis gjør det verre
Å endre tildelingen til en /24 for å se ut som kontorets LAN kan skape et prefiks på forbindelsen: kjernen tror nå at hele /24-et er direkte koblet til tunellgrensesnittet. Trafikk til adresser som burde rutes gjennom gatewayen, sendes da som om en nabo var på forbindelsen. Resultatet er et svart hull som ser ut som et serverutfall.
Det skjuler også det egentlige problemet, nemlig en manglende rute eller en manglende tillatelse på gatewayen. Ingen av dem skapes av en bredere maske, og begge overlever endringen. Hvis designet trenger et større prefiks på grensesnittet, er det en beslutning for grensesnittmodellen som brukes, tatt med dokumentasjonen i hånden. Å kopiere en maske fra et annet produkts skjermbilder er ikke den beslutningen.
Hvis ruten for det fjerne prefikset mangler, rett opp provisjoneringen av den. Hvis den finnes og forbindelsen fortsatt avvises, var masken aldri diagnosen.
Når ruten er riktig og flyten likevel feiler
En riktig rute beviser bare at klienten vil sende pakken. Gatewayen må fortsatt godta destinasjonen, returveien må finnes for den tildelte adressen, og tjenesten må tillate flyten. Test disse tre hver for seg: oppslaget på klienten, gatewayens tillatte omfang og en forespørsel til én nødvendig server. At autentiseringen lykkes før alle tre er på plass, er normalt, og derfor kan en tilkoblet klient fortsatt ikke nå noe.
ping -c1 10.60.5.10
traceroute -n 10.60.5.10
curl -sv https://app.internal.example/ -o /dev/null
Hold nettverksobjekter og gruppetillatelser hos eieren deres på en tjeneste som styres av et apparat. Det klienten blir fortalt å nå, og det den har lov til å bruke, er forskjellige innstillinger, ofte på forskjellige skjermer. Å endre det ene og teste det andre er hvordan en sak hopper mellom to team.
Myten som bør pensjoneres, er at masken er en nåbarhetsgrense. Les adressen, rutene og gateway-policyen som tre separate fakta, og en /32 slutter å se ut som en begrensning og begynner å se ut som en normal tunelltildeling.