[Xorp-users] AF_NETLINK NLMSG_ERROR message: File exists

Xavier Brouckaert xbr@info.ucl.ac.be
Fri, 08 Oct 2004 10:30:21 +0200


Pavlin,

> Below are some suggestions how to get around this problem:
> 
>  a) Modify your /etc/network/interfaces setup to explicitly set
>     the broadcast address to its correct value. Though, I have to
>     admit that I am not familiar with the Debian network interfaces
>     setup, hence I don't know whether this is actually possible.
>     Alternatively, if you don't need that particular interface
>     being configured on startup, then don't configure it inside
>    /etc/network/interfaces, and let it be configured by XORP only.
> 
>  b) Modify your XORP configuration to specify broadcast address of
>     10.255.255.255 so there won't be mismatch in the broadcast address
>     when XORP tries to set the interface.
> 
>  c) Identify the Debian start-up software bug that sets incorrectly
>     the broadcast address and fix it :)
> 
> Regards,
> Pavlin

Solution a) is possible :
iface eth1 inet static
        address 10.0.0.1
        netmask 255.255.255.0
        broadcast 10.0.0.255

I searched the debian mailing lists for this
problem.  /etc/network/interfaces is used by package ifupdown.  ifup and
ifdown call ifconfig without calculating the broadcast address from the
netmask.

>From http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=122792 :
"well yes, on the other hand, the kernel has a problem, that he is
unable to guess the right broadcast since netmask and ip are set with
two ioctls. One option would be to make ifconfig be more "user
friendly" (and add a raw mode switch), the other option would be to use
a new more complete configure function, i.e. netlink."

ip addr add dev eth1 10.0.0.1/24 -> bcast = 0.0.0.0
ifconfig eth1 10.0.0.1 netmask 255.255.255.0 -> bcast = 10.255.255.255

I think both suck... The bcast address should be computed from the
ip/netmask when there is no mention on the command line... And
interfaces(5) should mention that it is dangerous to not set the
broadcast address in /etc/network/interfaces.

Anyway, XORP is not guilty at all :)

Thanks for the help Pavlin!
-- 
Xavier Brouckaert <xbr@info.ucl.ac.be>
UCL