Vaš split tunnel stiže do aplikacije, ali ne do njenog DNS servera
Split tunnel može usmjeriti podmrežu aplikacije i ipak ispustiti resolver pored nje. Dodajte rutu hosta, pa provjerite koji server Windows zapravo bira.
Usmjeravanje podmreže aplikacije očigledan je dio split tunela i nije cijeli posao. Resolver često stoji na drugoj adresi od aplikacije kojoj služi, pa radni tunel može ostaviti pretragu izvan njega. Profil koji nosi 10.80.0.0/16 i ništa drugo šalje upit za 10.90.0.53 kroz lokalno sučelje, gdje privatna zona ne postoji. Dodajte put do resolvera, pa provjerite drugu polovinu problema: koji server klijent zapravo bira.
Mit: jedna ruta pokriva cijelu uslugu
Split tunnel je popis odredišta koja idu kroz vezu, a ne opis usluge. Podmreža aplikacije i adresa resolvera su dva odredišta, a profil može nositi jedno bez drugog. Kad se to dogodi, aplikacija je dostupna po adresi dok njezino ime ne uspijeva, što izgleda kao kvar DNS-a, a ne kao praznina u usmjeravanju.
Ni podmreža oko resolvera nije automatski pokrivena. Ruta hosta na jednu adresu dovoljna je za taj resolver i ne otvara njegove susjede. U tome je smisao rute hosta: uska po zamisli i lako se zaboravi kad se sljedeća usluga pojavi u istoj podmreži.
Tri stvari moraju vrijediti da bi pretraga radila: klijent usmjerava adresu resolvera kroz tunel, pristupnik prihvaća i prosljeđuje taj zahtjev, a resolver prihvaća izvor koji primi. Odgovor se također mora vratiti dogovorenim putem. Ako bilo što od toga nedostaje, simptom je isti, zato tablicu adresa vrijedi zapisati prije nego što se dotakne konfiguracija.
Odredite koje adrese profil mora nositi
Navedite odredišta po redu: mrežu aplikacije, adresu resolvera i javnu krajnju točku koja završava sam tunel. Treća se nikada ne smije usmjeriti u tunel, jer vanjska veza treba put koji postoji prije tunela.
| Destination | Coverage this example needs |
|---|---|
| Application network | 10.80.0.0/16 through the VPN |
| Private resolver | 10.90.0.53/32 through the VPN |
| Public VPN endpoint | Normal internet path, outside the tunnel |
Uključite i UDP i TCP za DNS, jer se od implementacija očekuje da podrže TCP uz UDP, a blokiran put TCP-a daje spore, djelomične kvarove umjesto čistih. Ako se privatna zona poslužuje i preko IPv6, ekvivalentna iznimka za hosta koristi IPv6 adresu i prefiks i zaseban je unos.
Zapišite što profil već pokriva prije nego što išta dodate. Dvostruka ruta je bezopasna, ali neočekivana postojeća ruta govori da je profil napravljen za drugi plan adresa od onoga koji ste dobili.
Dodajte rutu hosta kroz vlasnika veze
Za lokalno upravljani izvorni Windows profil ruta pripada vezi, a ne globalnoj tablici usmjeravanja stroja. Prvo pregledajte dodavanje, pa ga primijenite s istim opsegom koji profil koristi.
Add-VpnConnectionRoute -ConnectionName 'Office VPN' -DestinationPrefix '10.90.0.53/32' -WhatIf Get-VpnConnection -Name 'Office VPN' | Select-Object -ExpandProperty Routes
Prva naredba pregledava promjenu bez instaliranja ičega, a druga navodi rute koje profil trenutačno nosi. Microsoftova referenca za Add-VpnConnectionRoute dokumentira opsege za pojedinog korisnika i sve korisnike; profil za sve korisnike treba vlastiti parametar opsega, a naredba za pojedinog korisnika na profilu za sve korisnike ne uspijeva ili završi na pogrešnom mjestu.
Kad se profilom upravlja ili dolazi od klijenta dobavljača, promjena pripada tom vlasniku. Slaganje trajne sistemske rute na politiku veze funkcionira dok se politika ponovno ne primijeni i ruta ne nestane, što se obično događa tijekom poziva podršci, a ne tijekom testiranja. Taj je kvar tih: ruta nestane, ime se prestane razrješavati i nitko ne poveže dva događaja. Stavite promjenu u vlasnikov vlastiti zapis da je sljedeća ponovna primjena nosi umjesto da je briše.
Nakon primjene ponovno povežite profil umjesto da pretpostavite da je ruta stupila na snagu. Promjene ruta na živućoj vezi ne uhvate se uvijek, a ponovno povezivanje također reproducira stanje koje će vaši korisnici stvarno imati.
Provjerite koji je resolver klijent stvarno rabio
Ruta kontrolira pakete upućene resolveru. Ne odlučuje koja imena tamo treba poslati i taj je odabir zaseban mehanizam. U Windowsu djelotvorna pravila prostora imena mogu odabrati resolver po domeni, dok DNS postavke profila daju zadano. Ta se dva sloja mogu razilaziti bez ikakve pogreške, zato je izravan upit samo pola dokaza.
Get-DnsClientNrptPolicy Resolve-DnsName app.svc.example -Server 10.90.0.53 -Type A
Prva naredba ispisuje važeću politiku prostora imena, a druga pita privatni resolver izravno za ime aplikacije. Izravan odgovor dokazuje da put i resolver rade; ne dokazuje da je aplikacijina vlastita pretraga odabrala taj server. Usporedite ga s uobičajenom pretragom istog imena i s odgovorom koji aplikacija dobije.
Uzmite u obzir predmemorije i sigurni DNS na razini preglednika, koji može posve zaobići sistemski resolver za imena koja je korisnik upisao. Sufiks pretraživanja još je jedna obmana: proširuje kratko ime u potpuno kvalificirano i nema veze s tim koji server odgovara.
Na kraju se ponovno povežite i ponovite uobičajenu pretragu, pa potvrdite da obično pregledavanje i dalje slijedi odobrenu politiku. Zamjena privatnog resolvera javnim da bi se razriješilo nepovezano ime nije popravak i tiho premješta privatne upite tamo gdje nikada nisu trebali ići.