Prečo route -interface nedosiahne host mimo spoja
Príznak rozhrania hovorí macOS, že cieľ je na drôte. Všetko za lokálnym spojom potrebuje dostupnú bránu a tunel to môže stále zakázať.
route prijme názov rozhrania Wi-Fi, skončí bez sťažnosti a host zostane nedostupný. Nič nie je poškodené; vzťah v trase je jednoducho nesprávny: príznak rozhrania hovorí, na ktorom spoji sa cieľ nachádza, nie ktorý router má prijímať prevádzku pre cieľ, ktorý je inde. Príkaz uspeje, pretože je syntakticky platný, nie preto, že opisuje fungujúcu cestu.
Tento rozdiel rozhoduje, či výnimka trasy vedľa VPN bude fungovať, alebo bude len vyzerať vierohodne.
Rozhranie je východ, ďalší skok je odovzdanie
Na Macu s adresou 192.168.50.20 a routerom na 192.168.50.1 je iný stroj na tom istom spoji dostupný priamo. Rámec je adresovaný tomu stroju a položený na drôt. Router sa nezúčastňuje a trasa obmedzená na rozhranie vyjadruje presne to. Zmeňte vzdialený koniec na host v inej budove a ten istý príkaz prestane dávať zmysel. Mac nemá adresu druhej vrstvy, ktorú by položil na drôt, takže príznak rozhrania nemá čo opísať.
Cieľ mimo spoja je iný. Mac nemôže položiť na drôt rámec adresovaný hostu, na ktorý nedosiahne na druhej vrstve; odovzdá paket routeru, ktorý to dokáže. Trasa preto potrebuje bránu a samotná brána musí byť dostupná na pripojenom spoji.
Použitie príznaku rozhrania pre cieľ mimo spoja hovorí macOS, aby s cieľom zaobchádzal, akoby bol na drôte. Jadro potom preň nedokáže preložiť adresu druhej vrstvy a paket sa zahodí bez čohokoľvek užitočného v chybe.
Čo príznak rozhrania skutočne tvrdí
Referenčná príručka Apple pre trasy definuje formu s rozhraním pre ciele dostupné priamo bez prostredníka. Je to tvrdenie o modeli spoja, nie preferencia, ktorý adaptér použiť. Dosiahnutie internetového hostu cez Wi-Fi stále vyžaduje router na tom Wi-Fi spoji a trasa ho musí pomenovať.
Rozsah rozhrania je samostatný atribút. Priraďuje trasu k určitému rozhraniu pre rozhodnutia o rozsahu, ako ktorá zdrojová adresa platí, ale nevytvára dostupnosť pre cieľ, na ktorý rozhranie samo nedosiahne. Tie dva atribúty odpovedajú na rôzne otázky.
Preto môže byť príkaz prijatý, objaviť sa v tabuľke a napriek tomu zlyhať. Jadro neoveruje váš zámer; zaznamenáva, čo ste tvrdili, a tvrdenie bolo, že cieľ je na spoji. Tichý úspech nasledovaný tichým zahodením je očakávaný výsledok, nie chyba. Prečítajte si tvrdenie ešte raz, než obviníte sieť.
Trasa, ktorú cieľ mimo spoja potrebuje
Pre schválenú cestu k dokumentačnej adrese, ako je 198.51.100.25, cez LAN router je zamýšľaný vzťah cieľ, ďalší skok 192.168.50.1 a LAN rozhranie, ktoré k tomuto ďalšiemu skoku dosiahne. Rozhranie sa odvodzuje z vyhľadania ďalšieho skoku, namiesto toho, aby ho vynútil príkaz trasy.
V macOS je kontrola len na čítanie route -n get 198.51.100.25. Čítajte riadky brány a rozhrania spolu a overte, že brána je adresa, na ktorú Mac skutočne dosiahne. Brána v inej podsieti alebo taká, ktorá od poslednej zmeny siete zmizla, vytvorí trasu, ktorá vyzerá správne a nič neodosiela.
Nekódujte en0 natvrdo do trvalého pokynu. Názvy rozhraní sa menia s adaptérmi, dokmi a VPN klientmi a trasa, ktorá uvedie nesprávny, zlyhá spôsobom ľahko zameniteľným so širšou sieťovou poruchou.
Prečítajte si súčasnú voľbu, než ju nahradíte
Než niečo pridáte, preskúmajte, čo systém už vybral a prečo. Tento výstup hovorí, či prevádzka ide tunelom, cez LAN router alebo nikam, a dáva základ na porovnanie po zmene. Bez neho nemôžete zistiť, či nová trasa zabrala.
Potom skontrolujte rodinu adries. Trasa pridaná pre IPv4 nič nerobí pre cieľ IPv6 a služba, ktorá sa prekladá do oboch rodín, sa môže zdať občas dostupná. Smerovacia tabuľka a resolver odpovedajú na rôzne otázky a obe musia súhlasiť so zamýšľanou cestou.
Nakoniec si pamätajte, že trasa je voľba, nie povolenie. Spravovaný profil VPN alebo filter klienta môže priamu cestu stále zakázať, aj keď tabuľka na ňu ukazuje, takže testujte so skutočnou aplikáciou, namiesto toho, aby ste predpokladali, že úspešný záznam v tabuľke ukončí vyšetrovanie.
Tunely a politika menia tvar
Rozhrania bod-bod sú vlastný prípad. Tunel môže niesť trasu bez adresy brány v štýle Ethernet a to nie je automaticky nesprávne. Použite skutočný model spoja rozhrania, namiesto toho, aby ste príklad s Wi-Fi rozširovali na každý záznam v tabuľke, ktorý vidíte.
Pre žiadosti o zmenu zapíšte cieľ, schválenú sieťovú cestu, súčasnú bránu a rozhranie a kto má výnimku udržiavať. Vlastník je dôležitý, pretože jednorazová trasa zadaná na príkazovom riadku nie je politika a ďalšie opätovné pripojenie ju vymaže.
Ak je požiadavkou dosiahnuť tento host, kým je VPN zapnutá, poctivá odpoveď je zvyčajne konkrétna trasa k hostu cez miestny router, ktorú nainštaluje správca siete, ktorý rozhranie vlastní. Ak je požiadavkou dosiahnuť priamo na čokoľvek, požiadavka sama potrebuje revíziu politiky skôr, než potrebuje príkaz trasy.