De client maakt verbinding, de tunnel draagt pings naar de gateway, en niets daarbuiten antwoordt. Die toestand is normaal voor een gateway die alleen bedoeld was om toegang tot beschermde netwerken te bieden, en het is een fout voor een die als volledige-tunnelexit wordt aangeboden. Bevestig voordat je regels wijzigt welke dienst was beloofd. Volg daarna één openbaar verzoek door de vier plaatsen waar het kan stoppen. Eén verzoek en één packetcapture beslechten meer dan een pagina vol gissingen.

Bevestig of internetuitgang ooit het ontwerp was

Een split-tunnelprofiel stuurt alleen de beschermde subnetten de VPN in, dus openbaar browsen blijft over de lokale verbinding lopen en raakt de gateway nooit. Een volledig-tunnelprofiel installeert een standaardroute in de tunnel, waardoor de gateway verantwoordelijk is voor het hele pad. Beide zijn legitieme ontwerpen, en ze verwarren levert een storingsrapport op waar er geen is. Lees de aangekondigde routes van de client voordat je iets anders test, want de routetabel beantwoordt de vraag die het ticket meestal verkeerd krijgt.

Wat de client installeert, is niet altijd wat het profiel bedoelt. Een gepushte route kan worden overschreven door een lokale route met een lagere metriek, en een client die zijn LAN-route houdt terwijl hij een standaardroute toevoegt, gedraagt zich als een split tunnel voor dat subnet.

Volg één openbaar verzoek

Kies één bestemming en volg die vanaf de client naar buiten. Controleer op de client of het pakket daadwerkelijk de tunnel kiest en welk lokaal adres het als bron gebruikt. Controleer dan de gateway: komt het pakket aan, en verlaat het de openbare interface. Elk van die antwoorden schrapt een hele categorie oorzaak.

ip route get 1.1.1.1
ip -4 addr show tun0
conntrack -L | grep 1.1.1.1
tcpdump -ni any host 1.1.1.1

Als de gateway het pakket nooit ziet, is de clientroute of de tunnelsselectie verkeerd. Als het aankomt en niet vertrekt, zit het probleem op de gateway, en gelden de overige drie controles.

Controleer doorsturen, route en vertaling

De doorstuurrichtlijnen die met strongSwan meekomen, gelden voor een gateway van elk tunneltype: de kernel moet pakketten tussen interfaces mogen verplaatsen, en er moet een bruikbare route naar het internet wijzen. Firewallbeleid moet het verkeer vervolgens toestaan, en het bronadres moet er een zijn dat de openbare kant kan beantwoorden. Een privéclientadres dat ongewijzigd naar het internet wordt doorgestuurd, krijgt nooit een antwoord.

sysctl net.ipv4.ip_forward
ip route get 1.1.1.1
nft list ruleset | grep -A6 forward
sysctl net.ipv4.conf.all.rp_filter

Bronvertaling is het gebruikelijke ontbrekende stuk. Daarmee herschrijft de gateway de bron van de client naar zijn openbare adres en volgt de stroom; zonder dat heeft het antwoord nergens heen te gaan. Cloudplatforms voegen een tweede grens toe, waar de routetabel of beveiligingsgroep van de instantie verkeer kan laten vallen dat de firewall van de gast toestaat. Die grens is makkelijk te missen omdat het gastsysteem van binnenuit correct geconfigureerd lijkt.

Reverse-path filtering op een asymmetrische opstelling kan ook geldige pakketten weggooien. Lees de teller op die regel in plaats van aan te nemen dat het in orde is, want een strikte instelling op de openbare interface verwerpt verkeer dat via een ander pad aankomt dan de routetabel voorspelt.

Antwoordpad en resolver zijn twee verschillende antwoorden

Let ook op het antwoord, niet alleen op het verzoek. Als het verzoek vertaald weggaat en het antwoord naar de vertaalde stroom terugkeert, werkt doorsturen zelfs wanneer de toepassing nog steeds faalt, en hoort het volgende onderzoek bij de toepassing of bij DNS.

Een site die een HTTP-fout teruggeeft, is het bewijs dat internetdoorsturen werkt. Een naam die niet oplost terwijl adrestoegang werkt, is een resolverprobleem, geen NAT-probleem.

Test na een nauwkeurige correctie de client opnieuw, plus elke privébron die bewust beperkt is. Internettoegang verlenen mag niet stilzwijgend de toegang verbreden naar elk netwerk dat aan de gateway hangt.

Gerelateerde artikelen