OpenVPN: la loka adreso kontraŭ la tunela adreso — du malsamaj soketoj
La adreso, kiu kontaktas la servilon, ne estas la adreso ene de la tunelo. Se oni legas local, remote kaj nobind kiel apartajn rolojn, plej multaj bind-eraroj klarigeblas.
La kliento rifuzas ekstarti kaj plendas, ke ĝi ne povas ligi lokan adreson, kaj la evidenta solvo aspektas jene: direkti ĝin al la tunela adreso, kiun ĝi atendas ricevi. Tio ne povas funkcii, kaj la kaŭzo indas kompreniĝi: antaŭ ol la tunelo ekzistas, ne ekzistas interna adreso, kaj la soketo, kiu kontaktas la servilon, devas ekzisti unue. Estas du malsamaj adresoj kaj nur unu el ili povas esti elektita loke.
La bind-eraro nomas lokan adreson
Kiam OpenVPN raportas, ke ĝi ne povas ligi lokan adreson, ĝi parolas pri la transporta soketo: la UDP- aŭ TCP-finpunkto, kiu portas la ĉifritan konekton al la kunulo.
Eksplicita local-direktivo petas la demonon ligi tiun soketon al specifa loka adreso. La adreso devas ekzisti en la reta nomspaco, kie la procezo funkcias, kaj ĝi devas esti atribuebla en la momento, kiam la kliento ekstartas.
Publika adreso tradukata ĉe enkursigilo aŭ ĉe la nuba rando ne estas loka adreso, kiun la demono povas ligi, kvankam ĝi estas la adreso, kiun la servilo vidas. Tiu distingo klarigas, kial unu profilo funkcias hejme kaj malsukcesas ĉe nuba instanco. Ĝi ankaŭ klarigas, kial aldoni la publikan adreson al loopback-interfaco ne helpas, ĉar la transporto tiam ekirus de adreso, al kiu la reto ne povas resendi. Legu la interfacan liston antaŭ ol redakti la profilon.
Kion local kaj remote efektive elektas
remote nomas la kunulon, kiun oni kontaktos. local ligas la proksiman finon de la sama soketo. nobind lasas al la operaciumo elekti kaj la lokan adreson kaj la pordon, kaj tial klientoj malantaŭ hejmaj enkursigiloj kutime funkcias sen iu ajn el la du direktivoj.
Neniu el la direktivoj rilatas al la adreso ene de la tunelo.
En ujo aŭ reta nomspaco validas la sama regulo kun pli mallarĝaj limoj: la adresoj de la gastiganto ne ĉeestas interne, do local-linio kopiita el la gastiganta agordo malsukcesas pro tute alia kaŭzo ol malĝusta adreso.
ip -brief address show
ip route get 203.0.113.10La interna adreso venas de la servilo
La adreso ene de la tunelo estas intertraktata aŭ atribuata post kiam la regada kanalo establiĝis. Kun dinamika baseno la servilo decidas tion ĉe la konekto, kaj kun klient-specifa agordo ĝi povas esti fiksita laŭ identeco.
Skribi local kun interna adreso ne petas la servilon atribui tiun adreson. En la plej bona kazo la ligo malsukcesas; en la plej malbona la kliento trovas nerilatan gastigantan adreson kun la sama valoro kaj ekuzas ĝin por la transporto.
Ankaŭ la legindaj interfacoj diferencas. ifconfig-parametroj kaj la basena agordo priskribas la internon, dum remote, local, proto kaj nobind priskribas la eksteron. Teni la du listojn aparte klarigas preskaŭ ĉiun konfuzan ekzemplon, kiun vi trovos en forumo. La OpenVPN 2.6-manlibro dokumentas ilin en apartaj sekcioj ĝuste pro tiu kaŭzo.
La kaptilo: plena tunelo, kiu kaptas sian propran transporton
Post kiam la tunelo funkcias kaj portas la defaŭltan itineron, la pakaĵoj, kiuj subtenas ĝin, ne rajtas esti enkursigitaj en ĝin. Tio estas enkursiga problemo, ne adresa, kaj la demono solvas ĝin instalante pli specifan itineron al la propra adreso de la servilo tra la origina pordego.
Se vi fiksas la transporton al specifa loka adreso kaj poste ŝanĝas la vojon, kiun tiu adreso uzas, la ekstera konekto povas perdiĝi dum la interno restas agordita. La tunelo daŭre raportas, ke ĝi estas konektita, ĉar la interno estas en ordo. Nur la transporto estas rompita, kaj tial la protokoloj legiĝas kiel kontraŭdiroj.
La simptomoj tiam aspektas kiel tunelo, kiu konektiĝas kaj frostas, aŭ kiel unu, kiu rekonektiĝas en buklo sen utila eraro. Kontrolu la itineron al la adreso de la kunulo antaŭ ol kontroli ion ajn ene de la tunelo, kaj konfirmu, ke la loka adreso, kiun vi ligis, ankoraŭ apartenas al la interfaco, kiun vi atendis.
Kutimo, kiu evitas la konfuzon
Legu ĉiun adreson en profilo kaj decidu, al kiu tavolo ĝi apartenas, antaŭ ol redakti ĝin.
Se ĝi nomas la malproksiman finon de la transporto aŭ ligas ĝian proksiman finon, ĝi estas ekstera adreso kaj devas ekzisti antaŭ la starto. Se ĝi priskribas, kio okazas ene de la tunelo, ĝi venas de la servilo aŭ de la topologio, kaj neniu loka direktivo povas anstataŭigi ĝin.
Skribu la du listojn en la surlokigajn notojn apud la profilo. La sekva sencimiga sesio tiam komenciĝos per la tavolo anstataŭ per konjekto.