lunes, 21 de septiembre de 2009

Publicación selectiva de la ruta por default en OSPF

En este ejemplo vamos a analizar un feature interesante en donde tenemos el siguiente escenario:

Tenemos en nuestra red un equipo que habla OSPF hacia la LAN e IS-IS al router PE del ISP.

Dado que R1 es ASBR debería inyectar la ruta default al Area 0 de la red, pero vamos a hacer esto condicionalmente de forma que R1 mande la 0/0 exclusivamente si el enlace entre R0 y el PE (el router en gris) está levantado.

Config básica de los equipos

R0

interface Loopback0
 description Simulacion a enlace PE
 ip address 10.2.2.1 255.255.255.252
 ip router isis 
!         
interface GigabitEthernet1/0
 description Enlace a R1
 ip address 10.1.1.2 255.255.255.252
 ip router isis 
 negotiation auto
 isis circuit-type level-1
!         
router isis 
 net 49.0001.ca00.5173.001c.0000

R1

interface GigabitEthernet1/0
 description Enlace a R0
 ip address 10.1.1.1 255.255.255.252
 ip router isis 
 negotiation auto
 isis circuit-type level-1
!
interface GigabitEthernet2/0
 description Enlace a R2
 ip address 192.168.1.1 255.255.255.0
 ip ospf 1 area 0
 negotiation auto
!
router ospf 1
 log-adjacency-changes detail
!
router isis 
 net 49.0001.ca01.5173.001b.0000

R2

interface Loopback0
 description LAN de R2
 ip address 192.168.16.1 255.255.240.0
 ip ospf 1 area 0
!
interface GigabitEthernet1/0
 description Enlace a R1
 ip address 192.168.1.222 255.255.255.0
 ip ospf 1 area 0
 negotiation auto
!         
router ospf 1
 log-adjacency-changes detail
R1 aprende la ruta 10.2.2.0/30 de R0, por lo tanto vamos a hacer un route-map que chequee esto.

Rutas que aprende R1 desde R0

R1#show ip route isis
     10.0.0.0/30 is subnetted, 2 subnets
i L1    10.2.2.0 [115/20] via 10.1.1.2, GigabitEthernet1/0

Rutas que aprende R1 desde R2

R1#show ip route ospf
     192.168.16.0/32 is subnetted, 1 subnets
O       192.168.16.1 [110/2] via 192.168.1.222, 00:05:19, GigabitEthernet2/0

Tabla de rutas de R2

R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.1.0/24 is directly connected, GigabitEthernet1/0
C    192.168.16.0/20 is directly connected, Loopback0
Ahora vamos a configurar un route-map en R1. Si es que el tiene en la tabla la ruta a 10.2.2.0/30 (o sea, si R0 tiene operativa la interfase contra el PE) entonces el publicará la default a R2.
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#ip access-list standard SalidaDeR0
R1(config-std-nacl)#permit 10.2.2.0 0.0.0.3
R1(config-std-nacl)#exit
R1(config)#route-map DefaultSelectivaR0 permit 10
R1(config-route-map)#match ip address SalidaDeR0
R1(config-route-map)#end
R1#show ip access-lists 
Standard IP access list SalidaDeR0
    10 permit 10.2.2.0, wildcard bits 0.0.0.3
R1#show route-map
route-map DefaultSelectivaR0, permit, sequence 10
  Match clauses:
    ip address (access-lists): SalidaDeR0 
  Set clauses:
  Policy routing matches: 0 packets, 0 bytes
El route-map devolverá un valor de verdadero sí y solo sí matchea la ruta definida en el access-list.
Ahora asignamos la publicación selectiva de acuerdo al route-map que se acaba de crear.
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#router ospf 1
R1(config-router)#default-inf orig always route-map DefaultSelectivaR0
R1(config-router)#^Z
Ahora veamos la tabla de rutas de R2:
R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 192.168.1.1 to network 0.0.0.0

C    192.168.1.0/24 is directly connected, GigabitEthernet1/0
O*E2 0.0.0.0/0 [110/1] via 192.168.1.1, 00:01:28, GigabitEthernet1/0
C    192.168.16.0/20 is directly connected, Loopback0
Vemos que aprendió la default como externa tipo 2 por OSPF.

El siguiente paso va a ser bajar la loopback de R0 (simulamos que se perdió la conectividad contra el PE del ISP).
R0#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R0(config)#interface lo0
R0(config-if)#shutdown
R0(config-if)#
*Sep 21 14:56:49.463: %LINK-5-CHANGED: Interface Loopback0, changed state to administratively down
*Sep 21 14:56:50.463: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to down
R0(config-if)#^Z
R0#

Tabla de rutas de R1

R1#sh ip ro isis

R1#
Nada...
Ahora veamos si R2 tiene la default...

Rutas de R2

R2#sh ip ro
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.1.0/24 is directly connected, GigabitEthernet1/0
C    192.168.16.0/20 is directly connected, Loopback0
R2#

Fácil, ¿no?.

Nos vemos en la próxima.

0 comentarios:

Publicar un comentario