Mac L2TP-verdeelde roetes: waarom 'n gasheeradres nie werk nie
setadditionalroutes wil netwerk- en maskerpare hê, vervang die hele lys en vereis die letterlike diensnaam. Kyk na die tabel voordat jy die deurgang aanblaam.
Die VPN verbind, die kieslysbalk wys dit, en 'n interne gasheer hou steeds uit. In daardie situasie is daar drie moontlike oorsake, en watter een geld, hang af van hoe die tonnel opgestel is. Of die roete-opdrag het 'n gasheeradres gebruik waar 'n netwerkadres vereis is, of die profiel self installeer 'n verstekroete wat die besluit insluk, of die kliënt is 'n PPP-tonnel wat 'n haak nodig het eerder as 'n profielsleutel. Gaan hulle in daardie volgorde na, want die eerste een is die goedkoopste om uit te skakel.
Bestemming is 'n netwerkadres, die masker beskryf die voorvoegsel
networksetup -setadditionalroutes neem drietalle van bestemming, subnetmasker en deurgang. 'n Oproep wat een interne subnet deur die tonnel stuur, lyk so:
sudo networksetup -setadditionalroutes "VPN (L2TP)" 192.168.1.0 255.255.255.0 10.2.0.0
Let op wat die bestemming is: die netwerkadres, nie die adres van die bediener wat jy probeer bereik nie. In die geval wat hierdie artikel veroorsaak het, het die identiese opdrag met 192.168.1.20 op daardie plek niks nuttigs gedoen nie, en die vervanging daarvan met 192.168.1.0 het onmiddellik gewerk. Dieselfde masker, dieselfde deurgang, een ander nommer. Dit is die hele fout in die miniatuur.
Die rede is rekenkundig eerder as beleid. 'n Gasheeradres saam met 'n /24-masker beskryf nie 192.168.1.0/24 nie; dit beskryf iets wat die roetebeheertabel nie nuttig kan hou nie, so die inskrywing word verwerp of geïgnoreer en die tonnel dra uiteindelik minder as wat jy bedoel het.
Wanneer jy presies een gasheer wil hê, gebruik die gasheeradres met 'n masker van 255.255.255.255. Gemengde pare is waar dit verkeerd gaan, nie die gebruik van 'n gasheeradres as sodanig nie. 'n /32 wat uit een adres gebou is, is 'n wettige roete; 'n /24 wat uit een adres gebou is, is 'n fout.
Die oproep vervang die lys, en die naam is letterlik
Twee gedragswyses verras mense met die eerste poging. Die opdrag stel die volledige bykomende roetelys en voeg nie by nie, so 'n oproep wat een voorvoegsel byvoeg, verwyder stilweg die ander wat voorheen daar was. Bou die hele stel in een enkele oproep.
Die diensnaam is ook nie die etiket wat jy uitgedink het nie. Lees dit uit die gereedskap en kopieer dit presies, insluitend die tipe-agtervoegsel:
networksetup -listallnetworkservices
'n Naam wat met een karakter verskil, lewer geen fout wat die moeite werd is om te lees nie en geen roete nie. Kopieer en plak is die regte tegniek hier, nie om uit die geheue oor te tik nie.
Wanneer die profiel die verstekroete opeis
Verdeelde roetes verloor teen 'n verstekroete vir enige bestemming wat hulle nie uitdruklik dek nie, en 'n L2TP-profiel wat vir volle tonnel opgestel is, installeer presies dit. As die profiel sê alles gaan deur die tonnel, verander die bykomende roetelys baie min. Jou inskrywing is nie verkeerd nie; dit is bloot irrelevant vir die bestemmings wat dit nooit noem nie. Die beheer hiervoor sit gewoonlik in die profiel se instelling om alle verkeer te stuur eerder as in enige roete-opdrag.
Besluit watter model jy werklik wil hê voordat jy meer inskrywings wysig. Volle tonnel met uitsonderings is 'n ander opset as verdeelde tonnel met spesifieke voorvoegsels, en om die twee te meng lewer 'n tabel wat niemand kan voorspel nie.
As die organisasie volle tonnel vereis, hou op om dit plaaslik te probeer verdeel en neem die vereiste na wie ook al die beleid besit. 'n Plaaslik bygevoegde roete wat dit weerspreek, sal tog deur die volgende profielopdatering verwyder word.
PPP-tonnels het 'n haak nodig in plaas van 'n sleutel
Vir PPP-gebaseerde tonnels is defaultroute die profielsleutel wat 'n verstekroete skep; laat dit weg en die kliënt hou op om elke bestemming op te eis. Roetes word dan bygevoeg nadat die koppelvlak verskyn, tipies uit /etc/ppp/ip-up:
#!/bin/sh
/sbin/route add -net 192.168.1.0 -interface ppp0
Hou die script in die besit van root en uitvoerbaar, en voeg 'n wag op die koppelvlaknaam by wanneer meer as een tonnelprofiel op die masjien bestaan. 'n Haak wat vir elke PPP-skakel loop en een toestelnaam aanneem, is 'n klein fout met 'n lang lewe.
Verifieer die verdeling met drie versoeke
Neem die tabel op terwyl jy verbind is en let op watter koppelvlak die tonnel bedien. Kontroleer dan die spesifieke bestemming eerder as om die afsluitstatus van die opdrag wat dit geskep het, te vertrou. 'n Afsluitkode rapporteer of die gereedskap die argumente aanvaar het, nie of verkeer die pad neem wat jy bedoel het nie.
Eindig met drie versoeke wat die verdeling bewys: een interne gasheer per adres, een interne naam deur die interne oplosser, en een openbare werf wat steeds die plaaslike verbinding moet gebruik. As die openbare werf nou ook deur die tonnel reis, het die verdeling nooit gebeur nie, wat die roetelys ook al blyk te sê.
Verbind weer een keer en herhaal die interne versoek, want roetes wat met die hand bygevoeg is, kan die koppelvlak wat hulle geldig gemaak het, oorleef en verkeer stilweg in 'n swartgat laat val nadat die tonnel val.