OpenVPN AF_INET-averto: sendanĝera rezerva vojo aŭ malsukcesa ingo?
Distingigu la AF_INET-rezervon de la posta malsukceso krei ingon: legu la precizan linion, poste kontrolu la aŭskultanton kaj la sekvan eraron.
Du protokolaj linioj de OpenVPN komenciĝas per la samaj vortoj, kaj nur unu el ili raportas problemon. Could not determine IPv4/IPv6 protocol. Using AF_INET estas rezerva sciigo: la profilo lasis la adresan familion malfermita, do la demono elektis unu kaj daŭrigis. La malsukcesa branĉo raportas, ke neniu ingo estis kreita, kaj petas restarigon. Ĉio post la komuna prefikso ilin apartigas, do legu preter ĝi antaŭ ol ŝanĝi ion ajn.
Kion raportas la rezerva sciigo
OpenVPN akceptas eksplicitan familion per proto udp4 aŭ proto udp6, kaj akceptas proto udp kiam la familio devas esti derivita ĉe lanĉo. En la dua kazo la demono ekzamenas la lokan bind-informon kaj elektas.
Kiam tiu derivado funkcias, la averto diras en kiun direkton ĝi iris, kaj la procezo daŭrigas krei la ingon. Servilo kun proto udp sur duobla staka gastiganto ofte tiel alvenas al IPv4. Nenio sur tiu vojo estas eraro, kaj nenio en ĝi sugestas atakon, mankantan retservilon aŭ rifuzitan konton. La linio utilas nur ĉar postaj kontroloj devus kompari kun la familio, kiun ĝi nomas.
Traktu ĝin kiel respondon al unu demando, ne kiel diagnozon. Ĝi diras, kiun familion ĉi tiu procezo elektis, kaj nenion pri tio, kial kliento ne povas konekti.
Kiel aspektas la malsukcesa branĉo
Poste en la sama inga kodo ekzistas branĉo, kie tute mankas ingo. Ĝi registras la pli mallongan mesaĝon pri adresa familio kaj petas restarigon, ĉar restas nenio por daŭrigi. La komencaj vortoj kongruas kun la rezerva vojo; la rezulto ne.
Distingigu ilin per tio, kio sekvas. Se la demono daŭre funkcias kaj raportas sian aŭskultanton, la linio estis informo. Se ĝi eliras aŭ restartiĝas en buklo, la konversacio nun temas pri la bind.
Ankaŭ trafo de grep ne identigas la branĉon. La frazo aperas en ciklaj resumoj, en falditaj linioj kaj en protokol-elĉerpaĵoj, kiujn homoj algluas el dua mano, do legu la najbarajn liniojn kaj la ordon de la tempaj markoj anstataŭ la unuopa kongruo.
Kontrolu la aŭskultanton anstataŭ la averton
Funkcianta servilo respondas la familian demandon rekte, sen konkludo el la protokola teksto.
ss -lunp | grep openvpn
ss -ltnp | grep openvpnKongruigu la familion, la adreson kaj la pordon kun la profilo. Linio 0.0.0.0:1194 estas nur IPv4, dum linio [::]:1194 sur duobla staka gastiganto povas akcepti ambaŭ familiojn laŭ la agordo bindv6only. Se la profilo diras udp kaj la ingo estas IPv4, klientoj, kies solvilo redonas nur registraĵon AAAA, malsukcesos antaŭ ol la tunelo eĉ estos intertraktita.
Poste testu el kliento simila al viaj uzantoj: sama solvila vojo, sama speco de reto. Loka konekto de la servilo pruvas tre malmulte pri trafiko, kiu transiras NAT-aparaton aŭ fajroŝirma regulo skribita por la alia familio.
Kiam devigi familion estas ĝuste
Fiksi proto udp4 taŭgas por nur-IPv4 lanĉo: DNS-nomo nur A, fajroŝirmaj reguloj por unu v4-adreso, klientoj malantaŭ operatoroj, kiuj donas nur v4-adresojn. Ĝi forigas malklarecon kaj igas la sekvan aron de protokolaj linioj antaŭvidebla.
La sama argumento validas inverse por IPv6-unua medio, kaj udp6 antaŭ klienta bazo nur A estas memkaŭzita interrompo. Devigi familion nur por silentigi sendanĝeran averton estas la klasika versio de ĉi tiu eraro, ĉar vi ŝanĝis, kiu povas konekti, kontraŭ pli trankvila protokolo.
Elektu laŭ la finpunktoj kaj la klientoj, kiuj devas atingi ilin. La OpenVPN 2.6-manlibro dokumentas la transportajn formojn, kaj la mesaĝo estas la rezulto de tiu elekto, ne ĝia enigo.
Tenu la rikordon mallarĝa
Skribu la precizan linion kun ĝia tempa marko, la efektivan transportan agordon el la funkcianta profilo, la ingon kiel la kerno raportas ĝin, kaj la sekvan etapon, kiu malsukcesis. Tiuj kvar eroj solvas preskaŭ ĉiun demandon, kiun la mesaĝo levas, kaj neniu el ili postulas konjekton pri nerilataj servoj. Ili ankaŭ postvivas transdonon, kion ekrankopio de grep ne faras.
Paketaj proponoj, kiuj alvenas kune kun ĉi tiu averto, estas nerilataj ĝis eraro nomas mankantan plenumeblon.
Se ifconfig vere mankas, la demono diras tion per nomo kiam skripto vokas ĝin, kaj tio meritas propran esploradon. La AF_INET-linio kaj mankanta utilaĵo estas malsamaj malsukcesoj, kaj instali aferojn por vidi, ĉu la averto ŝanĝiĝas, estas la maniero, kiel pura gastiganto fariĝas malordema.