Um nicht bei jedem Wechsel in ein anderes Netzwerk die Proxy-Einstellungen ändern zu müssen, gibt es das WPAD (Web Proxy Autodiscovery)-Protokoll. Damit lassen sich auch Ausfälle des Webproxy überbrücken, da ein Fallback definiert werden kann.
Dazu wird im LAN ein Webserver benötigt, der eine Textdatei unter einem bestimmten Pfad zur Verfügung stellen muss. Als erstes braucht man eine Datei, die die Proxykonfiguration für den Client enthält. Der Name der Datei sollte clients.wpad lauten, jedoch ist dies nicht zwingend, denn der Name ist in der DHCP-Konfiguration festlegbar. Die Endung der Datei sollte aber bei .wpad belassen werden, da sie die Zuweisung einen MIME-Typs durch den Webserver erleichtert.
- function FindProxyForURL(url, host)
- {
- if (isPlainHostName(host))
- return „DIRECT“;
- if (!isResolvable(host))
- return „DIRECT“;
- if (url.substring(0, 5) == „http:“||url.substring(0, 4) == „ftp:“||url.substring(0, 7) == „gopher:“)
- return „PROXY 192.168.1.1:8080; DIRECT“;
- if (url.substring(0, 5) == „wais:“)
- return „DIRECT“;
- else
- return „DIRECT“;
- }
Der Code, der in dieser Datei verwendet wird, ist JavaScript und wird bei jedem Aufruf einer URL vom Browser ausgeführt. Die Datei muss auf dem Webserver so abgelegt werden, dass sie aus dem Netzwerk, in dem die Clients die Konfiguration erhalten sollen, lesbar ist. Dies kann durch das Aufrufen der Datei mittels eines Browsers getestet werden.
Um nun noch den richtigen MIME-Type für die Datei einzustellen, sollte in der Konfiguration des Webservers der MIME-Typ x-ns-proxy-autoconfig der Dateiendung .wpad zugewiesen werden. Beim Schreiben von clients.wpad-Files sollte man aus Perfomancegründen auf die Funktionen isInNet(), isResolvable() und dnsResolve() möglichst verzichten, da dafür jeweils ein DNS-Lookup durchgeführt wird. Insbesondere in Umgebungen, die intern keine extern DNS-Namensauflösung erlauben und die über einen Proxy surfen, wird sonst der Seitenaufbau unerträglich langsam. Weiterhin kann man die clients.wpad auch auf dem Webserver durch ein Skript erzeugen lassen und in dem Skript dann die Anwendungslogik hinterlegen, so dass die eigentliche Antwort nur noch der richtige Proxyname ist.
Damit die Clients die URL zu der clients.wpad finden, kommt nun DHCP zum Einsatz. Dazu müssen folgende Parameter eingetragen werden:
- Option: 252
- Name: wpad-url
- Option wpad-url: „http://server/clients.wpad„
Wer einen ISA-Server einsetzt, hat es noch einfacher, da dort der ISA die WPAD-Datei automatisch erstellen kann und die Anfragen danach richtig beantwortet:
- Konfigurieren der automatischen Suche von Firewall- und Webproxyclients in Windows 2000
- Konfiguration des ISA für automatische Suche der Clienteinstellungen (WPAD/WSPAD)
Der ISA-Server erstellt automatisch etwas komplexere Skripte. Mögliche Vorgaben fü ein Skript sind etwa:
- Primärer Proxy ist s-proxy auf Port 8080
- Wenn der nicht antwortet, nimm den Backupserver s-proxy01 auf Port 8080.
- Umgehe für die privaten IP-Adresskreise 172.16.x.x und 192.168.x.x den Proxy.
- Umgehe für lokale Domains (*.domain.local, webmail.firma.tld) den Proxy.
- Umgehe den Proxy für URLs, bei denen der Servername keinen Punkt enthält (Intranet).
Weitere technische Erläuterungen zu der Konfiguration und wie man WPAD-Files auf Webservern ablegt (Stichwort MIME-Typ) sind hier zu finden:
- Automatische Erkennung von Browsereinstellungen
- Automatic proxy HTTP server configuration in web browsers
- Kill Internet Ads with HOSTS and PAC Files
Clientseitig gibt es zwei Registry-Einträge zu beachten, die im Userkontext durchgeführt werden sollten, damit der Internet Explorer bei der automatischen Proxysuche zwischen mehreren alternativen Proxies ein sauberes Failover durchführt. Die Registry-Einstellungen lassen sich auch über ein ADM-Template als Gruppenrichtlinie verteilen:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
„EnableAutoproxyResultCache“=dword:00000000
„BadProxyExpiresTime“=dword:00000060
Mit diesen Einstellungen wird ein Cachen des Proxynamens verhindert, so dass im Fehlerfalle auf den zweiten umgeschaltet werden kann. Weiterhin erfolgt das Zurückschalten auf einen wieder funktionierenden Proxy innerhalb von 60 Sekunden und nicht erst nach 30 Minuten (Defaultwert). Mehr dazu hier:
- How to Disable Internet Explorer Automatic Proxy Caching
- Internet Explorer Does Not Retry Bad Proxy Server for 30 Minutes
http://faq-o-matic.net/?p=516