To OpenVPN-logglinjer begynner med de samme ordene, og bare én av dem rapporterer et problem. Could not determine IPv4/IPv6 protocol. Using AF_INET er en tilbakefallsmelding: profilen lot adressefamilien stå åpen, så daemonen valgte én og fortsatte. Feilgrenen rapporterer at ingen socket ble opprettet og ber om omstart. Alt etter det felles prefikset skiller dem, så les forbi det før du endrer noe.

Hva tilbakefallsmeldingen rapporterer

OpenVPN godtar en eksplisitt familie via proto udp4 eller proto udp6, og godtar proto udp når familien skal utledes ved oppstart. I det andre tilfellet undersøker daemonen den lokale bind-informasjonen og velger.

Når den utledningen virker, angir advarselen hvilken vei det gikk, og prosessen fortsetter med å opprette socketen. En server med proto udp på en dual-stack-vert havner ofte på IPv4 på denne måten. Ingenting på den veien er en feil, og ingenting i den antyder et angrep, en manglende webserver eller en avvist konto. Linjen er bare nyttig fordi senere kontroller bør sammenlignes med familien den navngir.

Behandle det som et svar på ett spørsmål, ikke som en diagnose. Den sier hvilken familie denne prosessen valgte, og ingenting om hvorfor en klient ikke kan koble til.

Hvordan feilgrenen ser ut

Senere i den samme socket-koden er det en gren der det ikke finnes noen socket i det hele tatt. Den logger den kortere adressefamilie-meldingen og ber om omstart, fordi det ikke er noe igjen å fortsette med. Åpningsordene samsvarer med tilbakefallet; resultatet gjør det ikke.

Skill dem etter det som følger. Hvis daemonen fortsetter å kjøre og rapporterer lytteren sin, var linjen informasjon. Hvis den avslutter eller starter på nytt i en løkke, handler samtalen nå om bind.

Et grep-treff er heller ikke en identifikasjon av grenen. Uttrykket dukker opp i roterte sammendrag, i ombrukne linjer og i loggutdrag folk limer inn fra andre hånd, så les nabolinjene og rekkefølgen på tidsstemplene i stedet for det enkelte treffet.

Sjekk lytteren i stedet for advarselen

En kjørende server svarer på familien spørsmålet direkte, uten slutninger fra loggteksten.

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

Match familie, adresse og port mot profilen. En 0.0.0.0:1194-linje er bare IPv4, mens en [::]:1194-linje på en dual-stack-vert kan godta begge familier avhengig av bindv6only-innstillingen. Hvis profilen sier udp og socketen er IPv4, vil klienter hvis resolver bare returnerer en AAAA-post feile før tunnelen i det hele tatt forhandles.

Test deretter fra en klient som ligner brukerne dine: samme resolvervei, samme type nettverk. En lokal tilkobling fra serveren beviser svært lite om trafikk som krysser en NAT-enhet eller en brannmurregel skrevet for den andre familien.

Når det er riktig å tvinge en familie

Å feste proto udp4 passer for en utrulling med bare IPv4: et DNS-navn med bare A, brannmurregler for én v4-adresse, klienter bak operatører som bare deler ut v4-adresser. Det fjerner tvetydighet og gjør det neste settet logglinjer forutsigbart.

Det samme argumentet gjelder motsatt vei for et miljø med IPv6 først, og udp6 foran en klientbase med bare A er et selvpåført avbrudd. Å tvinge en familie bare for å dempe en ufarlig advarsel er den klassiske versjonen av denne feilen, fordi du har endret hvem som kan koble til, i bytte mot en roligere logg.

Velg ut fra endepunktene og klientene som må nå dem. OpenVPN 2.6-håndboken dokumenterer transportformene, og meldingen er resultatet av det valget, ikke et input til det.

Hold registreringen smal

Skriv ned den nøyaktige linjen med tidsstempelet, den effektive transportinnstillingen fra den kjørende profilen, socketen slik kjernen rapporterer den, og det neste trinnet som feilet. De fire punktene avgjør nesten hvert spørsmål meldingen reiser, og ingen av dem krever gjetting om urelaterte tjenester. De overlever også en overlevering, noe et skjermbilde av en grep ikke gjør.

Pakkeforslag som kommer sammen med denne advarselen, er urelaterte til en feil navngir en manglende kjørbar fil.

Hvis ifconfig virkelig mangler, sier daemonen det ved navn når et skript kaller det, og det fortjener sin egen undersøkelse. AF_INET-linjen og et manglende verktøy er forskjellige feil, og å installere ting for å se om advarselen endrer seg, er måten en ren vert blir rotete.

Relaterte artikler