Nastavili ste net.ipv4.conf.default.forwarding=1, znova zagnali VPN in predor še vedno zavrača pakete, ki bi jih prehod moral usmerjati. Nastavitev v datoteki je videti pravilna, vmesnik pa še vedno poroča, da je posredovanje onemogočeno. Nič ni pokvarjeno: spremenili ste vrednost, ki jo bodo podedovali prihodnji vmesniki, ne tiste, ki jo uporablja živi predor.

Pojdite skozi to na gostitelju, ki ima predor, v omrežnem namespace, kjer predor resnično obstaja. Container ali omrežni namespace lahko drži vmesnik, medtem ko gostitelj prikazuje drugačna števila.

Preberite tri vrednosti skupaj

Začnite s primerjavo stikala za celoten prehod, predloge za nove vmesnike in vmesnika, ki vas zanima. Zamenjajte tun0 z dejanskim vhodnim vmesnikom in preberite tudi povratni vmesnik, ker se posredovanje ocenjuje na točki, kjer paket prispe.

sysctl net.ipv4.ip_forward
sysctl net.ipv4.conf.default.forwarding
sysctl net.ipv4.conf.tun0.forwarding

Pogost rezultat je ip_forward = 0, default.forwarding = 1 in tun0.forwarding = 0. Prva dva se ne strinjata glede vloge gostitelja, tretji pa pokaže, kaj vmesnik v resnici počne. Ta kombinacija ustreza gostitelju, ki ni bil nikoli konfiguriran kot usmerjevalnik, ampak je dobil samo vrednost predloge. Tri števila si ne nasprotujejo; odgovarjajo na tri različna vprašanja. Tudi zapis vrednosti predloge ne odloči vloge gostitelja.

Zakaj se premakne prav globalno stikalo

net.ipv4.ip_forward je upravljanje za celoten prehod. Njegova sprememba posodobi nastavitve posredovanja za posamezni vmesnik kot del iste operacije, zato lahko en sam zapis povzroči, da obstoječi predor začne posredovati. default.forwarding seje le vmesnike, ki se inicializirajo pozneje, zato predor, ki je že obstajal, obdrži vrednost, s katero se je rodil.

Dokumentacija jedra označuje ip_forward kot posebno iz povezanega razloga: njegova sprememba ponastavi niz drugih parametrov IPv4 na privzete vrednosti za gostitelja ali usmerjevalnik. To ga naredi za topo orodje. Nastaviti ga enkrat v okviru vzpostavitve vloge prehoda je v redu; večkratno preklapljanje kot trik za odpravljanje napak lahko tiho prepiše konfiguracijo, v katero ste vložili čas.

Vrednosti za posamezni vmesnik obstajajo tudi z razlogom. Namerno upravljan prehod lahko obdrži posredovanje izklopljeno na vmesniku, ki ne bi smel nikoli usmerjati, tudi ko gostitelj posreduje drugje. Zato je pomembno brati živi vmesnik in zato sama globalna vrednost ni celoten odgovor. Tako izjemo berite kot zavestno odločitev in zapišite, zakaj je ta vmesnik drugačen. Sicer jo bo naslednji inženir postrežljivo "popravil".

Nastavitev naredite trajno na pravem mestu

Uspešen enkratni sysctl -w dokazuje, da jedro vrednost sprejme. Ne preživi ponovnega zagona in ne preživi omrežnega upravitelja, ki ob ponovni povezavi znova uveljavi svojo predstavo o konfiguraciji vmesnika. Vlogo prehoda vstavite v konfiguracijsko datoteko sysctl ali v omrežnega upravitelja, ki ima v lasti gostitelja, nato znova zaženite storitev, ki jo uveljavlja.

Pri predorih je pomemben vrstni red. Če upravitelj ustvari vmesnik ob zagonu in posredovanje uveljavi pozneje, lahko vmesnik podeduje staro privzeto vrednost. Ponovni zagon storitve, ki predor znova ustvari, je prav tako dogodek ustvarjanja in to je lahko spregledati, ko je enota videti zdrava. Preverite zaporedje, ne le končne vsebine datoteke.

Znova preberite iste tri vrednosti po ponovni povezavi VPN in še enkrat po ponovnem zagonu. Na novo ustvarjen predor je nov vmesnik, nov vmesnik pa prevzame privzeto vrednost, ki velja v trenutku ustvarjanja. Če se števila med temi dogodki spreminjajo, konfiguracijo uveljavlja nekaj, česar še niste prepoznali.

Tega ne popravljajte z napačnim orodjem

Ko je posredovanje bilo videti pokvarjeno, je skušnjava, da bi izpraznili požarni zid ali dodali masquerading. Nobeno od tega se ne ukvarja s stikalom posredovanja. Stanje posredovanja, dovoljenje za posredovanje, pot do cilja in povratna pot so štiri ločene zahteve in le prva je sysctl.

Preizkusite tudi s pravilnim tokom. Zahteva, izvedena na samem prehodu, posredovanja sploh ne vadi; to je lokalno ustvarjen promet. Vprašanje je, ali je paket, ki pride od odjemalca VPN ali gostitelja LAN, sprejet in usmerjen naprej, zato se mora preizkus začeti za prehodom.

Primer IPv6 imejte ločeno

Tu je vse IPv4. Posredovanje IPv6, napovedi usmerjevalnika in vedenje accept_ra imajo svoje upravljanje, in kopiranje poti ipv4 v nastavitev ipv6 ustvari datoteko, ki je videti verodostojna in ne naredi nič koristnega. Prehod z dvojnim skladom potrebuje oba niza zavestno konfigurirana.

Zadnji pregled: ko se vrednosti ujemajo, potrdite, da je pot predora izbrana za cilj in da povratna pot obstaja. Posredovanje, vklopljeno na vmesniku brez poti, je še vedno črna luknja, in ta okvara je z odjemalčeve strani videti enako.

Sorodni članki