Following up my message from a few days ago. Even the simplest possible config causes a syntax error, despite the interface directive being a sample copied straight from the docs. I tried bird.conf with ONLY these 3 lines: protocol rip { interface -192.168.1.0/24, 192.168.0.0/16; # from https://bird.network.cz/doc/bird-3.html#proto-iface } bird: /usr/local/etc/bird.conf:2:42 Interface name/mask expected, not IP prefix Is this a bug (in either code or docs), or is the interface directive different for RIP? I'm using FreeBSD 12.2 and bird 1.6.8 Thanks. On Tue, 19 Oct 2021, bird21@sensation.net.au wrote:
Hi all,
I want to broadcast a last-resort old-school default route via RIPv1. The following config works:
filter default_route { if net ~ [ 0.0.0.0/0 ] then { accept; } reject; } # ...snip... protocol rip { export filter default_route; interface "em0" { version 1; mode broadcast; update time 5; }; }
...but it only sends to the broadcast address of the main interface IP. How can I get it to send to the broadcast addresses of the aliases as well?
These are the networks on the em0 adapter:
x.x.x.192/28 (main) 192.168.x.0/24 (alias) 192.168.y.0/24 (alias)
After consulting https://bird.network.cz/doc/bird-3.html#proto-iface , I tried the following to force additional/different addresses:
interface x.x.x.193/28 { # actual interface IP/prefix
interface x.x.x.192/28 { # network IP/prefix
interface x.x.x.x { # interface IP only
interface "em0" x.x.x.x { # interface name and IP
interface "em0" x.x.x.x/28 { # interface name and IP/prefix
All of these are rejected with the error "Interface name/mask expected, not IP prefix", regardless of whether I list the main interface IP, or main plus aliases (comma separated).
Am I missing something simple in the syntax, or is the RIPv1 implementation not capable of doing this?
Thanks in advance.