How can I configure a BIRD router to communicate to a neighbor on a different subnet with RIPv2?
I'm attempting to set up basic communication with the RIPv2 protocol with BIRD v1.6.0. I've got `Host A` with an interface `enp0` that has address `10.0.1.50/24`. I've got another host `Host B` with an interface `enp1` that has address `10.1.1.25/24`. These interfaces are directly connected by cable. I can ping between both machines if I add a static route on both machines. I have the following `bird.conf` on `Host A`: protocol kernel { learn; # Learn all alien routes from the kernel persist; # Don't remove routes on bird shutdown scan time 20; # Scan kernel routing table every 20 seconds export all; # Default is export none } protocol device { scan time 10; # Scan interfaces every 10 seconds } protocol direct { interface "enp0" } protocol rip MyRIP { export all; import all; interface "enp0" { mode multicast;}; } The `bird.conf` on `Host B` is identical except the `enp0` is replaced with `enp1` After starting the bird daemon on both hosts, I can do a `tcpdump -ni enp0 -vv` 13:21:41.943537 IP (tos 0xc0, ttl 1, id 4933, offset 0, flags [none], proto UDP (17), length 132) 10.1.1.25.520 > 224.0.0.9.7742: [udp sum ok] UDP, length 104 13:21:41.943704 IP (tos 0xc0, ttl 1, id 150, offset 0, flags [none], proto UDP (17), length 272) 10.0.1.50.520 > 224.0.0.9.7742: [bad udp cksum 0xec48 -> 0x1219!] UDP, length 244 I can hop inside the `birdcl` command-line and run `show rip neighbors` and get an empty table. If I set the addresses to be on the same subnet, I can run `show rip neighbors` and I can see `10.0.1.50` in my lists of neighbors. If I run 'echo all' in the bird command line I see this message: >>> MyRIP: Bad packet from 10.1.1.25 via enp2s0f0 - not from neighbor (0) How can I get these routers to list each other as neighbors if the two ends of the link aren't on the same subnet? Best Regards, Travis Pressler
On Mon, Jul 25, 2016 at 04:58:53PM -0400, Travis Pressler wrote:
I'm attempting to set up basic communication with the RIPv2 protocol with BIRD v1.6.0.
I've got `Host A` with an interface `enp0` that has address `10.0.1.50/24`. I've got another host `Host B` with an interface `enp1` that has address `10.1.1.25/24` These interfaces are directly connected by cable. I can ping between both machines if I add a static route on both machines. ... If I run 'echo all' in the bird command line I see this message:
>>> MyRIP: Bad packet from 10.1.1.25 via enp2s0f0 - not from neighbor (0)
How can I get these routers to list each other as neighbors if the two ends of the link aren't on the same subnet?
Such configuration is not allowed, as the source address check is required by RIPv2 specification, RFC 2453: The datagram's IPv4 source address should be checked to see whether the datagram is from a valid neighbor; the source of the datagram must be on a directly-connected network. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
participants (2)
-
Ondrej Zajicek -
Travis Pressler