Kodėl VPN maršrutas ip route išvestyje nerodo jokio šliuzo
Eilutė su įrenginiu ir be šliuzo yra tiesioginis maršrutas, o ne sugedęs. Skaitykite paskirties vietą, dev ir scope, tada patikrinkite naudodami ip route get.
Maršrutų lentelės dažnai perskaitomos kaip sugedusios, kai šliuzo stulpelis lieka tuščias, nors eilutė paprastai yra išsami pati savaime. Laukas via atsiranda tik tada, kai branduolys perduoda paketą kito šuolio adresui; prie sąsajos prijungtas maršrutas savo paskirties vietas pasiekia vietoj to per jungties lygmens sprendimą arba per taško-taškas partnerį. Stulpelių skaitymas iš kairės į dešinę pasako, kuriuo atveju esate, ir tas skaitymas turėtų įvykti prieš kam nors keičiant numatytąjį maršrutą. Dauguma užklausų apie trūkstamą šliuzą baigiasi ties šiuo skirtumu.
Skaitykite maršruto eilutę stulpelis po stulpelio
Kiekvienas įrašas prasideda paskirties vieta ir jos priešdėlio ilgiu, tada prideda modifikatorius fiksuotame žodyne: via, dev, proto, scope, src ir metric. Eilutė kaip 198.51.100.0/24 dev tun0 proto kernel scope link src 198.51.100.2 yra tanki, bet visiškai apibrėžta. Joje nieko netrūksta ir joks maršrutizatoriaus adresas neimplikuojamas.
Įdomiausia dalis yra via nebuvimas. Be kito šuolio branduolys išsprendžia paskirties vietą tiesiogiai nurodytoje sąsajoje, o tunelio atveju tai reiškia kadro perdavimą tunelio įrenginiui ir inkapsuliavimo palikimą jam nuo tos vietos. proto kernel fiksuoja, kad įrašas buvo įdiegtas automatiškai, kai buvo priskirtas adresas, o ne administratoriaus įvestas. scope link sako, kad paskirties vieta pasiekiama toje jungtyje neinant per maršrutizatorių, o src įvardija adresą, kurį branduolys teiks pirmenybę kaip atitinkančio srauto šaltinį.
Dabar taip pat perskaitykite numatytąjį maršrutą: default via 192.0.2.254 dev eth0 proto static metric 100. Čia via yra todėl, kad paketui tikrai reikia kito šuolio, ir tas šuolis pats turi būti pasiekiamas per eth0. Šios dvi eilutės nėra viena kitos variantai; jos atsako į skirtingus klausimus apie tai, kur srautas eina.
Dvi maršruto formos, kurios painiojamos tarpusavyje
Tunelio potinklio maršrutas ir numatytasis maršrutas ekrano kopijoje atrodo panašiai ir elgiasi visiškai skirtingai. Naudokite toliau pateiktą lentelę kaip skaitymo pagalbą laukams, o tada patikrinkite tikruosius skaičius mašinoje, kurią derinate, o ne pasitikėkite pavyzdžiu iš vadovo.
| Piece of the line | What it settles | What it says nothing about |
|---|---|---|
| The destination and mask | Which packets are eligible to match | Where those packets leave the host |
via plus its address | Which next hop receives them, and therefore that a router is involved | Whether that router is reachable or sane |
dev | Which interface carries the encapsulated or raw packet | Whether the interface is up or has a carrier |
proto and scope | Who installed the entry and how far the destination is considered to be | Whether a firewall later drops the traffic |
Tai, ko lentelė negali pasakyti, yra ketinimas. Tiesioginis maršrutas į privatų diapazoną per tunelį yra sąmoningas padalinto tunelio sprendimas; ta pati forma pagrindiniame kompiuteryje, kuris turėtų siųsti viską per VPN, yra simptomas. Ketinimas gyvena konfigūracijoje, kuri sukūrė įrašą, tad pažiūrėkite į įrankį, kuris jį įdiegė, prieš darydami išvadą, kad branduolys ką nors padarė ne taip.
Taip pat trūkstamas šliuzas nėra leidimas jį išgalvoti. Jei maršrutui tikrai reikia kito šuolio, tas šuolis turi būti pasiekiamas sąsajoje, kuri jį neša, o taško-taškas tunelio atveju partnerio adresas nėra tas pats objektas kaip vietinis adresas. Vietinio tunelio adreso traktavimas kaip Ethernet maršrutizatoriaus yra dažnas būdas sukurti maršrutą, kuris atrodo teisingai ir nieko nepersiunčia.
Paklauskite branduolio, kurią eilutę jis iš tikrųjų naudos
Lentelės skaitymas nėra tas pats, kas paieškos atlikimas, nes branduolys prieš atsakydamas konsultuojasi su politikos taisyklėmis, keliomis lentelėmis ir podėlyje esančiais įrašais. Veiksmažodis, atliekantis tikrąją paiešką, yra ip route get, ir jis išspausdina maršrutą, kurį pasirinktų tokias savybes turintis paketas.
ip route get 203.0.113.37 from 198.51.100.2 iif tun0
Pakeiskite paskirties vieta, kuri jums tikrai rūpi, tada pridėkite from arba iif, kai srautas parenkamas pagal šaltinį arba persiunčiamas, nes įprasta vietinė paieška gali pasirinkti kitą kelią nei persiunčiamas klientas. Atsakymas įvardija sąsają, pasirinktą šaltinio adresą ir bet kurį kitą šuolį, o tai yra ta pati informacija, su kuria paketas tuo metu būtų maršrutizuojamas.
Jei atsakymas jus nustebina, išspausdinkite taisykles prieš ką nors keisdami: ip -4 rule show išvardija jas prioriteto tvarka, o VPN klientas, įdiegiantis savo lentelę arba taisyklę pažymėtiems paketams, pagrindinėje lentelėje iš viso nepasirodys. Visų lentelių išvardijimas užpildo šią spragą.
ip -4 route show table all | grep -E 'tun|default'Patikrinkite pagrindinį sluoksnį prieš pakeisdami numatytąjį maršrutą
Tunelio savo paketai turi pasiekti nuotolinį galinį tašką, ir tai daro per fizinę sąsają naudodami maršrutą, kuris egzistavo prieš VPN įjungimą. Pakeitus visą numatytąjį maršrutą nepritvirtinus to galinio taško, inkapsuliuoti paketai siunčiami į tunelį, kurį jie turėtų pastatyti, ir ryšys sugriūva. Pirmiausia patikrinkite kelią iki galinio taško paieška tik pagal jo adresą.
Atlikdami pakeitimą laikykite tris dalykus atskirai: maršrutą iki galinio taško, kuris turi likti fizinėje sąsajoje, privačius diapazonus, kurie turėtų patekti į tunelį, ir numatytąjį maršrutą, kuris nusprendžia visa kita. Atskirkite juos šia tvarka, taikykite po vieną ir po kiekvieno žingsnio vėl paleiskite paiešką. Nepavykęs ping po to pats savaime įrodo labai mažai, nes leidimai, atsakymų maršrutizavimas, DNS ir pati paslauga yra žemiau už teisingą maršrutą.
Užsirašykite keturias reikšmes, kurias eilutė jums davė prieš redagavimą: paskirties vieta, kitas šuolis arba jo nebuvimas, įrenginys ir pasirinktas šaltinis. Jei vėlesnis pakeitimas pastums bet kurią iš jų, žinosite, kuris sprendimas iš tikrųjų buvo pakeistas, ir galėsite atkurti vieną įrašą, o ne spėlioti visą lentelę.