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, [email protected] 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.


Reply via email to