Device protocol not recognizing interface address change
Bernardo Figueiredo
bernardopascoalfigueiredo at tecnico.ulisboa.pt
Wed Jul 22 18:50:09 CEST 2015
Hello,
When restarting some routers at the institution I work, sometimes bird
doesn't start announcing any routes until we either restart bird or
restart the device protocol using birdc.
I think this happens due to the init scripts responsible for setting the
network up finishing before the interfaces are fully configured(without
the ip address set up), which allows for the init scripts dependent of
the network init script, like bird, to start running. The problem is
that bird detects that the interfaces are there, but doesn't recognize
that the machine is configured with ip addresses(because the interfaces
aren't fully configured yet) in the networks that it is announcing, so
it doesn't announce the routes.
When this happens:
"bird> show ospf
(...)
Area networks:
10.3.0.0/16 Advertise
10.0.0.0/16 Advertise
(...)
" ( The problem is that the Area networks aren't active).
After restarting the bird process, the output becomes correct(because
now bird is starting with the interfaces fully configured):
"bird> show ospf
Area networks:
10.3.0.0/16 Advertise Active
10.0.0.0/16 Advertise Active
"
We have the device protocol to scan every 10 seconds in our bird.conf:
"protocol device {
scan time 10;
}"
I think that even though when bird first starts it shouldn't immediately
start announcing(because it didn't see that the interfaces ip
addresses), it should after 10 seconds when it scans again, because then
the interfaces are already fully configured.
For example, when radvd starts it complains that the interfaces don't
have ip addresses configured, so it checks every second for the
interfaces until they are fully configured, and the starts running
correctly.
Our current working workaround is make the networking init script wait
for some time before exiting, meaning that when the init dependents
start executing, the interfaces are already fully configured.
This might work for the machine startup, but it doesn't solve the
problem when we add a new ip address in a new network to an already
existing interface and make bird start announcing that network without
restarting bird (or the interface). I haven't checked that the same
behaviour described above happens in this situation, but it should. If
you want me to try it I can.
If I haven't explained some parts clearly just ask and I'll try to
explain it better. Also, if you need any configuration details just ask.
This problems happens in both bird "1.4.5-1~bpo70+1" and "1.5.0-4"
distributed by Debian.
So, my question is, shouldn't the Device protocol scan update see that
the ip addresses of an interface have changed and if so, start
announcing the route.
Thank you,
Bernardo Figueiredo
More information about the Bird-users
mailing list