Mac L2TP razdeljene poti: zakaj naslov gostitelja ne deluje
setadditionalroutes želi pare omrežja in maske, zamenja celoten seznam in zahteva dobesedno ime storitve. Preverite tabelo, preden krivite prehod.
VPN se poveže, menijska vrstica to pokaže, in notranji gostitelj še vedno poteče. V takšni situaciji so trije možni vzroki, in kateri velja, je odvisno od tega, kako je bil predor konfiguriran. Ali je ukaz za pot uporabil naslov gostitelja tam, kjer je bil potreben naslov omrežja, ali profil sam namesti privzeto pot, ki pogoltne odločitev, ali je odjemalec predor PPP, ki potrebuje kavelj namesto ključa profila. Preverite jih v tem vrstnem redu, ker je prvega najceneje izključiti.
Cilj je naslov omrežja, maska opisuje predpono
networksetup -setadditionalroutes sprejme trojice cilja, maske podomrežja in prehoda. Klic, ki pošlje eno notranje podomrežje skozi predor, izgleda takole:
sudo networksetup -setadditionalroutes "VPN (L2TP)" 192.168.1.0 255.255.255.0 10.2.0.0
Bodite pozorni, kaj je cilj: naslov omrežja, ne naslov strežnika, ki ga poskušate doseči. V primeru, ki je ustvaril ta članek, enak ukaz z 192.168.1.20 na tem mestu ni naredil nič koristnega, zamenjava z 192.168.1.0 pa je delovala takoj. Ista maska, isti prehod, ena drugačna številka. To je celotna okvara v pomanjšanem merilu.
Razlog je aritmetika, ne politika. Naslov gostitelja v paru z masko /24 ne opisuje 192.168.1.0/24; opisuje nekaj, česar usmerjevalna tabela ne more koristno zadržati, zato je vnos zavrnjen ali prezrt in predor na koncu prenaša manj, kot ste nameravali.
Ko želite natanko enega gostitelja, uporabite naslov gostitelja z masko 255.255.255.255. Prav mešani pari so tisto, kjer gre to narobe, ne uporaba naslova gostitelja kot takega. /32, zgrajena iz enega naslova, je zakonita pot; /24, zgrajena iz enega naslova, je napaka.
Klic zamenja seznam, ime pa je dobesedno
Dve vedenji presenetita ljudi ob prvem poskusu. Ukaz nastavi celoten seznam dodatnih poti, namesto da bi dodajal, zato klic, ki doda eno predpono, tiho odstrani druge, ki so bile tam prej. Zgradite celoten nabor v enem klicu.
Ime storitve tudi ni oznaka, ki ste si jo izmislili. Preberite ga iz orodja in kopirajte natančno, vključno s pripono vrste:
networksetup -listallnetworkservices
Ime, ki se razlikuje za en znak, ne ustvari napake, vredne branja, ne poti. Kopiranje in lepljenje je tukaj prava tehnika, ne prepisovanje iz spomina.
Ko si profil prisvaja privzeto pot
Razdeljene poti izgubijo proti privzeti poti za vsak cilj, ki ga izrecno ne pokrivajo, in profil L2TP konfiguriran za polni predor namesti natanko to. Če profil pravi, da gre vse skozi predor, se seznam dodatnih poti spremeni zelo malo. Vaš vnos ni napačen; preprosto je nepomemben za cilje, ki jih nikoli ne imenuje. Nadzor nad tem običajno sedi v nastavitvi profila za pošiljanje vsega prometa, ne v nobenem ukazu za pot.
Odločite se, kateri model v resnici želite, preden uredite več vnosov. Polni predor z izjemami je drugačna konfiguracija od razdeljenega predora s posebnimi predponami, in mešanje obeh ustvari tabelo, ki je nihče ne more predvideti.
Če organizacija zahteva polni predor, prenehajte poskušati ga deliti lokalno in zahtevo odnesite tistemu, ki ima politiko. Lokalno dodana pot, ki ji nasprotuje, bo tako ali tako odstranjena ob naslednji posodobitvi profila.
Predori PPP potrebujejo kavelj namesto ključa
Pri predorih na osnovi PPP je defaultroute ključ profila, ki ustvari privzeto pot; odstranite ga in odjemalec preneha zahtevati vsak cilj. Poti se nato dodajo po pojavu vmesnika, običajno iz /etc/ppp/ip-up:
#!/bin/sh
/sbin/route add -net 192.168.1.0 -interface ppp0
Imejte skript v lasti roota in izvršljiv ter dodajte varovalko na ime vmesnika, kadar je na stroju več kot en profil predora. Kavelj, ki se izvaja za vsako povezavo PPP in predpostavlja eno ime naprave, je majhna napaka z dolgim življenjem.
Preverite razdelitev s tremi zahtevami
Zajemite tabelo, medtem ko ste povezani, in zabeležite, kateri vmesnik oskrbuje predor. Nato preverite konkretni cilj, namesto da bi zaupali izhodnemu stanju ukaza, ki ga je ustvaril. Izhodna koda pove, ali je orodje sprejelo argumente, ne pa ali promet gre po poti, ki ste jo nameravali.
Zaključite s tremi zahtevami, ki dokažejo razdelitev: en notranji gostitelj po naslovu, eno notranje ime prek notranjega razreševalnika in eno javno spletišče, ki bi še vedno moralo uporabljati lokalno povezavo. Če javno spletišče zdaj poteka tudi skozi predor, se razdelitev ni nikoli zgodila, kar koli se zdi, da pravi seznam poti.
Povežite se še enkrat in ponovite notranjo zahtevo, ker ročno dodane poti lahko preživijo vmesnik, ki jih je naredil veljavne in tiho spremenijo promet v črno luknjo, potem ko predor pade.