How can I configure a BIRD router to communicate to a neighbor on a different subnet with RIPv2?

Travis Pressler travis.pressler at scientiallc.com
Mon Jul 25 22:58:53 CEST 2016


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


More information about the Bird-users mailing list