Protocol NHRP (DMVPN)
Caution
- This Router App has been tested on a router with firmware version 6.3.10. After updating the router firmware to a higher version, check whether a newer version of the Router App has also been released and update it accordingly for compatibility.
Description
The Next Hop Resolution Protocol (NHRP) plays a role in Dynamic Multipoint Virtual Private Network (DMVPN). A limitation of NHRP is its inability to improve multicast protocols.
Installation
Like every other Router App, NHRP is installed in the Router Apps section of the router's configuration page. Once installation is complete, the app appears in the list of installed apps. The Router App provides a web interface with Status and Configuration sections.

How to Use
Status
The Status Overview page shows the current state of the NHRP Router App and information about the active configuration.

The System Log page contains a record of system messages from the device.

Configuration
Go to the Router Apps page and click NHRP to configure the Router App. Enable the Enable NHRP checkbox and enter the configuration commands in the fields.

Field /var/nhrp/opennhrp.conf — insert the following configuration to register the appropriate interface to the NHRP headquarter hub router and set other required parameters (edit to match your setup):
interface gre1
map 192.168.234.1/24 10.40.29.128 register
holding-time 60
shortcut
redirect
non-cachingField /var/nhrp/opennhrp-script — this is the OpenNHRP script that defines behavior in various situations. It can be left unchanged. If accidentally modified, use the following default content:
#!/bin/sh
case $1 in
interface-up)
ip route flush proto 42 dev $NHRP_INTERFACE
ip neigh flush dev $NHRP_INTERFACE
;;
peer-register)
;;
peer-up)
if [ -n "$NHRP_DESTMTU" ]; then
ARGS=`ip route get $NHRP_DESTNBMA from $NHRP_SRCNBMA | head -1`
ip route add $ARGS proto 42 mtu $NHRP_DESTMTU
fi
echo "Create link from $NHRP_SRCADDR ($NHRP_SRCNBMA) to $NHRP_DESTADDR ($NHRP_DESTNBMA)"
/etc/init.d/ipsec start
;;
peer-down)
echo "Delete link from $NHRP_SRCADDR ($NHRP_SRCNBMA) to $NHRP_DESTADDR ($NHRP_DESTNBMA)"
if [ "$NHRP_PEER_DOWN_REASON" != "lower-down" ]; then
/etc/init.d/ipsec stop
fi
ip route del $NHRP_DESTNBMA src $NHRP_SRCNBMA proto 42
;;
route-up)
echo "Route $NHRP_DESTADDR/$NHRP_DESTPREFIX is up"
ip route replace $NHRP_DESTADDR/$NHRP_DESTPREFIX proto 42 via $NHRP_NEXTHOP dev $NHRP_INTERFACE
ip route flush cache
;;
route-down)
echo "Route $NHRP_DESTADDR/$NHRP_DESTPREFIX is down"
ip route del $NHRP_DESTADDR/$NHRP_DESTPREFIX proto 42
ip route flush cache
;;
esac
exit 0Click Apply to save all changes. Use the same procedure for all spoke routers — the NHRP configuration is identical for all spokes.