VPN blokuoja vietinį LAN sistemoje „Windows“: maršrutas ar kliento politika?
Prieiga prie vietinio LAN sistemoje „Windows“ nutrūksta dėl dviejų skirtingų priežasčių: trūksta maršruto arba tinklų sietuvos politika išmeta potinklį. Trys patikros pasako, kuri.
Spausdintuvas, NAS ar kūrimo mašina ant jūsų paties stalo nustoja atsakinėti tą akimirką, kai prisijungia darbinis VPN. Kartais viena maršruto komanda tai sutvarko per sekundes; kartais tas pats maršrutas yra teisingas, o paketai vis tiek dingsta, o tai reiškia, kad matote kitą problemą su panašiu simptomu. Sprendimas susiveda į tris klausimus, ir jų uždavimas neteisinga tvarka yra priežastis, kodėl žmonės praleidžia visą vakarą šalindami ir vėl pridėdami maršrutus.
Trys klausimai prieš bet kurią komandą
Pirma: ar yra įrašas vietiniam priešdėliui, ir ar jis rodo į fizinį adapterį? Antra: ar prisijungdamas klientas gauna vietinio tinklo leidimą ar atmetimą iš tinklų sietuvos? Trečia: ar jums reikia tik išėjimo prieigos prie LAN, ar kažkas internete taip pat turi pasiekti paslaugą, veikiančią jūsų mašinoje?
Pirmasis klausimas atskiria maršrutizavimo gedimą nuo filtravimo gedimo. Antrasis pasako, ar maršruto taisymui apskritai leidžiama veikti. Trečiasis keičia taisymą: maršrutas taiso išeinantį srautą, o nepasiekiama įeinanti paslauga paprastai yra klausytojo susiejimo ir grįžimo kelio problema, kurią maršrutas dar labiau pablogina.
| What you see | What it points at |
|---|---|
| No local prefix in the table | Missing route |
| Correct prefix, no reply | Client filter or gateway policy |
| Works by IP, fails by name | Resolver changed by the tunnel |
| Inbound service dies, outbound fine | Return path or listener binding |
Klausimas pirmas: maršrutas, filtras ar pavadinimas
Perskaitykite lentelę prieš ką nors į ją pridėdami. Sąsajos indeksas svarbus, nes kiekviena žemiau esanti maršruto komanda prie jo prijungta:
route print -4
Get-NetRoute -DestinationPrefix 192.168.1.0/24 | Format-Table InterfaceIndex,NextHop,RouteMetric
Tiesiogiai prijungtas potinklis paprastai išlaiko on-link maršrutą net kai tunelis įjungtas, todėl įrašas gali egzistuoti, o srautas vis tiek gali nepavykti. Toks derinys yra filtro, veikiančio po maršrutizavimo, parašas, ir tai atvejis, kai antrasis, tikslesnis maršrutas nieko nekeičia.
Tikrinkite atskirai pagal adresą ir pagal pavadinimą. Jei ping 192.168.1.50 atsako, o net view 192.168.1.50 ne, maršrutų lentelė niekada nebuvo problema: tunelis pakeitė resolvį ir vietinis pavadinimas nebėra sprendžiamas. Maršruto pridėjimas tam yra bergždžias darbas.
Klausimas antras: ar tinklų sietuva leidžia prieigą prie vietinio LAN?
Komercinis klientas įdiegia daugiau nei maršrutus. Jis prisijungdamas gauna politiką, ir toje politikoje gali būti aiškus vietinio tinklo leidimas. Cisco IPsec diegimuose grupės politika neša split-tunneling nustatymą ir atskirą vietinio LAN prieigos vėliavėlę; kliento žymimasis laukelis yra prašymas, kurį tinklų sietuva gali atmesti. AnyConnect profilis valdo split įtraukimo ir išskyrimo sąrašus bei tą patį leidimą. Windows RRAS atitikmenys yra profilio numatytoji tinklų sietuva ir serverio priskirti statiniai maršrutai.
Kai vėliavėlė išjungta, dokumentuotas elgesys yra toks, kad klientas blokuoja srautą į tiesiogiai prijungtą potinklį, nors egzistuoja galiojantis, tikslesnis maršrutas. Štai kodėl maršrutai, kuriuos klientas neturi, gali dingti per kelias sekundes po pridėjimo: klientas atkuria būseną, kurią jam buvo liepta sukurti, o ne kovoja su jumis.
Kliento žurnalas įrašo sprendimą prisijungimo metu, ir jį skaityti greičiau nei bet kuris eksperimentas mašinoje. Jei žurnalas sako, kad vietinė prieiga užblokuota, sustokite: joks komandinės eilutės taisymas to neįveiks, ir lieka tik politikos pakeitimas, prieiga prie ištekliaus per tunelį, arba kliento uždarymas virtualioje mašinoje ir pagrindinio kompiuterio palikimas vietiniame tinkle.
Klausimas trečias: kurios krypties jums reikia?
Išeinantis srautas į netoliese esantį įrenginį yra maršrutizavimo klausimas. Nukreipkite LAN priešdėlį į vietinę tinklų sietuvą su metrika, pakankamai žema, kad įveiktų tunelio numatytąjį maršrutą:
route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 metric 1 if 12
route add 192.168.1.50 mask 255.255.255.255 192.168.1.1 -p
Antroji forma prisega vieną įrenginį, ir to norite, kai vienas adresas yra visas reikalavimas. netsh atitikmuo įrašo tą patį sprendimą pagal sąsajos pavadinimą, o ne indeksą:
netsh interface ipv4 add route prefix=192.168.1.0/24 interface=12 nexthop=192.168.1.1 store=persistent
Maršruto komandos nepavyksta su Parametras neteisingas, kai adresas ir kaukė nesutampa, pavyzdžiui, prieglobos adresas su /24 kauke. Potinklio maršrutui naudokite tinklo adresą, o vienam prieglobai – prieglobos kaukę.
Įeinantis yra kitoks. VNC ar SSH serveris toje pačioje mašinoje tampa nepasiekiamas, kai atsakymai į įeinantį ryšį išeina per VPN tinklų sietuvą ir niekada negrįžta. Prieš liesdami maršrutus patikrinkite, ko klausosi paslauga:
netstat -ano | findstr :5900
Klausytojas, susietas su vienu konkrečiu adresu, neatsakys kitoje sąsajoje. Susieti jį su visomis sąsajomis yra sąmoningas sprendimas, priimtas kartu su ugniasienės taisykle, apribota tinklu, kuriuo pasitikite. Tik po to maršruto taisymas atkuria grįžimo kelią.
Taikykite mažiausią tinkantį pakeitimą
Kitas įprastas žingsnis yra atžymėti „Naudoti numatytąją tinklų sietuvą nuotoliniame tinkle“ išplėstinėse IPv4 savybėse. Tai išlaiko interneto srautą vietiniu, bet daro du dalykus vienu metu: VPN nustoja būti numatytuoju keliu, o klientas nustoja gauti maršrutus nuotoliniam tinklui, įskaitant multicast. Atžymėkite ir nuotolinis LAN išnyks, nebent serveris stumia konkrečius nuotolinius priešdėlius, kurių reikia kiekvienam klientui.
Ši asimetrija lemia darbo tvarką. Jei nuotolinė pusė turi likti visiškai pasiekiama, stumkite nuotolinius potinklius iš serverio ir palikite vietinį numatytąjį ramybėje. Jei negalite pakeisti serverio, pridėkite nuolatinį maršrutą į nuotolinį priešdėlį per adresą, kurį priskyrė tunelis, ir su route print patikrinkite, kad priešdėlis rodo į VPN sąsają, o numatytasis vis dar rodo į fizinę tinklų sietuvą.
Tada patvirtinkite, kad taisymas išlieka po pakartotinio prisijungimo, nes nuolatiniai maršrutai miršta kartu su adapteriu, o scenarijus, paleidžiamas po kiekvieno prisijungimo, yra sąžininga vieta jiems. Toje pačioje sesijoje išbandykite vieną vietinį įrenginį ir vieną nuotolinį išteklį, atsijunkite, prisijunkite iš naujo ir išbandykite dar kartą. Jei vietinis įrenginys vis tiek nepavyksta, nors maršrutas atrodo teisingas, grįžkite prie antrojo klausimo: klientas filtruoja, o atsakymas yra politikos pakeitimas, o ne antrasis konkuruojantis maršrutas.