De fout komt bij de import, vóór enige onderhandeling, en noemt een richtlijn die de client weigert te accepteren. OpenVPN Connect draait bibliotheekcode van OpenVPN 3, die de fragment-optie van de communityclient helemaal niet implementeert. Daarmee is dit een compatibiliteitsvraag tussen twee eindpunten en geen afstemmingsvraag over pakketgrootte.

De regel verwijderen levert een bestand op dat de client parseert, en een server die het formaat dat de regel beschreef misschien nog verwacht. Loop dat van het importscherm naar buiten door voordat je iets aanpast.

Waar de import stopt

De importeur parseert richtlijnen voordat hij de server benadert, dus een weigering daar is een lokale beslissing over syntaxis en geen netwerkresultaat, en de lijst met niet-ondersteunde richtlijnen van OpenVPN legt dezelfde beperking vast. Dat verklaart hoe één bestand in de communityclient kan werken en in Connect op dezelfde machine kan mislukken. Lees in de melding de naam van de richtlijn en bewaar het originele bestand, want die tekst is het enige bewijs van waar de client bezwaar tegen maakte. Een importfout en een verbindingstime-out komen uit verschillende fasen en verdienen verschillende reacties.

Noemt de melding fragment, dan blijft de vraag of ook de server ervan afhangt. Beantwoord dat voordat je het profiel aanraakt dat je hebt gekregen.

Wat fragment in de communityclient verandert

In de communityclient schakelt de richtlijn de eigen datagramfragmentatie van OpenVPN in, die payloads splitst voordat ze de buitenste IP-laag bereiken. Ze bestaat om paden te overleven die grote UDP-datagrammen laten vallen en om een tunnel bruikbaar te houden waar niet op path-MTU-detectie te vertrouwen is. Het is niet synoniem met het verlagen van de interface-MTU, en het is geen IP-fragmentatie door het besturingssysteem. Een client zonder het mechanisme krijgt het niet door een getal te verlagen.

Omdat de instelling ook in de serverconfiguratie zit, verandert het verwijderen uit jouw kopie alleen jouw kant. De server verwacht misschien nog een peer die de optie begrijpt, en een profiel dat parseert is nog geen sessie die tot stand komt. Die twee feiten verklaren de verwarrende tussenstand waarin een bewerkt bestand verbindt en dan blijft hangen.

Vraag om een profiel dat voor deze client is gebouwd

De schone route is een tweede profiel dat voor OpenVPN Connect is gedocumenteerd, als de dienst er een publiceert. Veel providers doen dat, en het verschil zit meestal in de richtlijnen die ze weglaten, niet in het eindpunt waar ze naar wijzen. Vraag ernaar met de clientnaam in plaats van de fout te beschrijven, want een helpdesk kan een profiel veel sneller aan een client koppelen dan een uitgekleed bestand diagnosticeren.

Beheer je de server, dan is de beslissing breder dan je eigen client. Fragmentatie uitschakelen raakt elke peer, ook degenen die het nodig hadden om verbonden te blijven over een slecht pad. Een tweede listener of een tweede configuratie publiceren voor de getroffen client houdt bestaande gebruikers aan het werk terwijl de nieuwere client iets krijgt dat hij kan parseren. Hoe je het ook aanpakt, schrijf op welke configuratie welke client bedient, want die koppeling verdwijnt anders snel.

Controleer de verbinding, niet alleen de import

Een geslaagde import bewijst alleen dat de parser het bestand heeft geaccepteerd. Zet de tunnel op met de communityclient op een machine die je beheert, met hetzelfde profiel, en lees de log voor transport- en versleutelingsonderhandeling. De opdrachten hieronder doen dat zonder dat de desktop-app in de weg zit.

openvpn --config client.ovpn --verb 3
ip -4 addr show tun0
curl -sS --interface tun0 -o /dev/null -w '%{http_code}\n' --max-time 8 https://example.com/

De log laat zien waar de poging stopte: een fout in een optie verschijnt vóór elke TLS-uitwisseling, terwijl een authenticatie- of versleutelingsfout erna verschijnt. Komt de tunnel omhoog en mislukt het verzoek alsnog, dan is het probleem van compatibiliteit naar routering verschoven. Vergelijk dat met het gedrag van Connect op hetzelfde netwerk voordat je iets over de server concludeert.

Bewaar het werkende profiel en de clientversie naast de notitie. Een toekomstige clientversie kan ondersteuning voor een richtlijn toevoegen, en dat verandert het antwoord zonder dat iemand de server aanraakt.

Gerelateerde artikelen