OpenVPN klienti v režime mosta nemajú internet? Skontrolujte pravidlo NAT
OpenVPN klienti v režime mosta vychádzajú cez zariadenie tap, takže pravidlo masquerade, ktoré uvádza fyzickú sieťovú kartu, sa nikdy nezhoduje a počítadlo zostáva na nule.
Server v režime mosta beží, pravidlo masquerade existuje, a prehliadač na klientovi sa stále točí. Všetko vyzerá, že by to malo fungovať, a preto prvá hodina ide na kontrolu tunela a prihlasovacích údajov. Potom prečítate počítadlo pravidla NAT a nájdete nulu, ktorá sa nepohla. Pravidlo, ktoré nikdy nezapočítalo ani jeden paket, sa nikdy s žiadnym nezhodlo, a na serveri v režime mosta je príčina štrukturálna: prevádzka klienta vychádza cez virtuálne zariadenie tap, kým pravidlo uvádza fyzickú kartu, ktorú ste skopírovali zo staršieho návodu.
Dôkazom je počítadlo, nie záznam v tabuľke
Pravidlá, ktoré existujú, a pravidlá, ktoré sa zhodujú, sú rozdielne veci, a oddeľuje ich počítadlo. Vypíšte tabuľku NAT s podrobnými počítadlami a prečítajte čísla vedľa každého pravidla, skôr než čokoľvek zmeníte. Počítadlo stojace na nule, kým prevádzka prúdi, znamená, že pravidlo bolo preskočené, nech už jeho adresy vyzerajú akokoľvek rozumne. Počítadlo, ktoré stúpa, kým spojenie stále zlyháva, vás posiela inam: k preposielaniu, spiatočnej ceste alebo vzdialenému koncu.
iptables -t nat -L POSTROUTING -v -nNajprv prečítajte počítadlo vedľa zhody rozhrania. Ak je rozsah zdroja správny a výstupná strana nesprávna, opravou je jedno slovo v pravidle, nie úplne nové pravidlo.
Nájdite názov, ktorý jadro skutočne zaznamenáva
Pred písaním pravidla určite názov tunelového zariadenia pomocou zoznamu rozhraní, nie pamäte. V konfigurácii OpenVPN v režime mosta je zariadením zvyčajne rozhranie tap vytvorené serverom a jeho názov je súčasťou vašej lokálnej konfigurácie, nie univerzálnou konštantou. Potvrďte, že existuje, kým je tunel aktívny, pretože zariadenie, ktoré sa objaví až po pripojení klienta, spôsobí, že skorší test bude vyzerať ako problém s pravidlom.
ip -brief linkZapíšte si názov. Každý neskorší príkaz v tejto diagnostike sa naň odvoláva, a preklep tu vytvorí presne to isté nulové počítadlo ako pôvodná chyba.
Prepíšte pravidlo na tunelové zariadenie
Nasmerujte pravidlo na tunelové zariadenie a ponechajte rozsah klientov ako podmienku zhody, aby pokrývalo tunelovú prevádzku a nechalo vlastné spojenia hostiteľa na pokoji. Nahraďte vlastným rozsahom a názvom zariadenia, pretože obe nižšie sú príklady a ani jedno nie je prenosné medzi inštaláciami.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tap0 -j MASQUERADEPotom skontrolujte dve ďalšie podmienky, ktoré ten istý príznak skrýva. Skontrolujte, či je preposielanie zapnuté, a ak nie, zapnite ho v konfigurácii samotnej distribúcie, nie pomocou echo, ktoré po reštarte zmizne. Prečítajte aj počítadlá reťazca forward a ak zahadzuje tunelovú prevádzku, povoľte konkrétne toto rozhranie a politiku reťazca nechajte nezmenenú.
Prečítanie reťazca forward s počítadlami si vyžiada jeden príkaz a vylúči polovicu zostávajúcich možností, skôr než sa dotknete ďalšieho pravidla.
Prečo sa fyzická karta nikdy nezhoduje
Most je softvérový prepínač zložený zo zariadenia tap a jedného fyzického rozhrania. Rámec klienta vstúpi do tohto prepínača a vychádza smerom k fyzickej sieti ako člen mosta, nie ako paket na karte. Jadro preto priradí paket mostu a jeho portu, a preto sa karta, na ktorú ste mysleli, nikdy neobjaví v zhode. Na fyzickom rozhraní nič nie je pokazené; jednoducho to nie je zariadenie, ktorému jadro ten paket priraďuje.
Ďalší problém, s ktorým sa ľudia stretávajú, vychádza z tej istej štruktúry: filtrovanie rámcov na moste je samostatná záležitosť od filtrovania IP. Ak je požiadavkou obmedzenie na úrovni rámcov, patrí k filtrovaniu mosta, nie k pravidlu tabuľky IP.
Dokážte to od začiatku do konca a potom to natrvalo uložte
Spustite jedného klienta a pingnite niečo v sieti LAN servera; táto cesta precvičí preposielanie bez akéhokoľvek prekladu. Potom požiadajte o niečo verejné, aby sa pravidlo masquerade muselo použiť, a prečítajte počítadlo ešte raz: malo by sa pohnúť pre tento test a nie pre predchádzajúci. Zachytenie na tunelovom zariadení ukáže, kde sa rámec objaví aj akú adresu nesie.
Posledný krok: vložte fungujúce pravidlá do konfigurácie, ktorú číta reštart, a poznamenajte názov zariadenia, ktoré most tohto hostiteľa skutočne používa. Všetko napísané ručne po reštarte zmizne a tá istá porucha sa vráti bez toho, aby ju čokoľvek vysvetľovalo.
Ak sa počítadlo ani po prepísaní nepohne, porovnajte rozsah zdroja v pravidle s adresou, ktorú klient skutočne dostal, pretože server v režime mosta môže prideľovať adresy z rozsahu, ktorý ste nezamýšľali.