M6XCV has written a RIP44 daemon in Lua. The expected primary use case is OpenWRT/LEDE based devices, however the script was developed on Debian and should work on any Linux platform with the appropriate libraries. The script is currently considered experimental, having received only limited testing on a couple of devices.
The script should only require Lua and the LuaSocket module to work. As well as the IPIP kernel module, of course. If you do not have the "ip" command installed then you will also need this.
I have provided an OpenWRT package which should install the required dependencies.
SSH in to your device and run the following commands:
- opkg update
- opkg install wget libustream-openssl ca-bundle ca-certificates (to support HTTPS for the download)
- wget https://raw.githubusercontent.com/NotMikeDEV/RIP44/master/rip44_2019.04.07-1_all.ipk
- opkg install rip44_2019.04.07-1_all.ipk
You then need to edit /etc/rip44.conf to specify your AMPRNet allocation. Once this is done, reboot to load the required modules and start the daemon.
If the configuration setting GATEWAY is false then it will use your normal default route for Internet-based destinations, set it to the main gateways IP address to use that instead. You might also want to change SAVE_FILE to a different location.
Once you have received a broadcast, check your routing table. By default it will use routing table 44, therefore you need to use the command
ip route list table 44 to check. Broadcasts are sent every 5 minutes, so you will have to wait for the next broadcast to confirm everything is working.
You should not need to wait for a RIP broadcast before the routes appear after the initial run.
If you have just added your gateway to the portal then you may need to wait an hour or so before you start receiving broadcasts.
Other Linux systems
Get the script by cloning https://github.com/NotMikeDEV/RIP44 you will need to place rip44.conf in /etc/rip44.conf and rip44.lua in an appropriate directory. You will also need to set rip44.lua to run on startup. Further instructions are distro-specific, but anyone familiar with Linux should be able to figure it out. Startup scripts are not currently provided for distributions other than OpenWRT as it is felt that another routing daemon is probably more appropriate on platforms with full toolchains. This script is primarily designed for OpenWRT devices where binary releases are awkward to build.
Perform a TraceRoute from one of your AMPRNet IP addresses to 220.127.116.11 and ensure it does *not* go through your ISP. By default the script adds the specified address to your tunnel interface, so if your network allocation is 18.104.22.168/29 you could test from the router with the command
traceroute 22.214.171.124 -s 126.96.36.199. Note that this does not stop you from assigning your allocation to an Ethernet interface.
If traffic appears to be blocked, you may need to add the interface (tunl0) in the OpenWRT web interface and add it to a firewall zone. It depends on your firewall configuration for if this will be needed or not, you may also need to set your WAN interface to ALLOW inbound traffic to receive the IPIP encapsulated packets. The requirements for OpenWRT network configuration should be the same as with other daemons, so if you have previously set up another routing daemon it should work the same with this one.
Check out the Services page for other hosts you can run tests to.
This script will set up your routing with a separate routing table for your 44Net prefix. This means other traffic will continue to use your normal Internet connection. Only traffic from your 44/8 prefix will be routed through the tunnels. If you wish for all traffic to come from a 44Net IP you will need to adjust the routing and NAT accordingly.
This script is experimental, please let email@example.com know if you are using this script and if it worked or not. If you have any problems then contact me and I will look in to it.