CiscoOSPFRouting

Router ID OSPF

A diferencia de otros protocolos, OSPF, antes de poder enviar alguno de sus mensajes, es necesario que este tenga configurado el Router ID (RID).

El Router ID corresponde a un identificador de 32 bits que tiene cada router (nombre del router en OSPF), el cual se encuentra escrito en formato IPv4 (valor decimal con puntos). Es necesario tener en cuenta que, aunque se escriba como una dirección IPv4, no corresponde a una, es solo un valor que identifica un router con OSPF habilitado.

Dentro de los valores que pueden tomar el Router ID, el valor 0.0.0.0 se encuentra reservado, por lo tanto, cuando se intenta usar da el siguiente mensaje de error:

R1(config-router)#router-id ?      
  A.B.C.D  OSPF router-id in IP address format

R1(config-router)#router-id 0.0.0.0
% OSPF: 0.0.0.0 is not a valid router-id

Para poder asignar un Router ID, se tiene el siguiente orden de precedencia:

  1. Configuración manual: a través del comando router-id es posible asignar manualmente el valor a cada proceso de OSPF.
    R1(config)#router ospf 1
    R1(config-router)#router-id 0.0.0.1
    R1(config-router)#
  2. Interfaz loopback con la dirección IPv4 más alta: en caso de que no se tenga configurado de forma manual el Router ID, los routers utilizan la dirección IPv4 más alta configurada en las interfaces loopback, pero esta debe estar en estado UP/UP (en shutdown no son tomadas en cuenta).
    R1(config)#int lo0
    R1(config-if)# 
    *May 15 12:22:25.991: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
    R1(config-if)#ip add 200.0.0.1 255.255.255.255
    R1(config-if)#int lo20
    R1(config-if)# 
    *May 15 12:22:47.135: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback20, changed state to up
    R1(config-if)#ip add 10.10.10.1 255.255.255.255
    R1(config-if)#int lo99
    R1(config-if)#
    *May 15 12:23:03.475: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback99, changed state to up
    R1(config-if)#ip add 200.200.200.1 255.255.255.255
    R1(config-if)#shutdown
    R1(config-if)#
    *May 15 12:23:20.223: %LINK-5-CHANGED: Interface Loopback99, changed state to administratively down
    *May 15 12:23:21.223: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback99, changed state to down
    R1(config-if)#router ospf 1
    R1(config-router)#do sh ip protocols
    *** IP Routing is NSF aware ***
    
    Routing Protocol is "ospf 1"
      Outgoing update filter list for all interfaces is not set
      Incoming update filter list for all interfaces is not set
      Router ID 200.0.0.1
      Number of areas in this router is 0. 0 normal 0 stub 0 nssa
      Maximum path: 4
      Routing for Networks:
      Routing Information Sources:
        Gateway         Distance      Last Update
      Distance: (default is 110)
    

    Como podemos ver, la dirección IPv4 más alta de las interfaces loopback es 200.200.200.1, pero esta interfaz (loopback99) se encuentra administrativamente abajo (shutdown), por lo tanto, la dirección de la loopback0 (que es la siguiente más alta y está en estado UP/UP) es usada.

  3. Interfaz física con la dirección IPv4 más alta: y por último, si no se tiene el valor de Router ID configurado de forma manual, o una interfaz loopback creada en estado UP/UP, es utilizada la dirección IPv4 de una interfaz física como valor para este parámetro. Solo es necesario que la interfaz se encuentre en estado UP/UP o DOWN/DOWN para poder ser utilizada, pero no administrativamente abajo (shutdown).
    R1(config)#int f0/0
    R1(config-if)#no sh
    R1(config-if)#
    *May 15 12:33:56.055: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to down
    R1(config-if)#ip add 192.168.10.1 255.255.255.0
    R1(config-if)#int f1/0                         
    R1(config-if)#no sh
    R1(config-if)#
    *May 15 12:34:26.699: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up
    *May 15 12:34:27.699: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0, changed state to up
    R1(config-if)#ip add 172.16.1.1 255.255.255.0
    R1(config-if)#int f1/1                       
    R1(config-if)#ip add 200.10.10.2 255.255.255.0
    R1(config-if)#router ospf 1
    R1(config-router)#do sh ip protocols
    *** IP Routing is NSF aware ***
    
    Routing Protocol is "ospf 1"
      Outgoing update filter list for all interfaces is not set
      Incoming update filter list for all interfaces is not set
      Router ID 192.168.10.1
      Number of areas in this router is 0. 0 normal 0 stub 0 nssa
      Maximum path: 4
      Routing for Networks:
      Routing Information Sources:
        Gateway         Distance      Last Update
      Distance: (default is 110)
    
    R1(config-router)#do sh ip int brief
    Interface                  IP-Address      OK? Method Status                Protocol
    FastEthernet0/0            192.168.10.1    YES manual down                  down    
    FastEthernet1/0            172.16.1.1      YES manual up                    up      
    FastEthernet1/1            200.10.10.2     YES manual administratively down down

    Como se puede notar, aunque la interfaz Fa0/0 se encuentre DOWN/DOWN, es utilizada como Router ID, pero en el caso de la interfaz Fa1/1, como se encuentra en estado administrativamente abajo, no es utilizada.

Es necesario tener en cuenta que al momento de tener múltiples procesos de OSPF, o múltiples VRFs, cada uno de estos debe tener diferentes Router ID:

R1(config)#router ospf 1
R1(config-router)#
*Mar  1 00:00:32.823: %OSPF-4-NORTRID: OSPF process 1 failed to allocate unique router-id and cannot start
R1(config-router)#router-id 1.1.1.1
R1(config-router)#router ospf 2 vrf red
R1(config-router)#router-id 1.1.1.1
OSPF: router-id 1.1.1.1 in use by ospf process 1
R1(config-router)#
*Mar  1 00:00:53.583: %OSPF-4-NORTRID: OSPF process 2 failed to allocate unique router-id and cannot start
R1(config-router)#router ospf 3
R1(config-router)#
*Mar  1 00:01:05.359: %OSPF-4-NORTRID: OSPF process 3 failed to allocate unique router-id and cannot start
R1(config-router)#router-id 1.1.1.1
OSPF: router-id 1.1.1.1 in use by ospf process 1
R1(config-router)#

Cuando se encuentre realizada la vecindad con otro equipo OSPF, no es posible cambiar el Router ID sin antes limpiar el proceso de este, pero hay que tener en cuenta que si se limpia el proceso del protocolo toda la red converge otra vez, aplicando una carga a esta, y en algunos casos, puede producir problemas. Por lo mismo, se recomienda hacer la limpieza del protocolo en un horario no productivo, o asignar el Router ID antes de crear vecindades en OSPF.

Para limpiar el proceso de OSPF se utiliza el comando clear ip ospf process:

R1(config)#do sh ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.10.2      1   FULL/DR         00:00:37    192.168.10.2    FastEthernet0/0
R1(config)#router ospf 1         
R1(config-router)#router-id 1.1.1.1
% OSPF: Reload or use "clear ip ospf process" command, for this to take effect
R1(config-router)#do clear ip ospf process
Reset ALL OSPF processes? [no]: yes
R1(config-router)#
*May 15 19:42:27.231: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.10.2 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached
R1(config-router)#
*May 15 19:43:09.355: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.10.2 on FastEthernet0/0 from LOADING to FULL, Loading Done
R1(config-router)#

Para validar el Router ID, usar los siguientes comandos:

  • show ip ospf
  • show ip protocols
  • show ip ospf database
  • show ip ospf neighbor

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *