That other other routing protocol – ODR


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(config)#interface Tunnel123
 R01(config-if)# ip address
 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(config)#interface Tunnel123
 R02(config-if)# ip address
 R02(config-if)# ip nhrp network-id 123
 R02(config-if)# ip nhrp nhs nbma 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(config)#interface Tunnel123
 R03(config-if)# ip address
 R03(config-if)# ip nhrp network-id 123
 R03(config-if)# ip nhrp nhs nbma 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

And the spokes will automagically advertise the spoke routers to the hub

R01#show ip route odr | in ^o 
 o [160/1] via, 00:00:29, Tunnel123
 o [160/1] via, 00:00:13, Tunnel123
 o [160/1] via, 00:00:29, Tunnel123
 o [160/1] via, 00:00:13, Tunnel123

The spokes in turn will learn a default from the hub

R02#show ip route | in ^o
 o* [160/1] via, 00:00:39, Tunnel123

4 thoughts on “That other other routing protocol – ODR

  1. The Count

    Both router R02 and R03 are configured with there tunnel interfaces having the address and yet later R01 shows a route to which isn’t otherwise mentioned anywhere in your configuration.

    Could this be a result of blogging while drunk?

  2. The Count

    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 ?
    A.B.C.D IP network served by this NHS

    Any ideas as to how to configure this on this particular set of hardware?

    • John Doe

      Use the older 2 line method.

      ip nhrp nhs (<– private tunnel ip of hub)
      ip nhrp map multicast (outside NBMA public ip of hub)
      – or –
      ip nhrp nhs nbma multicast (optional 1 liner config)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.