ampr-ripd(8)

πŸ’– NAME πŸ’–

okay bestie, meet ampr-ripd β€” the routing daemon for AMPRNet gateways, v2.4.1, and she is serving πŸ’…


✨ SYNOPSIS ✨

ampr-ripd [-?|-h] [-d] [-v] [-s] [-r] [-i <interface>] [-a
<ip|hostname|subnet>[,<ip|hostname|subnet>...]] [-p <password>] [-m
<metric>]  [-w <window>] [-f <interface>] [-e <ip>] [-F <interface>] [-E
<ip>] [-x <system command>] [-g <gateway>]

(also -t <table>, -L <callsign@locator> and -g <gateway> are out here living their best life, the synopsis just ran out of room 🫢)


🌸 DESCRIPTION 🌸

so basically, AMPRnet is a RIPv4 Listener and route injector daemon, and it's the one that hangs out with AMPRnet gateways. that's the whole vibe. she listens, she injects routes, she slays. πŸ”₯


πŸ‘‘ OPTIONS πŸ‘‘

  • -?, -h β€” usage info, the classic "help me bestie" button πŸŽ€
  • -d β€” debug mode, babes: no daemonization, verbose output. she stays right where you can see her.
  • -v β€” even more verbose debug output. but real talk: using this option without debug leaves the console attached. so like, heads up. πŸ™ˆ
  • -s β€” saves routes to /var/lib/ampr-ripd/encap.txt in encap format. and if that file already exists, it will be loaded on startup regardless of this option β€” yes, no matter what, it's showing up. that file has main character energy.
  • -r β€” uses a raw listening socket, for systems with broken multicast support. for the girls whose multicast is not multicasting πŸ’€
  • -i <interface> β€” the tunnel interface to use. defaults to tunl0.
  • -t <table> β€” the routing table to use. defaults to 'main'. (but see KNOWN ISSUES below, bestie, because she has thoughts about this one 😭)
  • -a <ip>[,<ip>...] β€” a comma separated list of IPs, hostnames or ampr subnets to be ignored. subnets can be in full network/mask format (e.g. 44.182.20.0/24) or in encap format (e.g. 44.182.20/24), but they MUST match an entry in the RIP broadcast β€” no cap, that part is mandatory. if a hostname is used, its IP will be re-resolved 30 sec after every RIP broadcast. the list contains local interface IPs by default. πŸ¦‹
  • -m <metric> β€” the metric to use when setting routes. numerical value from 0 to 255. defaults to 0.
  • -w <window> β€” sets the TCP window size to a given value (defaults to 840). this is needed since IP over AX.25 connections have small TCP window size. a value of 0 disables setting the window size β€” not recommended, the default value should be ok. don't be a rebel, girlie. 🌸
  • -p <password> β€” the RIPv2 password. defaults to the current valid password. use only if the password should ever change. iykyk πŸ”
  • -f <interface> β€” interface for RIP forwarding. defaults to none/disabled.
  • -e <ip> β€” RIP forward destination IP. defaults to 224.0.0.9 if enabled.
  • -F <interface> β€” interface for AMPR RIP forwarding. defaults to none/disabled.
  • -E <ip> β€” AMPR RIP forward destination IP. defaults to 224.0.0.9 if enabled.
  • -x <system command> β€” execute this system command after route set/change. if the command includes white spaces, use quotes. ✨
  • -g <gateway> β€” gateway for direct 44net connections. accepts a gateway IP or an interface name. if not set, it will be auto-detected. she's independent, she figures it out πŸ’…
  • -L <callsign@locator> β€” this parameter will enable the sending of a callsign@locator string (actually, any string) to my home gateway at udp:44.182.21.1:59001. the string will be sent at startup, and then every 5 minutes. on termination, a "shutdown" string will be sent. on HUP, the string will be sent immediately and the cycle restarted. the purpose of this option is to allow the construction of a dynamic map of all ampr-ripd gateways for visual display. if the parameter is not set, no data will be sent. so like, no string, no map, no drama. πŸŽ€
  • Observation β€” all routes are created with netlink protocol 44 for easy management. cute, organized, iconic. ✨

🚨 SIGNALS 🚨

  • on signal SIG_HUP, ampr-ripd will delete all set routes, but will remain active β€” so routes will be set again on next received RIPv2 set, and the saved encap file updated. she's not leaving, she's just resetting her energy. 🧚
  • on signal SIG_TERM (exit), ampr-ripd will delete all set routes and exit. and then she's gone, periodt. πŸ’€

πŸ” DEBUG πŸ”

with the default debug level, using the -d option, the daemon will stay in the foreground and allow you to find the RIPv2 password if needed (see the find_pass.sh shell script). to have full debug output, it has to be compiled with -D HAVE_DEBUG or by uncommenting the right DOPT line. the way that this is literally a little detective moment πŸ”₯


🌈 AUTHOR 🌈

Author: Marius Petrescu, YO2LOJ, <marius@yo2loj.ro> β€” we love a legend 🫢


😭 KNOWN ISSUES 😭

okay so these are real, bestie, don't say i didn't warn you.

when using other table than 'main', interrogating the routes via netlink does not work properly. this means that on any update, the route is deleted and then recreated, even if it is already set correctly. this should be no problem since this happens only at startup on encap loading and on route change. so like, it's a little extra, but it's fine. πŸ™ˆ

for BGP announced 44net endpoints, only a single subnet may be assigned to a given endpoint. that's the rule, no exceptions, no overachieving. πŸ’…


and that's the whole page, girlie ✨ this was ampr-ripd, source ampr-ripd, dated December 2021, living in section 8 as ampr-ripd(8). go forth and route responsibly πŸ’–πŸŽ€πŸ¦‹