Twee OpenVPN-logregels beginnen met dezelfde woorden, en slechts één ervan meldt een probleem. Could not determine IPv4/IPv6 protocol. Using AF_INET is een terugvalmelding: het profiel liet de adresfamilie open, dus koos de daemon er een en ging verder. De foutvertakking meldt dat er geen socket is aangemaakt en vraagt om een herstart. Alles na het gedeelde voorvoegsel scheidt ze, dus lees verder voordat je iets verandert.

Wat de terugvalmelding meldt

OpenVPN accepteert een expliciete familie via proto udp4 of proto udp6, en accepteert proto udp wanneer de familie bij het opstarten moet worden afgeleid. In het tweede geval bekijkt de daemon de lokale bind-informatie en kiest.

Wanneer die afleiding werkt, geeft de waarschuwing de richting aan en gaat het proces verder met het aanmaken van de socket. Een server met proto udp op een dual-stack-host komt zo vaak op IPv4 uit. Niets op dat pad is een fout, en niets erin wijst op een aanval, een ontbrekende webserver of een geweigerd account. De regel is alleen nuttig omdat latere controles met de genoemde familie moeten worden vergeleken.

Behandel het als een antwoord op één vraag, niet als een diagnose. Het zegt welke familie dit proces koos, en niets over waarom een client geen verbinding kan maken.

Hoe de foutvertakking eruitziet

Later in dezelfde socketcode is er een vertakking waarin helemaal geen socket bestaat. Die logt het kortere adresfamiliebericht en vraagt om een herstart, omdat er niets meer is om mee verder te gaan. De openingswoorden komen overeen met de terugval; de uitkomst niet.

Onderscheid ze aan wat volgt. Als de daemon blijft draaien en zijn listener meldt, was de regel informatie. Als hij afsluit of in een lus herstart, gaat het gesprek nu over de bind.

Een grep-treffer is ook geen identificatie van de vertakking. De zin duikt op in geroteerde samenvattingen, in afgebroken regels en in logfragmenten die mensen uit tweede hand plakken, dus lees de naburige regels en de volgorde van de tijdstempels in plaats van de enkele treffer.

Controleer de listener in plaats van de waarschuwing

Een draaiende server beantwoordt de familievraag rechtstreeks, zonder gevolgtrekkingen uit de logtekst.

ss -lunp | grep openvpn
ss -ltnp | grep openvpn

Vergelijk de familie, het adres en de poort met het profiel. Een 0.0.0.0:1194-regel is alleen IPv4, terwijl een [::]:1194-regel op een dual-stack-host beide families kan accepteren, afhankelijk van de bindv6only-instelling. Als het profiel udp zegt en de socket is IPv4, zullen clients waarvan de resolver alleen een AAAA-record teruggeeft mislukken voordat de tunnel ooit wordt onderhandeld.

Test dan vanaf een client die op je gebruikers lijkt: hetzelfde resolverpad, hetzelfde soort netwerk. Een lokale verbinding vanaf de server bewijst heel weinig over verkeer dat een NAT-apparaat of een firewallregel voor de andere familie passeert.

Wanneer een familie forceren juist is

Het vastzetten van proto udp4 past bij een uitrol met alleen IPv4: een DNS-naam met alleen A, firewallregels voor één v4-adres, clients achter providers die alleen v4-adressen uitdelen. Het haalt de dubbelzinnigheid weg en maakt de volgende set logregels voorspelbaar.

Hetzelfde argument werkt de andere kant op voor een omgeving met IPv6 voorop, en udp6 voor een clientbasis met alleen A is een zelf veroorzaakte storing. Een familie forceren alleen om een onschadelijke waarschuwing te dempen is de klassieke versie van deze fout, want je hebt veranderd wie kan verbinden in ruil voor een rustiger log.

Kies op basis van de eindpunten en de clients die ze moeten bereiken. De OpenVPN 2.6-handleiding documenteert de transportvormen, en de boodschap is de uitvoer van die keuze, niet de invoer.

Houd de registratie smal

Noteer de exacte regel met zijn tijdstempel, de effectieve transportinstelling uit het draaiende profiel, de socket zoals de kernel die meldt, en de volgende fase die mislukte. Die vier punten beslechten bijna elke vraag die de boodschap oproept, en geen ervan vereist giswerk over ongerelateerde diensten. Ze overleven ook een overdracht, wat een schermafbeelding van een grep niet doet.

Pakketvoorstellen die samen met deze waarschuwing binnenkomen, zijn ongerelateerd totdat een fout een ontbrekend uitvoerbaar bestand noemt.

Als ifconfig echt ontbreekt, zegt de daemon dat bij naam wanneer een script het aanroept, en dat verdient een eigen onderzoek. De AF_INET-regel en een ontbrekend hulpprogramma zijn verschillende fouten, en dingen installeren om te zien of de waarschuwing verandert is hoe een schone host een rommelige wordt.

Gerelateerde artikelen