Informazioni personali

Cerca nel blog

Translate

venerdì 18 settembre 2009

WCCP e WSA: guida alla sopravvivenza

Facendo il deploy di un apparato WSA (Web Security Appliance) può venire l’esigenza di effettuare una configurazione che non richieda nessun intervento lato client.
Per configurare tali funzioni su WSA occorre innanzi tutto configurare l’apparato come il transparent proxy. Tale operazione, che si effettua durante il wizard di setup, ci propone come scelta 2 possibili configurazioni transparent: L4 o Wccp.
Ci soffermiamo in questo post sulla configurazione WCCP.
Il WCCP ( Web Cache Communication Protocol) è un protocollo di routing sviluppato da Cisco il cui scopo è quello di ruotare automaticamente il traffico che giunge su di un router verso un apparato  che funga da cache o proxy. Il protocolla, nella sua configurazione base, richiede pochissimi comandi ed è di configurazione abbastanza semplice.
In linea di principio il funzionamento del sistema è il seguente:
Immaginiamo di avere un client che è configurato senza proxy web, e che sia stato opportunamente configurato un router (o switch L3) compatibile WCCP con una unità WSA.

1) Il client  che ha un indirizzo nella subnet A quando cerca di effettuare la navigazione Web esegue una chiamata verso internet attraverso la porta 80 (Http) indirizzando il pacchetto al default gateway (router) che ha abilitato il WCCP
2) il router riceve il pacchetto e il servizio WCCP lo reindirizza verso il proxy che sta nella subnet B
3) il proxy riceve il pacchetto proveniente dal client, e effettua la chiamata verso internet in luogo del client presentando la richiesta come se proveniente dalla rete B ed inviandola al router
4) il router invia il pacchetto trasformato dal proxy verso internet attraverso la opportuna interfaccia (ad esempio nella rete C)
5) il server Web su internet risponde e manda il suo pacchetto al Proxy
6) il proxy elabora il pacchetto e lo manda indietro al client via router
7) il client riceve il pacchetto di risposta dal router come se fosse stato mandato direttamente ad internet
La redirezione verso il proxy, quindi, è trasparente al client in termini di configurazione. Qualsiasi chiamata verso internet di un client che si trova nella rete A verrà quindi rigirata dal servizio WCCP e opportunamente processata dal proxy.
Perché il tutto funzioni dobbiamo tener presente quindi i seguenti punti fondamentali:
1) stiamo parlando di routing, e quindi siamo almeno al layer 3 (anche se lavoriamo su di uno switch)
2) il WCCP deve poter distinguere la rete client da quella che contiene il proxy
3) WSA deve essere in grado di ruotare correttamente il traffico verso le reti cui è connesso.
La configurazione del protocollo, dicevamo, è estremamente semplice. Il motivo principale è che sono i Proxy (Engine o WCCP client) che si annunciano al router (WCCP server) per permettere al protocollo WCCP di funzionare.
L’annuncio è comporto da alcune parti; ogni 10 secondi il WCCP client si annuncia (“here I Am”) al router, dichiarando il suo indirizzo i serviziporte che gestisce, la modalità di autenticazione e via dicendo. se sono presenti più WWCCP client quello con l’indirizzo IP più basso funge da riferimento per il router in termini di protocol/port, assignment, forwarding, e return methods

Engine assignment : Hash (software) method , Mask (hardware) method , Reassigns on engine failure
Forward to engine methods : L2 MAC rewrite , L3 WCCP GRE forward

il Router (WCCP server):

  • -Accetta la registrazione per il service group
  • -Acks “Here I Am” con “I See You”
  • -Attende 30 (3×10) secondi prima di dare errore di connessione verso un engine
  • -Annuncia l’engine primario agli altri engines
  • -Router id è l’indirizzo IP più alto
  • -redirige il traffico verso il WCCP client (engine)

si noti che  esistono 2 metodologie di forwarding del router verso il WCCP client, e 3 di ritorno da WSA al router:

Redirection from router to WSA

  • -GRE—Entire packet GRE tunneled to the engine
  • Layer 2—Frame MAC address rewritten to engine MAC
  • -WSA will reject packets it does not want to handle

Return from WSA to router

  • -GRE—Entire packet GRE tunneled to the router
  • -Layer 2—Frame MAC address rewritten to router MAC
  • -IP Forward—Engine issues ARP for default gateway

in caso di L2 return occorre ricordarsi di introdurre la opportuna route statica su WSA.

Gli apparati

gli apparati che possono gestire il WCCP sono presenti nel seguente elenco:

Software Routers

§Cisco 7200, 7300, 7400, 7500 family routers

  • -GRE forwarding only
  • -Hash assignment only

§Cisco Integrated Services Routers 1800, 2800, 3800

  • -GRE forwarding only
  • -Hash assignment only

Firewalls

§ASA

  • -GRE forwarding only
  • -Hash assignment only
  • -Single client / no meshing

Hardware Accelerated Switches

  • §Mask assignment only

§Cisco Catalyst® 4500 and 4948 family switches

  • -L2 only
  • -no redirect-list
  • -Inbound only

§Cisco Catalyst 3750 family switches

§Cisco Catalyst 6500 and 7600

  • -WCCP exclude in used with outbound is in software
  • -Sup720
  • •GRE and L2 forwarding in hardware
  • •GRE return in software
  • •L2 return in hardware (future)
  • -Sup2
  • •GRE forwarding in software
  • •L2 forwarding in hardware
  • •GRE and L2 return in software

Configurazione lato WSA

La configurazione di WSA per supportare  WCCP è estremamente semplice:

Dal menu Network si seleziona transparent redirection
si deve quindi creare un service WCCP. Il service WCCP fondamentalmente serve ad istruire il proxy ed il router su quali saranno le porte soggette alla redirezione.
esiste uno standard service ID (web-cache), che però ruota solo la porta 80; se si ha bisogno di ruotare altre porte, come ad esempio la 443 per proxare l’HTTPS, occorre definire un Dynamic service ID e quindi dichiarare le porte che vengono gestite (vedi figura).
Occorre poi dichiarare l’indirizzo del router WCCP, ovviamente questa interfaccia deve risiedere nella stessa rete del proxy.
Vi rimando alla manualistica del prodotto per le ulteriori opzioni.

Configurazione lato WCCP router

La configurazione lato WCCP router varia leggermente da apparato ad apparato.
su di un router la configurazione approssimativamente richiede i seguenti comandi:

il primo comando serve ad abilitare Cisco Express Forwarding, opzionale ma fortemente consigliato
il secondo comando abilita il wccp
il terzo comando assegna al wccp il service ID “80” (lo stesso che avevamo definito sul WSA) e definisce una redirect list
questi comandi abilitano il wccp, adesso occorre definire dove si trovano i client che devono essere rediretti.
Questo si fa su di una interfaccia del router:

il primo comando serve per definire la interfaccia su cui operiamo
il secondo abilita la redirezione sulla interfaccia selezionata per il servizio wccp definito sul service ID “80”
si può infine creare l’opportuna acl per includereescludere nodi dalla redirezione.
 

con leggere differenze si configurano cosi anche gli switch.
sugli switch occorre fare un po’ di attenzione ad alcuni punti:
1) essendo wccp un protocollo di routing occorre elevare la configurazione a layer 3. Se si usano porte singole occorre dare un “no switch”, piu comunemente si utilizzano delle VLAN che raggruppino le porte dedicate ai client, le porte dedicate ai proxy ed eventualmente le porte dedicate all’accesso ad internet.
2) in alcuni switch (ad esempio il 3750 e 3560) è necessario utilizzare il template sdm routing (richiede il reboot)

in un prossimo post vedremo nel dettaglio una configurazione di switch di esempio.
PS: ringrazio Walter Doria di exclusive Network per aver collaborato alla fase di testing da cui sono scaturiti questo articolo ed il prossimo.