18.2. WPAD protocol

Il Web Proxy Autodiscovery Protocol è un protocollo di livello 7 che è stato elaborato da un gruppo di produttori software (Microsoft, RealNetworks, Sun Microsystem ed InkTomi.....) che consente all'utente finale di configurare il proprio browser web in maniera trasparente, ovvero senza fare ricorso ad alcuna configurazione manuale. In particolare, tramite la modalità di autoconfigurazione, è possibile definire automaticamente l'accesso al proxy server principale all'interno di un dominio (FQDN).

Il principio è molto semplice: il browser web, che implementa il protocollo WPAD, inizia la sua indagine interrogando il sistema di risoluzione dei nomi, il Domain Name System (ISC Bind), alla ricerca del nome host wpad.

ecco un esempio di record A - ADDRESS (indirizzo IP)

wpad    IN     A     192.168.1.200
  

ecco un esempio di record CNAME (canonical name)

proxy   IN     A     192.168.1.100
wpad    IN     CNAME proxy
  

se esiste un record A (address) o un record CNAME (canonical name) corrispondente a tale nome host nell'ambito di un dominio qualificato, il browser web cercherà di caricare il file di configurazione automatica direttamente dalla URLs

http://wpad/wpad.dat
  

Il server Web corrispondente al nome host wpad ha memorizzato nella sua Document root il file wpad.dat, Il browser web cercherà di leggere quella URLs per auto configurarsi. Il browser web esegue le direttive scritte in Java script che sono contenute in quel file. Naturalmente un browser web che non supporta Java o Java script non sarà in grado di autoconfigurarsi.

In tutti i casi un file wpad.dat o il file proxy.pac, per poter essere utilizzato, deve essere messo in linea su un server web opportunamente configurato. Per far si che il browser web sia in grado di autoconfigurarsi è necessario aggiungere un particolare tipo di mime-type che consente il caricamento e l'esecuzione del file wpad.dat come Javascript autoconfigurante.

Nel caso si utilizzi come server Web il comunissimo e potentissimo Apache è sufficiente editare il file /etc/mime.types aggiungendo la seguente riga

application/x-ns-proxy-autoconfig pac dat 
  

vediamo di seguito un esempio concreto di file proxy.pac o wpad.dat

function FindProxyForURL( url, host ) 
{ 
  if( isPlainHostName( host ) ||          // no domain specification
      dnsDomainIs( host, "mynet.com" ) || // MyNet local domain
      shExpMatch( url, "https*" ) ||      // secure protocols 
      shExpMatch( url, "snews*" ) )
    return "DIRECT"; 
  else
    return "PROXY calimero.mynet.com:3128; " +
              "PROXY rocco.mynet.com:3128; " + 
      "DIRECT";
} 
  

il file di autoconfigurazione punta su 2 proxy server diversi, vediamo ancora un esempio per la configurazione del DNS (ISC Bind)

www         IN     A       192.168.10.25
;
wpad        IN     CNAME   www
  

l'host www corrisponde all'indirizzo IP 192.168.10.25 ed il suo nome canonico (o alias) è wpad.

Attualmente, solo il browser Microsoft Internet Explorer supporta le funzionalità WPAD e l'Internet Draft che ne descrive le carratteristiche é scaduto. Per maggiori dettagli sulla scrittura degli scripts riferirsi a Navigator Proxy Auto-Config File Format (http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html).

Questi script di autoconfigurazione sono comunque supportati correttamente in modalità manuale dalla maggior parte dei Browser Internet (Mozilla, Opera, Konqueror, etc.).