Thursday, February 20, 2020

EIGRP Router ID

Each EIGRP router has a unique 32-bit router ID (RID) number that is represented the same way as an IP address.
EIGRP automatically selects the highest IP address on any active loopback interface as the router ID. If there is no loopback interface then the highest IP address on any active interface is used. You can also overrule this by manually setting the router ID.
Even though each router should have a unique router ID, it doesn’t matter all that much. Two EIGRP routers with the same router ID will still form a neighbor adjacency. When we use OSPF, the router ID is important to know if you are digging in the OSPF LSDB. When we use EIGRP we don’t really care about the router ID, you don’t need to know it if you are looking at the topology table.
There is one exception to this, when an EIGRP router receives an external route (redistributed route) from a neighbor that has the same router ID then it will not accept it. This is an interesting scenario for a troubleshooting lab so let’s take a closer look at it.

Configuration

To demonstrate this, I’ll use the following two routers:
R1 R2 loopback behind R2
We only need two routers for this. R2 has a loopback interface that we will redistribute in EIGRP. Let’s look at a “normal” scenario first where we have unique router IDs.

EIGRP Unique router IDs

Let’s start with the EIGRP configuration:
R1(config)#router eigrp 12
R1(config-router)#no auto-summary 
R1(config-router)#network 192.168.12.0
R2(config)#router eigrp 12
R2(config-router)#no auto-summary              
R2(config-router)#network 192.168.12.0         
R2(config-router)#redistribute connected metric 1 1 1 1 1
Let’s check the router IDs of these routers:
R1#show ip eigrp topology | include ID
IP-EIGRP Topology Table for AS(12)/ID(192.168.12.1)
R2#show ip eigrp topology | include ID
IP-EIGRP Topology Table for AS(12)/ID(2.2.2.2)
R1 is using the IP address on its FastEthernet interface as the router ID, R2 is using the one on its loopback interface. Let’s verify that R1 has learned network 2.2.2.0 /24:
R1#show ip route eigrp 
     2.0.0.0/24 is subnetted, 1 subnets
D EX    2.2.2.0 [170/2560025856] via 192.168.12.2, 00:04:52, FastEthernet0/0
There it is as expected. This is how it should work…now let’s mess things up by using a duplicate router ID!

EIGRP Duplicate router IDs

Let’s change the router ID of R2 so that it’s the same as the one on R1:
R2(config)#router eigrp 12
R2(config-router)#eigrp router-id 192.168.12.1
R2#show ip eigrp topology 
IP-EIGRP Topology Table for AS(12)/ID(192.168.12.1)
R2#clear ip eigrp neighbors
Even though the router ID is the same, our routers will still become neighbors:
R1#show ip eigrp neighbors 
IP-EIGRP neighbors for process 12
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   192.168.12.2            Fa0/0             14 00:00:05   73   438  0  25
Unfortunately R1 no longer has network 2.2.2.0 /24 in its topology or routing table:
R1#show ip eigrp topology 
IP-EIGRP Topology Table for AS(12)/ID(192.168.12.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status 

P 192.168.12.0/24, 1 successors, FD is 281600
        via Connected, FastEthernet0/0
R1#show ip route eigrp
    
This issue might be hard to spot. You could check all the router IDs by looking at the EIGRP topology table of each router but if you don’t have access to the router that is doing the redistribution then you are out of luck. Maybe a debug will help?
R1#debug ip eigrp    
IP-EIGRP Route Events debugging is on
R1#clear ip eigrp neighbors 
IP-EIGRP(Default-IP-Routing-Table:12): Processing incoming UPDATE packet
IP-EIGRP(Default-IP-Routing-Table:12): ExtS 2.2.2.0/24 M 2560025856 - 2560000000 25856 SM 2560000256 - 2560000000 256
Our debug tells us that we receive 2.2.2.0 /24 so this doesn’t help us, everything looks ok here. There is one hidden command however that will give us the answer:
R1#show ip eigrp ? 
  <1-65535>   Autonomous System
  accounting  IP-EIGRP Accounting
  interfaces  IP-EIGRP interfaces
  neighbors   IP-EIGRP neighbors
  topology    IP-EIGRP Topology Table
  traffic     IP-EIGRP Traffic Statistics
  vrf         Select a VPN Routing/Forwarding instance
R1#show ip eigrp events

Event information for AS 12:
1    01:03:12.263 Ignored route, metric: 2.2.2.0/24 2560025856 
2    01:03:12.263 Ignored route, neighbor info: 192.168.12.2 FastEthernet0/1 
3    01:03:12.263 Ignored route, dup router: 192.168.12.1 
The show ip eigrp events command doesn’t show up in the show ip eigrp overview. When you use it it will show you a history of events, including the route that is ignored.
The output above tells us that 192.168.12.1 is the duplicate router ID. You can use this to change the router ID on R1 to fix the problem…
hostname R1
!
ip cef
!
interface FastEthernet0/0
 ip address 192.168.12.1 255.255.255.0
!
router eigrp 12
 network 192.168.12.0
 eigrp router-id 192.168.12.1
!
end
hostname R2
!
ip cef
!
interface Loopback0
 ip address 2.2.2.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 192.168.12.2 255.255.255.0
!
router eigrp 12
 network 192.168.12.0
 redistribute connected metric 1 1 1 1 1
 eigrp router-id 192.168.12.1
!
end

That’s all there is to it, I hope this example of the EIGRP router ID has been useful. If you have any questions, just leave a comment!

No comments:

Post a Comment