OPENNHRP(8)

πŸ“¦ version 0.14.1, in alpine 3.22, alpine 3.23, alpine 3.24

πŸ‘‘ OPENNHRP πŸ’… (that's section 8 of the manual, bestie)

okay so real talk β€” this is opennhrp from the OpenNHRP Documentation, and we're about to get into it. strap in πŸŽ€


✨ NAME ✨

opennhrp β€” the daemon that resolves next hop addresses in NBMA networks. that's the whole vibe. it figures out where to send stuff. icon behavior only πŸ’–


🌸 SYNOPSIS 🌸

opennhrp [option]...

literally just the command plus however many options you want. go off πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so opennhrp implements the Next Hop Resolution Protocol (NHRP, iykyk), and its whole glowy purpose in life is making routing computer network traffic over Non-Broadcast, Multiple Access (NBMA) networks way more efficient. it's giving optimization. it's giving we don't do wasted hops here ✨

NHRP is basically the ARP-like solution for this world β€” it lets a system dynamically learn the NBMA address of the other systems hanging out on that same network. and then? those systems can talk directly to each other, no intermediate hop required. no middleman, no drama, main character communication only πŸ‘‘

this implementation is based on RFC2332, but bestie it's not a straight copy β€” it contains some modifications and extensions so it plays nice with the Cisco NHRP/DMVPN implementation. the specific glow-ups made were for:

  • authentication extension
  • Cisco NAT address extension
  • shortcut switching enhancements support

slay, compatible, periodt πŸ’œ


πŸ’… OPTIONS πŸ’…

the following options are recognized (yes, all of them, we're listing every single one):

  • -a admin-socket β€” sets the management interface socket to admin-socket. the default is /var/run/opennhrp.socket.
  • -c config-file β€” use config-file instead of /etc/opennhrp/opennhrp.conf for your configuration.
  • -s script-file β€” run script-file instead of /etc/opennhrp/opennhrp-script when important events go down.
  • -p pid-file β€” stash the process id in pid-file instead of /var/run/opennhrp.pid. this file is also how the daemon detects whether opennhrp is already running. important caveat bestie: pid-file is not created unless -d is specified too 🫢
  • -d β€” run in daemon mode: it forks to the background after initialization. bye girl, she's got her own life now.
  • -v β€” verbose. prints more log messages. more lore 🌈
  • -V β€” print version and exit. short and sweet.

πŸŽ€ SIGNALS πŸŽ€

  • SIGHUP β€” forget all cached information about other system addresses. memory wiped, fresh start, not me deleting the whole cache πŸ’€
  • SIGUSR1 β€” dump the NHRP peer database to the system log. receipts, in writing πŸ“

🧚 FILES 🧚

  • /etc/opennhrp/opennhrp.conf β€” the system wide configuration file. check out opennhrp.conf(5) for the full details.
  • /etc/opennhrp/opennhrp-script β€” the script opennhrp executes on important events. see opennhrp-script(8) for more info on how the script is executed.
  • /var/run/opennhrp.socket β€” the opennhrp(8) control socket.

πŸ’€ BUGS πŸ’€

okay real talk, some honesty hours:

  • currently only IPv4 over IPv4 networks using NBMA GRE tunnels is supported. and yeah, you need Linux kernel 2.6.24-rc2 or later. no cap, that's the requirement πŸ™ˆ
  • replying with cached information to non-authorative resolution requests is not implemented. it's on the "someday" list bestie 😭
  • please send bug reports to the OpenNHRP issue tracker in SourceForge.

⭐ SEE ALSO ⭐

for more info about the protocol itself, check out:

  • RFC2332 NBMA Next Hop Resolution Protocol (NHRP)
  • RFC2333 NHRP Protocol Applicability Statement

the lore is deep, go read it πŸ¦‹


πŸ’œ AUTHORS πŸ’œ

Timo Teras <timo.teras@iki.fi> β€” the icon behind all this ✨


okay that's the whole page, bestie 🫢 this edition was documented on 16 November 2007 under OpenNHRP Documentation for OPENNHRP(8) β€” go resolve those next hops, you got this πŸ’…πŸ’–

πŸ“¦ where this page comes from