Tiltu sujungtas serveris veikia, masquerade taisyklė yra, o naršyklė kliente vis dar sukasi. Atrodo, kad viskas turėtų veikti, todėl pirmoji valanda skiriama tunelio ir prisijungimo duomenų tikrinimui. Tada perskaitote NAT taisyklės skaitiklį ir pamatote nulį, kuris nejudėjo. Taisyklė, kuri niekada nesuskaičiavo nė vieno paketo, niekada jo ir nepagavo, o tiltu sujungtame serveryje priežastis yra struktūrinė: kliento srautas išeina per virtualų tap įrenginį, o taisyklė nurodo fizinę plokštę, kurią nusikopijavote iš senesnio vadovo.

Skaitiklis yra įrodymas, o ne įrašas lentelėje

Egzistuojančios taisyklės ir sutampančios taisyklės yra skirtingi dalykai, ir būtent skaitiklis juos skiria. Išveskite NAT lentelę su išsamiais skaitikliais ir perskaitykite skaičius prie kiekvienos taisyklės prieš ką nors keisdami. Skaitiklis, sustojęs ties nuliu, kai srautas teka, reiškia, kad taisyklė buvo praleista, kad ir kokie protingi atrodytų jos adresai. Skaitiklis, kuris didėja, kai ryšys vis tiek nepavyksta, nukreipia kitur: perdavimą, grįžimo kelią arba tolimąjį galą.

iptables -t nat -L POSTROUTING -v -n

Pirmiausia perskaitykite skaitiklį prie sąsajos atitikimo. Jei šaltinio diapazonas teisingas, o išvesties pusė neteisinga, pataisa yra vienas žodis taisyklėje, o ne visiškai nauja taisyklė.

Raskite vardą, kurį iš tikrųjų įrašo branduolys

Prieš rašydami taisyklę nustatykite tunelio įrenginio pavadinimą naudodami sąsajų sąrašą, o ne atmintį. Tiltu sujungtoje OpenVPN konfigūracijoje įrenginys paprastai yra serverio sukurtas tap sąsaja, o jos pavadinimas yra jūsų vietinės konfigūracijos dalis, o ne universali konstanta. Patvirtinkite, kad jis egzistuoja, kol tunelis aktyvus, nes įrenginys, atsirandantis tik prisijungus klientui, ankstesnį bandymą pavers taisyklės problema.

ip -brief link

Užsirašykite vardą. Kiekviena vėlesnė komanda šioje diagnozėje į jį nurodo, o rašybos klaida čia sukuria lygiai tokį patį nulinį skaitiklį kaip ir pradinė klaida.

Perrašykite taisyklę tunelio įrenginiui

Nukreipkite taisyklę į tunelio įrenginį ir palikite klientų diapazoną kaip atitikimo sąlygą, kad ji apimtų tunelio srautą ir paliktų pačias hosto jungtis ramybėje. Pakeiskite savo diapazonu ir įrenginio vardu, nes abu žemiau yra pavyzdžiai ir nė vienas nėra perkeliamas tarp diegimų.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tap0 -j MASQUERADE

Tada patikrinkite kitas dvi sąlygas, kurias slepia tas pats simptomas. Patikrinkite, ar įjungtas perdavimas, o jei ne, įjunkite jį pačios distribucijos konfigūracijoje, o ne su echo, kuris dingsta po perkrovimo. Taip pat perskaitykite forward grandinės skaitiklius ir, jei ji atmeta tunelio srautą, leiskite būtent tą sąsają ir palikite grandinės politiką nepakeistą.

Forward grandinės skaitymas su skaitikliais užima vieną komandą ir pašalina pusę likusių galimybių, kol dar nelietėte kitos taisyklės.

Kodėl fizinė plokštė niekada nesutampa

Tiltas yra programinė jungiklis, surinktas iš tap įrenginio ir vienos fizinės sąsajos. Kliento kadras patenka į tą jungiklį ir išeina fizinio tinklo link kaip tilto narys, o ne kaip paketas plokštėje. Todėl branduolys priskiria paketą tiltui ir jo prievadui, todėl plokštė, apie kurią galvojote, niekada nepasirodo atitikime. Su fizine sąsaja niekas nesugedę; ji tiesiog nėra įrenginys, kuriam branduolys priskiria tą paketą.

Kita problema, su kuria žmonės susiduria toliau, kyla iš tos pačios struktūros: kadrų filtravimas tilte yra atskira priemonė nuo IP filtravimo. Jei reikia apribojimo kadrų lygiu, jis priklauso tilto filtravimui, o ne IP lentelės taisyklei.

Įrodykite tai nuo pradžios iki galo, tada išsaugokite

Paleiskite vieną klientą ir ping'uokite ką nors serverio LAN tinkle; šis kelias išnaudoja perdavimą be jokio vertimo. Po to paprašykite ko nors viešo, kad masquerade taisyklė turėtų būti panaudota, ir dar kartą perskaitykite skaitiklį: jis turėtų judėti šiam bandymui, o ne ankstesniam. Užfiksuotas srautas tunelio įrenginyje parodo ir kur kadras pasirodo, ir kokį adresą jis neša.

Paskutinis žingsnis: įdėkite veikiančias taisykles į konfigūraciją, kurią skaito perkrovimas, ir užsirašykite įrenginio vardą, kurį iš tikrųjų naudoja šio hosto tiltas. Viskas, įvesta ranka, dingsta po perkrovos, o ta pati klaida grįžta be nieko, kas ją paaiškintų.

Jei perrašius taisyklę skaitiklis vis dar nejuda, palyginkite taisyklės šaltinio diapazoną su adresu, kurį klientas iš tikrųjų gavo, nes tiltu sujungtas serveris gali išduoti adresus iš diapazono, kurio neketinote naudoti.

Susiję straipsniai