Thursday, January 7, 2010

Interesting EIGRP Scenario



I just discovered some new tricks related to EIGRP while doing some lab stuff. I say "TRICKS" because these implementation which I am gonna show here are not very real world or maybe only required in some rare circumstances. So here is the Task requirement:

EIGRP spokes R2 and R3 should be able to reach loopback addresses of each other....hmmm....sounds quite easy....looks like some CCNP level task...isn't it ?...now here is the twist...second requirement is that routing table should look like as below:

R2(config-router)#do sh ip ro e
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:05:02, Serial0/0
D    75.0.0.0/8 [90/2297856] via 10.0.0.3, 00:06:30, Serial0/0

R3(config-router)#do sh ip ro e
D    50.0.0.0/8 [90/2297856] via 10.0.0.2, 00:07:04, Serial0/0
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:05:36, Serial0/0



Did you notice one thing....R2 see 75.0.0.0 network reachable via next hop address as 10.0.0.3...hmmm...usually it should see 10.0.0.1 as next hop address....so now trick is how exactly they achieved this ?

The first solution I presented here is also valid in situation where lab asks for spoke to spoke connectivity without disabling Split-Horizon on hub.



There are actually two different ways to achieve this....below is the config for both solutions....but just in case you don't know...for get normal reach ability from spoke to spoke without such requirement...we need to disable split horizon on R1's S0/0..because it's a FR hub and spoke network and by default EIGRP uses the split horizon tool as loop prevention system which states that we should never send a update back for a network received on the same interface.




So normal config is here: With first split horizon in affect

--------------------------------------------------------------------
Split horizon in affect

R1(config)#do sh ip in b | e unassigned|down
Interface                  IP-Address      OK? Method Status                Protocol
Serial0/0                  10.0.0.1        YES manual    up                    up
Loopback1               25.25.25.25     YES manual   up                    up

R1(config)#do sh run int s0/0
Building configuration...

Current configuration : 256 bytes
!
interface Serial0/0
 ip address 10.0.0.1 255.0.0.0
 encapsulation frame-relay
 serial restart-delay 0
 frame-relay map ip 10.0.0.1 102
 frame-relay map ip 10.0.0.2 102 broadcast
 frame-relay map ip 10.0.0.3 103 broadcast
 no frame-relay inverse-arp
end

R1(config)#do sh run | s router
router eigrp 88
 network 10.0.0.1 0.0.0.0
 network 25.25.25.25 0.0.0.0
 no auto-summary

R2(config)#do sh ip in b | e unassigned|down
Interface                  IP-Address      OK? Method Status                Protocol
Serial0/0                  10.0.0.2          YES manual up                    up
Loopback1                50.50.50.50     YES manual up                    up

R2(config)#do sh run int s0/0
Building configuration...

Current configuration : 246 bytes
!
interface Serial0/0
 ip address 10.0.0.2 255.0.0.0
 encapsulation frame-relay
 serial restart-delay 0
 frame-relay map ip 10.0.0.1 201 broadcast
 frame-relay map ip 10.0.0.2 201
 frame-relay map ip 10.0.0.3 201
 no frame-relay inverse-arp
end

R2(config)#do sh run | s router
router eigrp 88
 network 10.0.0.0
 network 50.50.50.50 0.0.0.0
 no auto-summary

R3(config)#do sh ip in b | e unassigned|down
Interface                  IP-Address      OK? Method Status                Protocol
Serial0/0                     10.0.0.3        YES manual up                    up
Loopback1                  75.75.75.75     YES manual up                    up

R3(config)#do sh run int s0/0
Building configuration...

Current configuration : 246 bytes
!
interface Serial0/0
 ip address 10.0.0.3 255.0.0.0
 encapsulation frame-relay
 serial restart-delay 0
 frame-relay map ip 10.0.0.1 301 broadcast
 frame-relay map ip 10.0.0.2 301
 frame-relay map ip 10.0.0.3 301
 no frame-relay inverse-arp
end

R3(config)#do sh run | s router
router eigrp 88
 network 10.0.0.3 0.0.0.0
 network 75.75.75.75 0.0.0.0
 auto-summary

R1(config)#do sh ip ro e
D    50.0.0.0/8 [90/2297856] via 10.0.0.2, 00:16:24, Serial0/0
D    75.0.0.0/8 [90/2297856] via 10.0.0.3, 00:15:04, Serial0/0

R2(config)#do sh ip ro e
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:16:49, Serial0/0

R3(config)#do sh ip ro e
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:15:52, Serial0/0



Now lets disabled the split-horizon:
-------------------------------------------


R1(config)#int s0/0
R1(config-if)#no ip split-horizon eigrp 88

R2(config)#do sh ip route e
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:19:33, Serial0/0
D    75.0.0.0/8 [90/2809856] via 10.0.0.1, 00:00:55, Serial0/0

R3(config)#do sh ip ro e
D    50.0.0.0/8 [90/2809856] via 10.0.0.1, 00:01:14, Serial0/0
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:18:37, Serial0/0


------------------------------------------------------------------------
Now lets Turned Split Horizon on R1 Back ON to get what we were asked for

R1(config-if)#ip split-horizon eigrp 88


So here is the first solution:

----------------------------------

Configure Neighbors:

R1(config-if)#router eigrp 88
R1(config-router)#nei 10.0.0.2 s0/0
R1(config-router)#nei 10.0.0.3 s0/0

R2(config-router)#do sh run | s router
router eigrp 88
 network 10.0.0.0
 network 50.50.50.50 0.0.0.0
 no auto-summary
 neighbor 10.0.0.1 Serial0/0
 neighbor 10.0.0.3 Serial0/0

R3(config-router)#do sh run | s router
router eigrp 88
 network 10.0.0.3 0.0.0.0
 network 75.75.75.75 0.0.0.0
 auto-summary
 neighbor 10.0.0.1 Serial0/0
 neighbor 10.0.0.2 Serial0/0


R2(config-router)#do sh ip ro e
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:05:02, Serial0/0
D    75.0.0.0/8 [90/2297856] via 10.0.0.3, 00:06:30, Serial0/0

R3(config-router)#do sh ip ro e
D    50.0.0.0/8 [90/2297856] via 10.0.0.2, 00:07:04, Serial0/0
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:05:36, Serial0/0



Now Solution 2:
-------------------
R1(config-if)#no ip next-hop-self eigrp 88
R1(config-if)#no ip split-horizon eigrp 88

R2(config-router)#do sh ip ro e
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:05:01, Serial0/0
D    75.0.0.0/8 [90/2809856] via 10.0.0.3, 00:00:09, Serial0/0

R2(config-router)#do sh ip ei n
IP-EIGRP neighbors for process 88
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   10.0.0.1                Se0/0            139 00:08:58 1058  5000  0  17

R3(config-router)#do sh ip ei n
IP-EIGRP neighbors for process 88
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   10.0.0.1                Se0/0            153 00:09:41  156   936  0  17

R3(config-router)#do sh ip ro e
D    50.0.0.0/8 [90/2809856] via 10.0.0.2, 00:04:54, Serial0/0
D    25.0.0.0/8 [90/2297856] via 10.0.0.1, 00:09:45, Serial0/0



Regards,
Deepak Arora













2 comments:

bluephoenix71 said...

Hi,

I tried on IOL switches with 15.5 image, but it seems I can't replicate the first solution where you enabled split-horizon for EIGRP and configured neighbor statements inside the EIGRP protocol...
================================================
R1-HQ
interface Serial1/0
ip address 192.168.1.254 255.255.255.0
encapsulation frame-relay
logging event subif-link-status
logging event dlci-status-change
serial restart-delay 0
frame-relay map ip 192.168.1.254 102
frame-relay map ip 192.168.1.252 102 broadcast
frame-relay map ip 192.168.1.253 103 broadcast
no frame-relay inverse-arp

router eigrp 77
network 10.10.10.0 0.0.0.255
network 192.168.1.0
neighbor 192.168.1.252 Serial1/0
neighbor 192.168.1.253 Serial1/0
passive-interface default
no passive-interface Serial1/0

R1-HQ(config-router)#do sibu
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 10.10.10.254 YES NVRAM up up
Serial1/0 192.168.1.254 YES NVRAM up up

================================================
R2-BR
interface Serial1/0
ip address 192.168.1.252 255.255.255.0
encapsulation frame-relay
logging event subif-link-status
logging event dlci-status-change
serial restart-delay 0
frame-relay map ip 192.168.1.254 201 broadcast
frame-relay map ip 192.168.1.252 201
frame-relay map ip 192.168.1.253 201
no frame-relay inverse-arp

router eigrp 77
network 20.20.20.0 0.0.0.255
network 192.168.1.0
neighbor 192.168.1.254 Serial1/0
neighbor 192.168.1.253 Serial1/0
passive-interface default
no passive-interface Serial1/0

R2-BR(config-router)#do sibu
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 20.20.20.254 YES manual up up
Serial1/0 192.168.1.252 YES NVRAM up up

================================================
R3-BR
interface Serial1/0
ip address 192.168.1.253 255.255.255.0
encapsulation frame-relay
logging event subif-link-status
logging event dlci-status-change
serial restart-delay 0
frame-relay map ip 192.168.1.254 301 broadcast
frame-relay map ip 192.168.1.253 301
frame-relay map ip 192.168.1.252 301
no frame-relay inverse-arp

R3-BR(config-router)#do sh run | s r e
router eigrp 77
network 30.30.30.0 0.0.0.255
network 192.168.1.0
neighbor 192.168.1.254 Serial1/0
neighbor 192.168.1.252 Serial1/0
passive-interface default
no passive-interface Serial1/0

R3-BR(config-router)#do sibu
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 30.30.30.254 YES manual up up
Serial1/0 192.168.1.253 YES NVRAM up up

================================================
R1-HQ(config-router)#
20.0.0.0/24 is subnetted, 1 subnets
D 20.20.20.0 [90/2195456] via 192.168.1.252, 00:08:09, Serial1/0
30.0.0.0/24 is subnetted, 1 subnets
D 30.30.30.0 [90/2195456] via 192.168.1.253, 00:07:25, Serial1/0


R2-BR(config-router)#
10.0.0.0/24 is subnetted, 1 subnets
D 10.10.10.0 [90/2195456] via 192.168.1.254, 00:08:09, Serial1/0


R3-BR(config-router)#
10.0.0.0/24 is subnetted, 1 subnets
D 10.10.10.0 [90/2195456] via 192.168.1.254, 00:07:25, Serial1/0


Would you please check if I missed something?

Anonymous said...

On interesting eigrp scenario,

I tried this using IOL or IOU... it seems that the first solution does not work... Can you please try to explain how enabling split-horizon, statically configure frame relay map ip on full mesh style and doing neighbor full mesh style on eigrp will do the trick?


Thanks.