So now we talked about a somewhat more specialized routing protocol, let’s talk about a protocol that probably only a few of you would know about here.
On Demand Routing!
ODR is a CDP based routing protocol for hub and spoke networks. Do you need to know about it? Nope! Will you ever see it? Probably not! Why am I doing this? I’M DRUNK!
To show you this highly advanced protocol I setup a simple 3 router DMVPN like so. It was typically done with serial interfaces but VIRL doesn’t do serial interfaces so DMVPN it is. We’ll need to enable CDP on the tunnel as well.
R01
R01(config)#interface Tunnel123 R01(config-if)# ip address 10.0.123.1 255.255.255.0 R01(config-if)# ip nhrp map multicast dynamic R01(config-if)# ip nhrp network-id 123 R01(config-if)# cdp enable R01(config-if)# tunnel source GigabitEthernet0/1 R01(config-if)# tunnel mode gre multipoint R01(config-if)# tunnel key 123 R01(config-if)# tunnel vrf INET
R02
R02(config)#interface Tunnel123 R02(config-if)# ip address 10.0.123.2 255.255.255.0 R02(config-if)# ip nhrp network-id 123 R02(config-if)# ip nhrp nhs 10.0.123.1 nbma 200.1.1.1 multicast R02(config-if)# cdp enable R02(config-if)# tunnel source GigabitEthernet0/1 R02(config-if)# tunnel mode gre multipoint R02(config-if)# tunnel key 123 R02(config-if)# tunnel vrf INET
R03
R03(config)#interface Tunnel123 R03(config-if)# ip address 10.0.123.2 255.255.255.0 R03(config-if)# ip nhrp network-id 123 R03(config-if)# ip nhrp nhs 10.0.123.1 nbma 200.1.1.1 multicast R03(config-if)# cdp enable R03(config-if)# tunnel source GigabitEthernet0/1 R03(config-if)# tunnel mode gre multipoint R03(config-if)# tunnel key 123 R03(config-if)# tunnel vrf INET
Now that that boring DMVPN is setup lets get ODR moving! All we need to do is enable the protocol on the hub router. Though we can use the network
command to just enable it on classful subnets.
R01(config)#router odr R01(config-router)#
And the spokes will automagically advertise the spoke routers to the hub
R01#show ip route odr | in ^o o 192.168.2.0/24 [160/1] via 10.0.123.2, 00:00:29, Tunnel123 o 192.168.3.0/24 [160/1] via 10.0.123.3, 00:00:13, Tunnel123 o 200.2.2.0/24 [160/1] via 10.0.123.2, 00:00:29, Tunnel123 o 200.3.3.0/24 [160/1] via 10.0.123.3, 00:00:13, Tunnel123
The spokes in turn will learn a default from the hub
R02#show ip route | in ^o o* 0.0.0.0/0 [160/1] via 10.0.123.1, 00:00:39, Tunnel123
Both router R02 and R03 are configured with there tunnel interfaces having the address 10.0.123.2 and yet later R01 shows a route to 10.0.123.3 which isn’t otherwise mentioned anywhere in your configuration.
Could this be a result of blogging while drunk?
Quite possibly, I’ll have a look when sober-er
Just for fun (while drinking Vodka and Mango/Tangerine juice) I tried setting this up on a set up Cisco 3725 routers running “Cisco IOS Software, 3700 Software (C3725-ADVENTERPRISEK9-M), Version 12.4(15)T14, RELEASE SOFTWARE (fc2)” in GNS3 2.0.2. I ran across the problem that there is no nbma parameter to the “ip nhrp nhs” command.
Branch2(config-if)#ip nhrp nhs 10.0.123.1 ?
A.B.C.D IP network served by this NHS
Any ideas as to how to configure this on this particular set of hardware?
Use the older 2 line method.
ip nhrp nhs 10.0.123.1 (<– private tunnel ip of hub)
ip nhrp map multicast 200.1.1.1 (outside NBMA public ip of hub)
– or –
ip nhrp nhs 10.0.123.1 nbma 200.1.1.1 multicast (optional 1 liner config)