FortiClient puni tunel: usmjerite samo uredsku podmrežu
VPN instalira zadanu rutu i lokalna mreža nestane. Pročitajte tablicu, vratite LAN zadanu rutu, dodajte uredske prefikse i zatim popravite DNS.
Tunel se podigne, ikona postane zelena i lokalna mreža nestane: printeri, NAS i uredski ruter prestanu odgovarati. FortiClient radi ono što je profil tražio. Gateway je poslao zadanu rutu, klijent ju je instalirao i svaki paket sada ima put u tunel. Popravka je izmjena tablice ruta s izmjenom DNS-a iza nje, a redoslijed tih izmjena odlučuje hoće li mašina završiti bolje ili gore.
Šta je klijent instalirao i zašto je LAN nestao
Počnite čitanjem tablice umjesto sučelja klijenta. Na macOS-u netstat -rn ispisuje cijelu tablicu, a route -n get default imenuje sučelje i metriku koji trenutačno pobjeđuju; na Linuxu par je ip route show i ip route get 8.8.8.8. Oba odgovaraju na jedno pitanje: koji će zapis nositi paket koji se ne poklapa s ničim konkretnijim.
Naziv tunelskog uređaja nije fiksan. IKEv2 profil na macOS-u obično prikazuje utun s brojem, SSL VPN klijent prikazuje ppp0, a OpenVPN prikazuje tun0. Dvije zadane rute mogu biti prisutne istodobno s različitim metrikama, a klijentski zapis može preuzeti tek nakon ponovnog spajanja, a ne u trenutku pojave. Zato dva ispisa tablice uzeta pet minuta razmaknuto mogu pričati različite priče.
Zašto tunelska zadana ruta mora otići prva
Jezgra bira najdulji odgovarajući prefiks, a kad je nekoliko ruta jednako specifično, bira onu s najnižom metrikom. Klijent koji instalira 0.0.0.0/0 s boljom metrikom zato pobjeđuje svako odredište bez brisanja izvorne zadane rute, i zato je fizička ruta još u tablici i još objašnjava prekid. Uklanjanje tunelske zadane rute prvo vraća prethodno ponašanje. Tek tada prefiksna ruta kroz tunel radi ono što je njezin autor namjeravao.
Dodavanje prefiksa prije tog koraka pogreška je koja daje napola ispravnu mašinu. Promet novog prefiksa slijedi tunel, a sve što nije na popisu također slijedi tunelsku zadanu rutu, pa ništa ne izgleda pokvareno dok netko ne otvori servis koji nitko nije dodao. Izbrišite, vratite, pa dodajte i međustanje ostaje predvidljivo.
Slijed na macOS-u i na Linuxu
Na macOS-u slijed briše tunelsku zadanu rutu, vraća fizičku zadanu rutu i šalje jedan uredski prefiks natrag u tunel. Zamijenite ilustrativne nazive sučelja ovdje onima iz svoje tablice.
sudo route delete -net default -interface utun4
sudo route add -net 0.0.0.0 -interface en0
sudo route add -net 10.20.0.0 -netmask 255.255.0.0 -interface utun4Na Linuxu isti redoslijed koristi drugi alat: LAN gateway za zadanu rutu i tunelski uređaj za uredski prefiks. Stara naredba route još prihvaća staru sintaksu, ali ip route je oblik koji odgovara aktualnoj dokumentaciji.
sudo ip route del default dev tun0
sudo ip route add default via 192.168.50.1
sudo ip route add 10.20.0.0/16 dev tun0Kad ruti treba sljedeći skok umjesto uređaja, uzmite peer iz izlaza klijenta. Pogađanje daje jednu od dvije pogreške i one znače različito: pogrešan gateway odmah daje network unreachable, a pogrešan tunelski cilj daje istek vremena. Pročitajte koju ste dobili prije nego ponovno promijenite naredbu.
Prefiksi, resolver i DMZ koji ostaje mračan
Jedan prefiks rijetko pokriva posao. Aplikacijski serveri, upravljačke mreže, DMZ i sami DNS serveri mogu svaki biti u drugom rasponu, zato popišite svaki raspon koji možete imenovati prije početka i testirajte pretragu uz svaki ping. Odredište otkriveno tijekom testa ono je koje se zaboravi u zapisu promjena. Ruta koja odgovara po adresi, ali pada po imenu, obično je problem resolvera u kostimu usmjeravanja.
Resolver je odvojena odluka. Kad je profil poslao interne DNS servere, oduzimanje zadane rute može te adrese ostaviti nedostupnima za javna imena ili dostupnima samo kroz tunel, a oba stanja daju zbunjujuće djelomične rezultate. Usmjerite adrese resolvera kroz tunel ili postavite razlučivanje po domeni tako da javne pretrage koriste lokalni resolver.
Linux SSL klijent ima kvar specifičan za polje koji vrijedi znati: tunel se spoji, uredski LAN odgovara, a jedan DMZ raspon ostaje mračan. Dio koji nedostaje je ruta za taj raspon kroz tunelski gateway, a gateway se razlikuje među mašinama, pa je tvrdo kodirana adresa način na koji se slomi sljedeći laptop. Izvedite ju iz stanja klijenta i držite naredbu samodokumentirajućom:
PEER=$(ip -4 addr show dev ppp0 | awk '/peer/ {print $4}' | cut -d/ -f1)
sudo ip route add 192.168.30.0/24 via "$PEER"Pročitajte dvije vrijednosti prije pokretanja. peer je udaljeni kraj točka-na-točku tunela i to je adresa koja treba DMZ ruti; na usmjerenom tunelu ekvivalent je sučelje ili gateway koji klijent prijavljuje. Ako se ne pojavi nijedno, klijent nije u načinu koji ste pretpostavili.
Nakon sljedećeg spajanja i kada prestati to raditi lokalno
FortiClient se ponovno spaja nakon spavanja ili promjene mreže i ponovno instalira sve što profil nalaže. Ručne rute zato prežive samo do sljedećeg spajanja, a to je upravo interval u kojem jedan uspješan test može izgledati kao popravka. Ruta koja nestane preko noći očekivano je ponašanje, a ne nova greška.
Postoje dva trajna odgovora. Skripta koja ponovno pokreće ispravak nakon svakog spajanja je zaobilazno rješenje koje može nadživjeti svog autora, dok je profil s podijeljenim tunelom od administratora gatewaya prava popravka, jer tada klijent instalira samo raspone koji su poslu potrebni. Zatražite drugo i koristite prvo samo dok čekate. Provjerite i pravila s kojima ste se složili prije nego lokalno podijelite puni tunel, jer se udaljena mreža može oslanjati na to da vidi sav vaš promet.
Kontrolni popis je kratak: pročitajte tablicu, izbrišite tunelsku zadanu rutu, vratite LAN zadanu rutu, dodajte svaki prefiks, odvojeno popravite razlučivanje i očekujte da će se rute vratiti pri ponovnom spajanju.