Un router è in grado di eseguire delle operazioni di forwarding dei pacchetti basandosi su informazioni differenti dal semplice indirizzo IP di origine o di destinazione, una politica di routing può consentire di impostare dei percorsi differenti per alcuni pacchetti che rispondono a determinati requisiti, un router è dunque in grado di dirottare i pacchetti ragionando anche sulla porta di destinazione del pacchetto stesso. Questa funzionalità può essere abilitata utilizzando le regole del sistema operativo Cisco IOS, è bene ricordare che alcune versioni di questo sistema operativo possono risultare incompatibili con questa opzione perché troppo vecchie.
La FAQ che stiamo per illustrare è stata realizzata da John Saunders, la configurazione proposta lavora correttamente con il sistema operativo Cisco System IOS 11.1 e successivi. La prima attività da svolgere è procedere con la creazione di una access-list che consentirà al router di selezionare il traffico da deviare verso la macchina che esegue Squid
access-list 110 deny tcp host 192.168.102.3 any eq www access-list 110 permit tcp any any eq www |
192.168.102.3 è l'indirizzo IP della macchina che esegue Squid, la prima linea della ACL esclude i pacchetti con indirizzo sorgente 192.168.102.3 destinati alla porta 80 (www), la seconda linea confronta con tutti gli altri pacchetti destinati alla porta 80. Dopo aver impostato una access-list possiamo definire una route-map
route-map proxy-squid permit 10 match ip address 110 set ip next-hop 192.168.102.3 |
per rendere operativa la configurazione è necessario applicare la route-map sull'interfaccia connessa con la LAN dove è stato installato Squid
interface Ethernet0 ip policy route-map proxy-squid |
di seguito sottoponiamo al lettore un'altro esempio completo, dove viene definita una route-map denominata proxy-redirect, quest'ultima specifica come salto successivo la macchina dove è in esecuzione il proxy server Squid
! access-list 110 deny tcp any any neq www access-list 110 deny tcp host 192.168.1.13 any access-list 110 permit tcp any any ! route-map proxy-redirect permit 10 match ip address 110 set ip next-hop 192.168.1.13 ! interface Ethernet0 ip policy route-map proxy-redirect ! |
in questo caso di studio la macchina che esegue Squid ha l'indirizzo IP 192.168.1.13. Il router redirige il traffico destinato alla porta 80 (www) verso la porta dove rimane in ascolto Squid. Questo tipo di policy di routing degrada le prestazioni del router ed in molte versioni di Cisco IOS questo tipo di regola utilizza un tempo CPU piuttosto elevato.