Varovanie AF_INET OpenVPN: neškodný záložný režim alebo zlyhaný socket?
Odlište záložný režim AF_INET od neskoršieho zlyhania pri vytváraní socketu: prečítajte presný riadok, potom skontrolujte poslucháča a ďalšiu chybu.
Dva riadky denníka OpenVPN začínajú rovnakými slovami a iba jeden z nich hlási problém. Could not determine IPv4/IPv6 protocol. Using AF_INET je oznámenie o záložnom režime: profil ponechal rodinu adries otvorenú, takže démon jednu vybral a pokračoval. Vetva zlyhania hlási, že socket nebol vytvorený, a žiada reštart. Všetko za spoločnou predponou ich oddeľuje, preto čítajte ďalej, kým niečo zmeníte.
Čo oznámenie o záložnom režime hlási
OpenVPN prijíma výslovnú rodinu cez proto udp4 alebo proto udp6 a prijíma proto udp, keď sa má rodina odvodiť pri štarte. V druhom prípade démon preskúma miestne informácie o naviazaní a vyberie.
Keď toto odvodenie funguje, varovanie uvedie, ktorým smerom sa vydalo, a proces pokračuje vo vytváraní socketu. Server s proto udp na hostiteľovi s duálnym zásobníkom tak často skončí na IPv4. Nič na tejto ceste nie je chyba a nič v nej nenaznačuje útok, chýbajúci webový server alebo odmietnutý účet. Riadok je užitočný len preto, že neskoršie kontroly by sa mali porovnávať s rodinou, ktorú uvádza.
Berte to ako odpoveď na jednu otázku, nie ako diagnózu. Uvádza, ktorú rodinu tento proces zvolil, a vôbec nič o tom, prečo sa klient nemôže pripojiť.
Ako vyzerá vetva zlyhania
Neskôr v tom istom kóde pre socket je vetva, kde neexistuje žiadny socket. Zapíše kratšiu správu o rodine adries a požiada o reštart, pretože nezostalo nič na pokračovanie. Úvodné slová zodpovedajú záložnému režimu; výsledok nie.
Rozlíšte ich podľa toho, čo nasleduje. Ak démon beží ďalej a hlási svojho poslucháča, riadok bol informácia. Ak skončí alebo sa reštartuje v slučke, hovorí sa teraz o naviazaní.
Ani nález v grepe nie je identifikácia vetvy. Fráza sa objavuje v rotovaných zhrnutiach, v zalomených riadkoch a vo výňatkoch z denníka, ktoré ľudia vkladajú z druhej ruky, preto čítajte susedné riadky a poradie časových značiek, nie jedinú zhodu.
Skontrolujte poslucháča, nie varovanie
Bežiaci server odpovedá na otázku o rodine priamo, bez odvodzovania z textu denníka.
ss -lunp | grep openvpn
ss -ltnp | grep openvpnPorovnajte rodinu, adresu a port s profilom. Riadok 0.0.0.0:1194 je iba IPv4, zatiaľ čo riadok [::]:1194 na hostiteľovi s duálnym zásobníkom môže prijímať obe rodiny podľa nastavenia bindv6only. Ak profil uvádza udp a socket je IPv4, klienti, ktorých resolver vracia iba záznam AAAA, zlyhajú skôr, než sa tunel vôbec vyjedná.
Potom testujte z klienta, ktorý sa podobá vašim používateľom: rovnaká cesta resolvera, rovnaký druh siete. Miestne pripojenie zo servera dokazuje len veľmi málo o prevádzke, ktorá prechádza zariadením NAT alebo pravidlom firewallu napísaným pre druhú rodinu.
Kedy je vynútenie rodiny správne
Pripnutie proto udp4 sa hodí na nasadenie iba s IPv4: DNS meno len s A, pravidlá firewallu pre jednu adresu v4, klienti za operátormi, ktorí prideľujú len adresy v4. Odstraňuje to nejednoznačnosť a robí ďalšiu sadu riadkov denníka predvídateľnou.
Rovnaký argument platí opačne pre prostredie s prioritou IPv6 a udp6 pred klientskou základňou len s A je samovoľne spôsobený výpadok. Vynucovať rodinu len preto, aby sa umlčalo neškodné varovanie, je klasická verzia tejto chyby, pretože ste zmenili, kto sa môže pripojiť, výmenou za pokojnejší denník.
Vyberajte podľa koncových bodov a klientov, ktorí k nim musia dosiahnuť. Príručka OpenVPN 2.6 dokumentuje formy prepravy a správa je výstupom tejto voľby, nie jej vstupom.
Držte záznam úzky
Zapíšte presný riadok s jeho časovou značkou, účinné nastavenie prepravy z bežiaceho profilu, socket tak, ako ho hlási jadro, a ďalšiu fázu, ktorá zlyhala. Tieto štyri položky vyriešia takmer každú otázku, ktorú správa vyvoláva, a žiadna z nich nevyžaduje hádanie o nesúvisiacich službách. Prežijú aj odovzdanie, čo snímka obrazovky z grepu nevie.
Návrhy balíkov, ktoré prichádzajú spolu s týmto varovaním, nesúvisia, kým chyba nepomenuje chýbajúci spustiteľný súbor.
Ak ifconfig skutočne chýba, démon to povie menom, keď ho skript zavolá, a to si zaslúži vlastné vyšetrovanie. Riadok AF_INET a chýbajúca utilita sú rôzne zlyhania a inštalovanie vecí len preto, aby ste videli, či sa varovanie zmení, je spôsob, akým sa čistý hostiteľ stane neporiadnym.