PBR, block traffic, Interface Null0.

Objetivo: Desarrollar variantes para descartar tráfico mediante el uso de PBR y la interfaz Null0.

Topología:

Untitled picture

 

El objetivo de este laboratorio, además de configurar ip sla con track para seguir el estado del enlace de menos ancho de banda a través de R4, configurar para que el tráfico de PC1 hacia S1 vaya por el camino a través de R4 mediante PBR y que en caso de que el enlace falle, el tráfico se pierda.

R1 config:
!
hostname R1
!
track 1 ip sla 1
delay down 90 up 90
!
interface FastEthernet0/0
ip address 10.1.1.9 255.255.255.0
ip policy route-map PBR
!
interface Serial3/0
ip address 10.1.12.1 255.255.255.240
!
interface Serial3/1
bandwidth 64
ip address 10.1.14.1 255.255.255.240
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
ip local policy route-map sla-op
!
ip sla 1
icmp-echo 10.1.3.99 source-ip 10.1.1.9
ip sla schedule 1 life forever start-time now
access-list 101 permit ip host 10.1.1.9 host 10.1.3.99
access-list 102 permit ip host 10.1.1.2 host 10.1.3.99
!
route-map PBR permit 5
match ip address 102
set ip next-hop verify-availability 10.1.14.4 10 track 1
!
route-map sla-op permit 5
match ip address 101
set ip next-hop 10.1.14.4
!

Una vez configurado el escenario, nada mas queda configurar R1 para que bloquee el tráfico de PC1 hacia S1 en caso de que el enlace entre R1 y R4 se vea afectado.

Variante·1

Reconfigurar el PBR de la siguiente manera:

!
route-map PBR permit 5
match ip address 102
set ip next-hop verify-availability 10.1.14.3 10 track 1
set interface null 0
!

(Cuando configuras la sentencia da el siguiente Warning:
R1(config-route-map)#set interface null 0
%Warning:Use P2P interface for routemap set
interface clause)

La lógica del route-map es que cuando se desactive la primera clausula set (por que falló el track) este activa la segunda clausula y todo el tráfico sea descartado por el router.

Para inducir problemas en el enlace entre R1 y R4 voy a configurar una acl que bloquee el tráfico de ip sla que pase por la interfaz serial de R4. Una vez activada, el track en R1 cambiará de estado y el PBR utilizará lainterfaz Null0.

Antes del cambio:

R1#sh track
Track 1
IP SLA 1 state
State is Up
15 changes, last change 01:09:42
Delay up 90 secs, down 90 secs
Latest operation return code: OK
Latest RTT (millisecs) 52
Tracked by:
ROUTE-MAP 0

R1#sh route-map
route-map PBR, permit, sequence 5
Match clauses:
ip address (access-lists): 102
Set clauses:
ip next-hop verify-availability 10.1.14.3 10 track 1 [up]
interface Null0
Policy routing matches: 720 packets, 71800 bytes

Después del cambio:

PC1> ping 10.1.3.99 -t

84 bytes from 10.1.3.99 icmp_seq=109 ttl=61 time=62.400 ms
84 bytes from 10.1.3.99 icmp_seq=110 ttl=61 time=46.800 ms
84 bytes from 10.1.3.99 icmp_seq=111 ttl=61 time=78.000 ms
10.1.3.99 icmp_seq=112 timeout
10.1.3.99 icmp_seq=113 timeout
10.1.3.99 icmp_seq=114 timeout

*Sep 24 16:15:39.858: %TRACKING-5-STATE: 1 ip sla 1 state Up->Down
R1#sh route-map
route-map PBR, permit, sequence 5
Match clauses:
ip address (access-lists): 102
Set clauses:
ip next-hop verify-availability 10.1.14.3 10 track 1 [down]
interface Null0
Policy routing matches: 805 packets, 80130 bytes

Variante·2

Reconfigurar el PBR de la siguiente manera:

!
route-map PBR permit 5
match ip address 102
set ip next-hop verify-availability 10.1.14.3 10 track 1
set ip next-hop recursive 15.0.0.1
!

Además de la siguiente ruta estática:

!
ip route 15.0.0.0 255.255.255.252 Null0
!

Dentro de la sentencia set ip next-hop es necesario el recursive porque la dirección ip del próximo salto no se corresponde con una subnet directamente conectada.

Para inducir problemas en el enlace entre R1 y R4 voy a configurar una acl que bloquee el tráfico de ip sla que pase por la interfaz serial de R4.

Antes del cambio:

R1#sh track
Track 1
IP SLA 1 state
State is Up
17 changes, last change 00:56:22
Delay up 90 secs, down 90 secs
Latest operation return code: OK
Latest RTT (millisecs) 24
Tracked by:
ROUTE-MAP 0

R1#sh route-map
route-map PBR, permit, sequence 5
Match clauses:
ip address (access-lists): 102
Set clauses:
ip next-hop verify-availability 10.1.14.3 10 track 1 [up]
ip next-hop recursive 15.0.0.1
Policy routing matches: 1565 packets, 154610 bytes

Después del cambio:

PC1> ping 10.1.3.99 -t
*10.1.1.9 icmp_seq=1 ttl=255 time=15.600 ms (ICMP type:3, code:1, Destination host unreachable)
*10.1.1.9 icmp_seq=2 ttl=255 time=15.600 ms (ICMP type:3, code:1, Destination host unreachable)
*10.1.1.9 icmp_seq=3 ttl=255 time=15.600 ms (ICMP type:3, code:1, Destination host unreachable)

*Sep 24 17:19:39.938: %TRACKING-5-STATE: 1 ip sla 1 state Up->Down
R1#sh route-map
route-map PBR, permit, sequence 5
Match clauses:
ip address (access-lists): 102
Set clauses:
ip next-hop verify-availability 10.1.14.3 10 track 1 [down]
ip next-hop recursive 15.0.0.1
Policy routing matches: 1569 packets, 155002 bytes

R1#sh track
Track 1
IP SLA 1 state
State is Down
18 changes, last change 00:03:44
Delay up 90 secs, down 90 secs
Latest operation return code: No connection
Tracked by:
ROUTE-MAP 0

Variante·3

Reconfigurar el PBR de la siguiente manera:

!
route-map PBR permit 5
match ip address 102
set ip next-hop verify-availability 10.1.14.3 10 track 1
set ip next-hop 15.0.0.1

!

Y añadir:

!
interface Loopback0
ip address 15.0.0.1 255.255.255.255
!

Para inducir problemas en el enlace entre R1 y R4 voy a configurar una acl que bloquee el tráfico de ip sla que pase por la interfaz serial de R4.

Antes del cambio:

R1#sh track
Track 1
IP SLA 1 state
State is Up
2 changes, last change 00:00:59
Delay up 90 secs, down 90 secs
Latest operation return code: OK
Latest RTT (millisecs) 40
Tracked by:
ROUTE-MAP 0

R1#sh route-map
route-map PBR, permit, sequence 5
Match clauses:
ip address (access-lists): 102
Set clauses:
ip next-hop verify-availability 10.1.14.3 10 track 1 [up]
ip next-hop 15.0.0.1

Después del cambio:

*Sep 25 14:09:20.758: %TRACKING-5-STATE: 1 ip sla 1 state Up->Down
R1#sh track
Track 1
IP SLA 1 state
State is Down
3 changes, last change 00:00:32
Delay up 90 secs, down 90 secs
Latest operation return code: No connection
Tracked by:
ROUTE-MAP 0

R1#sh route-map
route-map PBR, permit, sequence 5
Match clauses:
ip address (access-lists): 102
Set clauses:
ip next-hop verify-availability 10.1.14.3 10 track 1 [down]
ip next-hop 15.0.0.1
Policy routing matches: 65 packets, 6658 bytes

PC2> ping 10.1.3.99 -t

84 bytes from 10.1.3.99 icmp_seq=6 ttl=61 time=93.600 ms
84 bytes from 10.1.3.99 icmp_seq=7 ttl=61 time=62.401 ms
10.1.3.99 icmp_seq=8 timeout
10.1.3.99 icmp_seq=9 timeout

Hasta ahora tres variantes dentro de PBR para bloquear tráfico.

Advertisements
Posted in PBR

4 thoughts on “PBR, block traffic, Interface Null0.

  1. Disculpa amigo te agradecería mucho si me pudieras ayudar. La verdad es de que no comprendo a la perfección la utilidad de este comando set ip next-hop recursive 15.0.0.1, por que pones la dirección 15.0.0.1 al igual que la ruta estática apuntando hacia esa misma dirección. Y por ultimo ese comando solo nos ayuda para bloquear trafico ?

    saludos

    Like

    1. Hola. Bueno, la idea era plantear varias maneras de bloquear tráfico sin tener que aplicar una acl. Cuando hay caminos redundantes, a lo mejor hay ciertos tipos de tráficos que te interesan que pasen por el enlace secundario. Si se cayera el enlace secundario, a lo mejor no conviene que ese tráfico sea reenrutado por el enlace principal, sino que sea descartado. Esto depedende del escenario, de la QoS, del tipo de tráfico, del ancho de banda de los enlaces, etc. La dirección ip 15.0.0.1, de próximo salto, no existe en el dominio ip de la red (ficticia) ni existe como dirección ip de una de las interfaces del router. Busqué una ip que de ninguna manera pudiera solaparse con el rango de direcciones ip. Generalmente con este comando se ponen direcciones ip que pertenecen a subnets comunes para la direcciones ip de las interfaces del router donde se configura. Como la ip 15.0.0.1 no entra en ninguna subnet directamente conectada en el router, se utiliza “recursive”. La ruta estática sirve para darle una ruta al router para llegar a esa subnet (15.0.0.x) donde va a enviar los paquetes, y en este caso la ruta apunta a Null0, o sea, que los paquetes son descartados.
      No, el comando no es para bloquear tráfico. Sino para enviar tráfico hacia un próximo salto que no es conocido directamente por el router. Lo importante es que el router tenga una ruta (ya sea directamente conectada, ruta estática o aprendida por un proceso dinámico)

      Saludos.

      Liked by 1 person

  2. Amigo muchas gracias por tu atención

    Me queda mas que clara tu explicación sobre la utilidad que le estas dando a los comandos para tirar trafico que no queremos reenviar en caso de que el enlace principal se caiga, de hecho me apoye en tu post para hacer algunas configuraciones ya que el escenario que tengo es prácticamente el mismo que muestras.

    Ahora bien, lo que yo estoy tratando de comprender es precisamente lo ultimo que comentas. Para que sirve enviar tráfico hacia un próximo salto que no es conocido directamente por el router(en este caso Router 1), que función tendría poner como next-hop la ip 10.1.234.0/24 de la fast 0/0 del router 3?

    Tomando como referencia tu escenario y suponiendo que quisiera configurar un salto que no es conocido, como seria la configuración para llegar a la red 10.1.3.0/24. De verdad te lo agradecería mucho, pero si en dado caso que no estés con tiempo y si no es es mucho pedir, me podrías decir donde puedo sacar información acerca de ese comando. Me la he pasado buscando en un motón de paginas pero solo logro comprender el concepto pero no muy bien la aplicación y la configuración.

    De aquí saque la información que me ha funcionado un poco mejor:
    http://sclabs.blogspot.mx/2014/03/ccnp-route-path-control-part-3-policy.html

    y esta es la configuración que aplica :

    Router# show running-config | beg abccomp
    route-map abccomp permit 10
    match ip address 101 ! Defines the match criteria for an access list.
    ! If the match criteria is met, the recursive IP address is set.
    set ip next-hop recursive 10.3.3.3
    set ip next-hop 10.1.1.1 10.2.2.2 10.4.4.4

    aun así no comprendo las direcciones de next-hop, no encuentro una relación con el diagrama.

    Like

    1. Hola.
      Aquí planteas varias cuestiones:
      1ro – En este escenario no creo que tenga sentido poner ip next-hop recursive apuntando a la subnet broadcast entre R2-R3-R4. Yo utilicé la opción de “recursive” para lograr el objetivo que tenía en mente. Ya con poner ip next-hop apuntando a una dirección ip de las subnets que tiene R1 directamente conectadas es suficiente. En la web que mencionas se ponen comandos solo para mencionarlos, pero no los aplica a un escenario concreto y por lo tanto no hay relación ninguna con el diagrama.
      2do – Aquí puedes encontrar un ejemplo donde tiene sentido el uso de “recursive”: https://cisconinja.wordpress.com/category/pbr/
      3ro – La información de ese comando en primer la he obtenido en primer lugar del libro de CCNP ROUTE y con más detalle de la guía de configuración de PBR de Cisco: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_pi/configuration/15-mt/iri-15-mt-book.html

      Saludos.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s