Määrasite net.ipv4.conf.default.forwarding=1, taaskäivitasite VPN-i ja tunnel viskab endiselt ära pakette, mida lüüs peaks marsruutima. Seade näeb failis õige välja ja liides teatab endiselt, et edasisaatmine on välja lülitatud. Miski pole katki: muutsite väärtust, mille pärib tulevasi liideseid, mitte seda, mida kasutab elav tunnel.

Käige see läbi hostil, millele tunnel kuulub, võrgu-namespace'is, kus tunnel tegelikult eksisteerib. Konteiner või võrgu-namespace võib liidest hoida, samal ajal kui host näitab teisi numbreid.

Lugege kolme väärtust koos

Alustage lüüsiülest lüliti, uute liideste malli ja teid huvitava liidese võrdlemisest. Asendage tun0 tegeliku sissesõidu liidesega ja lugege ka tagasiliidest, sest edasisaatmist hinnatakse punktis, kuhu pakett saabub.

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

Sage tulemus on ip_forward = 0, default.forwarding = 1 ja tun0.forwarding = 0. Kaks esimest ei ole hosti rolli osas ühel meelel ja kolmas näitab, mida liides tegelikult teeb. See kombinatsioon sobib hostiga, mida ei seadistatud kunagi ruuteriks, vaid millele anti ainult malliväärtus. Kolm numbrit ei ole vastuolus; need vastavad kolmele erinevale küsimusele. Ka malliväärtuse kirjutamine ei otsusta hosti rolli.

Miks liigub just globaalne lüliti

net.ipv4.ip_forward on lüüsiülene juhtimine. Selle muutmine värskendab liidesepõhiseid edasisaatmise seadeid sama toimingu osana, mistõttu üks kirjutamine võib panna olemasoleva tunneli edasi saatma. default.forwarding külvab ainult liideseid, mis algatatakse hiljem, seega tunnel, mis juba eksisteeris, hoiab väärtust, millega ta sündis.

Kerneli dokumentatsioon märgib ip_forward eriliseks seotud põhjusel: selle muutmine lähtestab hulga teisi IPv4 parameetreid hosti või ruuteri vaikeväärtustele. See teeb sellest tömbist tööriista. Selle üks kord lüüsirolli kehtestamise osana seadistamine on korras; selle korduv lülitamine silumistrikina võib vaikselt üle kirjutada seadistuse, mille õigeks saamiseks kulutasite aega.

Liidesepõhised väärtused on samuti põhjusega olemas. Teadlikult hallatav lüüs võib hoida edasisaatmise väljas liidesel, mis ei peaks kunagi marsruutima, isegi kui host saadab mujal edasi. Seetõttu on oluline lugeda elavat liidest ja seetõttu ei ole ainult globaalne väärtus kogu vastus. Lugege sellist erandit teadliku otsusena ja kirjutage üles, miks see liides erineb. Muidu järgmine insener selle healoomuliselt "parandab".

Muutke seade õiges kohas püsivaks

Üks edukas sysctl -w tõestab, et kernel aktsepteerib väärtust. See ei ela üle taaskäivitust ega ela üle võrguhaldurit, mis taasühendamisel rakendab uuesti oma ettekujutust liidese seadistusest. Pange lüüsiroll sysctl-i seadistusfaili või võrguhaldurisse, millele host kuulub ja seejärel taaskäivitage teenus, mis seda rakendab.

Tunnelite puhul on järjekord oluline. Kui haldur loob liidese alglaadimisel ja rakendab edasisaatmise hiljem, võib liides pärida vana vaikeväärtuse. Teenuse taaskäivitamine, mis loob tunneli uuesti, on samuti loomissündmus ja seda on lihtne märkamata jätta, kui unit näeb terve välja. Kontrollige järjestust, mitte ainult faili lõplikku sisu.

Lugege samu kolme väärtust uuesti pärast VPN-i taasühendamist ja veel kord pärast taaskäivitust. Äsja loodud tunnel on uus liides ja uus liides võtab loomise hetkel kehtiva vaikeväärtuse. Kui numbrid nende sündmuste jooksul muutuvad, rakendab seadistust miski, mida te veel ei ole tuvastanud.

Ärge parandage seda vale tööriistaga

Kui edasisaatmine näis katki, on kiusatus tühjendada tulemüür või lisada masquerading. Kumbki ei käsitle edasisaatmise lülitit. Edasisaatmise olek, luba edasi saata, marsruut sihtkohani ja tagasitee on neli eraldi nõuet ning ainult esimene on sysctl.

Testige ka õige vooga. Lüüsil endal tehtud päring ei harjuta edasisaatmist üldse; see on kohapeal genereeritud liiklus. Küsimus on, kas VPN-kliendilt või LAN-hostilt saabuv pakett võetakse vastu ja marsruuditakse edasi, seega peab test algama lüüsi taga.

Hoidke IPv6 juhtum eraldi

Siin on kõik IPv4. IPv6 edasisaatmisel, ruuteri teadetel ja accept_ra käitumisel on oma juhtimine ning ipv4 tee kopeerimine ipv6 seadistusse annab faili, mis näeb usutav välja ega tee midagi kasulikku. Kahe virna lüüs vajab mõlema komplekti teadlikku seadistamist.

Viimane kontroll: kui väärtused ühtivad, kinnitage, et tunneli marsruut valitakse sihtkoha jaoks ja et vastustee on olemas. Marsruudita liidesel sisse lülitatud edasisaatmine on ikka must auk ja see tõrge näeb kliendi poolelt ühesugune välja.

Seotud artiklid