Storitev, objavljena prek prehoda, deluje z večine interneta in ne uspe iz ene pisarne. Nekdo preveri tunel, vidi zahtevo, ki prihaja, in sklene, da se mora odgovor vrniti po isti poti. Linux ne deluje tako, in noben pregled tunela tega ne bo spremenil. Odgovor se usmerja glede na cilj, in tisti edini neuspešni klicatelj sedi v podomrežju, ki ga gostitelj že doseže neposredno.

Kaj dejansko odloči o odhodnem paketu

Jedro poišče pot za cilj paketa, pregleda pravila politike po vrstnem redu prednosti in nato tabelo, ki jo izbere ujemajoče pravilo. Vmesnik, po katerem je paket prispel, ne igra nobene vloge, razen če je bilo napisano pravilo ali oznaka, da bi bilo to pomembno. To je dejstvo usmerjanja tega gostitelja, ne okvara tunela.

Zahteva, prejeta skozi tunel, lahko zato ustvari odgovor, ki odide skozi fizični vmesnik, in tok postane enosmeren, ne da bi katera koli naprava poročala o napaki. Preden sklepate o tunelu, preverite obe smeri. Odgovor, ki odide v napačno smer, izgine iz števcev tunela, zato se oba konca ne strinjata, ali je bilo kaj poslano. Opazite, kateri števec se je premaknil, preden se dotaknete pravila.

Zakaj zmaga lokalno podomrežje

Gostitelj z naslovom v lokalnem omrežju ima v glavni tabeli povezano pot za to predpono, povezana pot pa je neposredno ujemanje. Ko klicatelj pride iz istega podomrežja, iskanje najde lokalno povezavo, preden se tunel sploh upošteva.

Prav asimetrija naredi diagnozo zmedeno. Klicatelji iz širšega interneta delujejo, ker se ne ujemajo z nobeno lokalno potjo, medtem ko edini klicatelj, ki si deli pisarniško predpono, ne uspe, in prav s tem klicateljem nekdo testira.

Pokritost partnerjev ni isto kot nameščene poti

Na strani tunela dovoljeni razponi partnerja opisujejo, kaj se lahko pošlje v tunel in kateri viri se sprejemajo iz njega. Ne povedo ničesar o tem, kam bo lokalna tabela usmerjanja poslala paket.

Če orodje tunela na gostitelja namesti privzeto pot, lahko v tunel potegne nepovezan promet kot stransko škodo. Kjer bi morala odločitev pripadati pravilu politike, možnost namestitve poti obstaja prav zato, da to prepreči, naslovi, ključi in nastavitve končne točke pa ostanejo natanko taki, kot so bili. Privzeta pot, dodana zaradi udobja, je pogost način, kako gostitelj izgubi lastno lokalno omrežje.

Izberite tabelo po naslovu vira

Pravilo, ki temelji na viru, pošlje odgovore z naslova storitve v zasebno tabelo, katere privzeta vrednost je tunel, medtem ko vse drugo še naprej uporablja glavno tabelo. Izberite številke tabele in prednosti, ki se lokalno ne uporabljajo, in preden karkoli vstavite, preberite obstoječa pravila. Berite živa pravila, ne shranjene datoteke, ker se lahko po ponovnem zagonu razlikujeta.

ip -6 route add default dev wg0 table 200
ip -6 rule add priority 32000 from 2001:db8:aa::20/128 lookup 200
ip -6 rule add priority 32001 from 2001:db8:aa::20/128 unreachable

Zadnja vrstica povzroči, da manjkajoča pot vidno ne uspe, namesto da bi se vrnila na lokalno povezavo. Vir mora biti gostitelju res dodeljen, običajna lokalna in glavna iskanja pa morajo ostati na prejšnjih položajih. Pravilo izbere tabelo po viru; ne primerja dolžin predpon med tabelami.

Potrdite pot, nato storitev

Vprašajte jedro, kaj bi naredilo, namesto da sklepate iz zajema, z naslovom storitve kot izbirnikom vira. Pravilen odgovor tukaj prihrani celotno sledenje paketom.

ip -6 route get 2001:db8:bb::30 from 2001:db8:aa::20

Izhod bi moral navesti tunel. Nato preizkusite vir, ki se ga niste dotaknili, in potrdite, da še vedno uporablja lokalno povezavo, tako da je sprememba ostala omejena na en naslov. Širši izbirnik ne bi dokazal ničesar o prvotni pritožbi.

Česa to ne odpravi

Pustite posredovanje, pravila požarnega zidu in vedenje ICMPv6 na prehodu takšne, kot so bila, ker pot po viru ne nadomesti nobenega od njih. Manjkajoče sporočilo Packet Too Big še vedno lomi velike odgovore, ne glede na to, katera tabela je zmagala pri iskanju. Popravite to, preden dodate pravila usmerjanja, sicer bo simptom preživel spremembo.

Preden karkoli od tega uporabite, potrdite model objave. Povratni proxy, ki odpre svojo backend povezavo, predstavi svoj vir in ne ohrani klicatelja, zato se ta okvara v takšni zasnovi ne more zgoditi. Uporaba pravila tam bi dodala izjemo pri usmerjanju, ki ničesar ne reši in skrije pravi vzrok.

Na koncu zapišite številke pravil in tabelo v upravljanje konfiguracije gostitelja. Pravilo politike, dodano ročno, izgine pri naslednji ponovni gradnji, in pisarniški klicatelj se vrne z isto pritožbo.

Sorodni članki