RIP: Difference between revisions
added detailed differences and explanations of the protocol from Marius, YO2LOJ |
No edit summary |
||
Line 54: | Line 54: | ||
* [[ampr-ripd]], a C based routing daemon | * [[ampr-ripd]], a C based routing daemon | ||
* [[rip44d]], a PERL based routing daemon | * [[rip44d]], a PERL based routing daemon | ||
A program is also available for [https://www.openbsd.org/ OpenBSD]: | |||
* [https://github.com/dancrossnyc/44ripd 44ripd] | |||
= Availability/Compatibility = | = Availability/Compatibility = |
Revision as of 17:12, 8 January 2021
Information about other AMPRNet gateways can now be received dynamically via modified RIPv2 advertisements. Previously, routes were obtained by creating a munge script that parsed Encap.txt.
What's the difference?
There is a big difference in how the packets are processed.
The regular RIPv2 sets a route to a specific subnet via the sender and interface where the RIP broadcast was received on. The gateway information is used only as an optimization element, in case a route with to that gateway already exists so that the one with the lower metric gets chosen.
In our case, we use the RIP announcements to transport the subnet AND gateway information.
Detailed description
So, assuming a point to multipoint interface, if there is let's say an announcement 44.128.0.0/24 via 1.2.3.4 coming from 44.0.0.1 on the ipip0 interface, regular RIPv2 would translate this to:
44.128.0.0/24 via 44.0.0.1 if ipip0
while ampr rip would translate this to:
44.128.0.0/24 via 1.2.3.4 if ipip0
In the first case, traffic to 44.128.0.0/24 is sent directly to the gateway (the RIP sender), while in the second case it is encapsulated to 1.2.3.4.
On a mikrotik router it even goes a step further: it creates a ipip tunnel interface, ampr-1.2.3.4 to 1.2.3.4 and creates a route
44.128.0.0/24 via ampr-1.2.3.4
This is the processing in the usual case, for 44 subnets having a 44net gateway we assume that the gateway is published by BGP and is directly reachable, so for a announcement like 44.128.0.0/24 via 44.128.0.1 there are 2 route set:
44.128.0.1 via default-gw (which is autodetected), and 44.128.0.0/24 via 44.128.0.1 if ipip0 to do the encapsulation
So, while the information structure in both cases conforms to the RIPv2 specifications, its usage is completely different.
RIP44 Daemons
Two programs are available for GNU/Linux to utilize these updates:
A program is also available for OpenBSD:
Availability/Compatibility
The RIP44 daemons have been tested and known to work on the following operating systems:
- BSD
- OpenWRT/LEDE
- Raspbian
- Slackware Linux
- Ubuntu/Debian Linux
- Vyatta/VyOS
Non-RIP44 Workarounds
The devices below do not possess a known, end-user method to install additional software (i.e. ampr-ripd). Operators have developed scripts to parse inbound routing packets to make them compatible for usage on AMPRNet:
- Cisco IOS (a separate machine must run the script) : look here http://wiki.ampr.org/wiki/Setting_up_a_gateway_on_Cisco_Routers at the "Making the route commands automatically" section
- JunOS
- MikroTik : look here http://www.yo2loj.ro/hamprojects/ at the "Mikrotik RIPv2 AMPR Gateway Setup Script 3.0"
- Ubiquiti OS
See Also
- startampr - a script that loads the routing daemon on boot on Linux server-type devices
- Instructions for setting up a tunnel gateway on Linux
- Instructions for setting up a gateway on OpenWRT