martes, 26 de octubre de 2010

OSPF Filter; Intra Area con distribute-list

Posted by Nicolas | martes, 26 de octubre de 2010 | Category: , , |

En los siguientes posts se repasarán distintos métodos para filtrar prefijos en OSPFv2, cada uno con propósitos y alcances distintos. Para comenzar se verán distintos usos del comando distribute-list in para filtrar prefijos dentro de una misma área. Se combinará con prefix-list, access-list, route-map (match ip address, match ip next-hop y match ip route-source)


La topología a utilizar en este y los siguientes posts se muestra en la siguiente figura:


1. Filtrar prefijo Intra Area de la tabla de routeo. Notar que sin embargo seguirá estando en la base de datos de OSPF.

R1#sh ip rou 5.5.5.5
Routing entry for 5.5.5.5/32
Known via "ospf 1", distance 110, metric 2, type intra area
Last update from 192.0.2.194 on Serial0/0, 1d02h ago
Routing Descriptor Blocks:
* 192.0.2.194, from 5.5.5.5, 1d02h ago, via Serial0/0
Route metric is 2, traffic share count is 1

R1#sh ip ospf data | i ^5.5.5.5
5.5.5.5 1.1.1.1 175 0x80000031 0x0038BA
5.5.5.5 5.5.5.5 1724 0x80000047 0x003C41 3
R1#

Se puede ver R1 recibe el prefijo 5.5.5.5/32 de R5 que tiene router-ID 5.5.5.5. Ahora en R1 se configura para filtrar este prefijo, lo que resulta exitoso, sin embargo esto no tendrá efecto sobre la base de datos de OSPF por lo que R1 propagará la ruta al área 0.

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#ip prefix-li no-prefix deny 5.5.5.5/32
R1(config)#ip prefix-li no-prefix permit 0.0.0.0/0 le 32
R1(config)#router ospf 1
R1(config-router)#distribute-list prefix no-prefix in
R1(config-router)#

R1#sh ip rou 5.5.5.5
% Network not in table

R1#sh ip ospf data | i ^5.5.5.
5.5.5.5 1.1.1.1 657 0x80000031 0x0038BA
5.5.5.5 5.5.5.5 201 0x80000048 0x003A42 3
R1#


2. Mismo caso pero con access-list en vez de prefix-list.

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#access-list 1 deny 5.5.5.5 255.255.255.255
R1(config)#access-list 1 permit any
R1(config)#router ospf 1
R1(config-router)#distribute-list 1 in

R1#sh ip rou 5.5.5.5
% Network not in table


3. Mismo caso, pero especificando el prefijo y next-hop.

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#access-list 1 permit 5.5.5.5
R1(config)#access-list 2 permit 192.0.2.194
R1(config)#
R1(config)#route-map prefix-nexthop deny
R1(config-route-map)# match ip address 1
R1(config-route-map)# match ip next-hop 2
R1(config-route-map)#route-map prefix-nexthop permit
R1(config-route-map)#
R1(config-route-map)#router ospf 1
R1(config-router)#distribute-list route-map prefix-nexthop in
R1(config-router)#^Z
R1#


R1#sh ip rou 5.5.5.5
% Network not in table


4. En vez del next-hop se especifica la fuente del prefijo.

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config-router)#route-map prefix-nexthop deny
R1(config-route-map)#match ip address 1
R1(config-route-map)#match ip route-source 1
R1(config-route-map)#route-map prefix-nexthop permit
R1(config-route-map)#
R1(config-route-map)#router ospf 1
R1(config-router)#distribute-list route-map prefix-nexthop in
R1(config-router)#^Z

Un par de consideraciones:
  • Si se incluye la interface en el comando distribute-list in, se considera ésta como interface de sailda para el next-hop y sólo la ruta en ese sentido será considerada.
  • Altamente recomendado evitar este tipo de filtrado (Inter Area) ya que puede llevar a blackholing.

En total 1 comentarios:

  1. Muy bueno!!!!!! vision rapida y global, a la par q muy ilustrativa!!


Leave a Reply