Policy based routing per Cisco ASA

Come costruire route basate sugli indirizzi di provenienza

La configurazione di una default route è una delle operazioni più normali per un firewall. Se consideriamo il comando

route outside 0 0 192.168.1.1

significa: qualunque pacchetto in transito per il quale non ci siano informazioni di destinazione più specifiche sarà inviato all’interfaccia outside, con gateway di next-hop (cioè sarà consegnato al gateway) 192.168.1.1

Questo funziona benissimo se abbiamo una o più reti che usano un solo gateway di uscita verso internet. Supponiamo di avere però due reti diverse, ad esempio rete1: 192.168.10.0 e rete2: 192.168.20.0 e DUE gateway di uscita diversi, su due interfacce differenti, che vogliamo usare per dirigere il traffico internet.
In sostanza vorremmo configurare due rotte di default, una per rete1 ed una per rete2, ognuna verso un gateway diverso (192.168.1.1 e 192.168.2.1).

In questo caso una default route non ci può aiutare, perché non tiene in considerazione la rete di partenza, ma solo la destinazione; in sostanza qualunque sia l’interfaccia di origine, tutti i pacchetti vengono inviati verso la stessa interfaccia di destinazione.

Naturalmente provare a usare il comando

route outside1 0 0 192.168.1.1
route outside2 0 0 192.168.2.1

non funziona. Il firewall chiede di aggiungere distanze amministrative diverse alle due rotte, e usa solo quella di priorità più elevata.

Dobbiamo perciò usare un approccio diverso, appunto il Policy Based Routing.

Policy Based Routing in poche righe

Il PBR ci consente di stabilire come effettuare il routing considerando la sorgente e la destinazione del traffico (e in realtà, volendo, anche diverse altre cose che qui non vedremo).

La prima operazione da svolgere è quella di stabilire una rotta di default; questo non è necessario per implementare PBR, ma significa semplicemente comunicare al firewall: a meno che non ti dica diversamente, il traffico internet va inviato ad outside1.

route outside1 0 0 192.168.10.1

Il significato della regola dovrebbe essere chiaro: invierà per default tutto il traffico sull’interfaccia outside1 verso il gateway 192.168.10.1

Ora vogliamo creare una configurazione che dica: invia tutto il traffico proveniente dalla rete 192.168.20.0 sull’interfaccia outside2, con gateway di inoltro 192.168.2.1 (next hop).

Per fare questo il primo passo è definire mediante una access list il traffico cui vogliamo applicare PBR.

access-list test-acl extended permit ip 192.168.20.0 255.255.255.0 any4

test-acl è il nome della access list, il resto della sintassi significa: permetti tutto il traffico da 192.168.20.0 verso qualunque destinazione (any4) IPv4.

Ora dobbiamo costruire una route map, vale a dire un mapping della rotta; (in sostanza si tratta di un contenitore di condizioni da verificare sul tarffico ed azioni di routing che vogliamo far compiere al firewall. Lo faremo in questo modo:

route-map name {permit | deny} [sequence_number]

in cui il sequence -number definisce l’ordine in cui le diverse rout-map vengono considerate, permit/deny indicano l’azione da eseguire. In particolare se l’access list indica un permit, e la route map indica permit, l’azione di routing viene eseguita.

route-map test-map permit 10

ora dobbiamo indicare in questa routemap quale traffico vogliamo indirizzare, indicato dalla in access-list costruita precedentemente:

Lo facciamo con il comando:

match ip address access-list_name

che nel nostro caso sarà

match ip address test-acl

ed infine indichiamo qual è l’indirizzo del next-hop con il comando

set ip next-hop ipv4. In sostanza tutta la configurazione ha questo aspetto:

route-map test-map permit 10
 match ip address test-acl
 set ip next-hop 192.168.2.1

Fatto questo rimane da applicare la policy; le policy di route mapping si applicano per interfaccia in cui vogliamo che siano valutate (in questo caso quella di ingresso del traffico di rete) con il comando:

policy-route route-map route-map_name

Supponiamo che l’interfaccia di connessione della nostra rete interna sia la numero 3, otteniamo:

interface GigabitEthernet1/3
nameif inside2
security-level 30
ip address 192.168.20.1 255.255.255.0
 policy-route route-map test-map

In grassetto il comando policy-route che stabilisce che sull’interfaccia 3 debba essere usta la routemap test-map. A presto.

admin
Author: admin

bio

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. Usiamo i cookies per ragioni tecniche. Teniamo in alta considerazione la tua privacy.

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi