Figyelem: Exchange és Lync mentes blog.
Ki az aki még nem találkozott a címben szereplő jelenséggel soha? Gyakori labor építőként már megvonom a vállam. Na és? Ha nincs Internet elérés, az nekem általában azt juttatja mindig eszembe, hogy újra dolgozom.
Csakhogy ez nem mindig elfogadható még labor környezetben sem. Ha Limited (értsd No Internet Access) állapotban van egy gép, akkor téves következtetésre juthat 1-2 szoftver és egyszerűen megáll. Ilyen például a Direct Access. A DA ha azt látja, hogy limited a kapcsolat, akkor hozzá sem fog a kapcsolódáshoz. Ennek az oka egyszerű: a DA működéséhez élő Internet kapcsolat kell. De hogy szimuláljunk élő Internet kapcsolatot egy izolált laborban?
Először is értsük meg azt, hogy miként dönt a Windows arról, hogy van-e Internet kapcsolat vagy sem. Kezdjük ezzel. Az úgy volt, hogy Windows Vista óta van egy Network Location Awareness (NLA) szolgáltatása a Windows-nak. Ennek a legfontosabb célja az, hogy a Windows és a rajta futó alkalmazások értesülhessenek arról, ha a hálózati közeg megváltozik alattuk és ne kelljen ezért semmit se újraindítani. Például ha az otthoni WiFi hálózatról mobil internetre váltunk, akkor a Windows tűzfalnak illik másként viselkednie (feltételezve azt, hogy az otthoni tűzfal beállításunk megengedőbb mint a mobil internetes kapcsolat esetében). Az NLA szolgáltatásnak van egy olyan Active Probe eleme, ami folyamatosan ellenőrzi azt, hogy van-e Internet kapcsolata a Windows-nak. Ez az Active Probe a következőket ellenőrzi:
- Egy HTTP GET kérést küld. Az URL: http://www.msftncsi.com/ncsi.txt
- erre az elvárt válasz, vagyis a TXT tartalma: Microsoft NCSI
- Standard DNS query-t küld a DNS kiszolgálónak és megpróbálja feloldani a következő A rekordot: dns.msftncsi.com
Az NLA funkciót a Network Location Awareness Windows szolgáltatásban implementáltuk. Ez a szolgáltatás felelős a logika helyes futtatásáért. A szolgáltatás paraméterezhető. A paraméterek a rendszerleíró adatbázisban tárolja a Windows a “HKLM\System\CurrentControlSet\Services\NlaSVC\Parameters\ Internet” elérési út alatt. Ahol kedvünkre módosíthatjuk, amivel aztán a szolgáltatás működését tudjuk befolyásolni. A legfontosabb paramétereket a lenti táblázatban foglaltam össze.
Paraméter neve | Alapértelmezett érték | Magyarázat |
ActiveDnsProbeContent | 131.107.255.255 | Az elvárt válasz az A rekord lekérdezésére |
ActiveDnsProbeContentV6 | fd3e:4f5a:5b81::1 | Az elvárt válasz az AAAA rekord lekérdezésére |
ActiveDnsProbeHost | dns.msftncsi.com | Ezt a nevet próbálja meg feloldani a Windows. Az elvárt válasz az ActiveDnsProbeContent tartalma |
ActiveDnsProbeHostv6 | dns.msftncsi.com | Ezt a nevet próbálja meg feloldani a Windows. Az elvárt válasz az ActiveDnsProbeContentV6 tartalma |
ActiveWebProbeHost | www.msftncsi.com | Erről a HOST-ról próbálja megnyitni a Windows az ActiveWebProbePath –ban tárolt elérési utat |
ActiveWebProbeHostV6 | ipv6.msftncsi.com | Erről a HOST-ról próbálja megnyitni a Windows az ActiveWebProbePathV6 –ban tárolt elérési utat (IPv6 ellenőrzés) |
ActiveWebProbePath | ncsi.txt | Ezt az elérési utat keresi az ActiveWebProbeHost –on a kliens |
ActiveWebProbePathV6 | ncsi.txt | Ezt az elérési utat keresi az ActiveWebProbeHostV6 –on a kliens |
ActiveWebProbeContent | Microsoft NCSI | Ezt kell tartalmazza a TXT fájl az ActiveWebProbeHost + “/” + ActiveWebProbePath elérési úton |
ActiveWebProbeContentV6 | Microsoft NCSI | Ezt kell tartalmazza a TXT fájl az ActiveWebProbeHostV6 + “/” + ActiveWebProbePathV6 elérési úton |
EnableActiveProbing | 1 | Értéke lehet 0 vagy 1. Segítségével az InternetProbe ki (0) vagy bekapcsolható (1), Ha kikapcsoljuk, akkor konstans No Internet Access lesz az eredmény. |
Az éppen aktuális környezetemben a következő módosításokat végeztem el:
A hatása a következő:
- A http://www.contoso.hu/ncsi.txt fájlt keresi a kliens
- az elvárt tartalom: zzzz
- Standard DNS névfeloldást a dns.contoso.hu A rekordra végez a kliens
- az elvárt válasz: 10.1.1.1
- Nincs IPv6 alapú ellenőrzés, csak IPv4
Az eredmény majdnem tökéletes és a fenti információk kb. tucatjával fellelhetőek az Interneten. Csatlakoztam a táborhoz. Azonban a fenti beállítások eredményeként nálam nem működött a trükk. Továbbra is No Internet Access volt az eredmény.
Hosszas debugolás után feladtam tegnap este a hibakeresést. A helyzet úgy nézett ki, hogy a kliens meg sem próbált becsatlakozni a web szerverhez és DNS névfeloldást sem kezdeményezett.
Ennek a jelenségnek pedig az oka viszonylag logikus. Ha a kliensnek nincs alapértelmezett átjárója és nincs WinHTTP providernek proxy kiszolgáló beállítva akkor arról a kliensről technikailag nem lehetséges az Internet elérés. Így az NLA Internet Probe meg sem kísérli az ellenőrzést! Egyszerűen úgy tekint arra a gépre, hogy elméletileg sem lehet Internet elérés, akkor pedig minek fárassza magát. Viszonylag ritka az amikor az egész Internet-el azonos alhálózaton vagyunk és nem kell alapértelmezett átjáró. Valamikor 40+ éve pár percig biztosan volt ilyen állapot de ma már ez nem reális.
Szóval ha a laborodban kell Internet és mindent jól beállítottál, de nem működik jól a detektálás, akkor ne feledd: állíts be egy alapértelmezett átjárót a kliensnek!
Ugyan ebben semmi Exchange nincs, azért remélem, hogy valamennyire hasznos volt.