RIP not doing "triggered update" following route deletion

Tore Anderson tore at fud.no
Wed Feb 5 11:13:17 CET 2014


I've noticed that BIRD doesn't withdraw (i.e., advertising them with
metric 16) RIP routes when they disappear from the routing table. This
means that the neighbour router ends up waiting for the route to time
out before ceasing to send traffic to the BIRD router, rather than doing
so immediately.

I'm running v1.4.0 with a bird.conf containing:

log syslog { info, remote, warning, error, auth, fatal };
router id 192.0.2.1;
protocol device {}
protocol direct {}
protocol rip {
  interface "*" {
    mode nolisten;
    ttl security on;
  };
  import none;
  export all;
}

To reproduce the issue, look at "tcpdump -v port 520" while doing:

1) ip address add 192.0.2.2/32 dev lo
   -> a triggered update appears (advertising 192.0.2.2/32)
2) ip address delete 192.0.2.2/32 dev lo
   -> a triggered update doesn't appear (it should have)

For what it's worth, step #2 does increase the RIP protocol's "Export
withdraws" counter. This issue also applies to RIPng/bird6.

AFAICT, not sending these triggered updates immediately is a standards
violation. Quoting RFC 1812 F.2: «A router MUST send a triggered update
when routes are deleted or their metrics are increased.» Also see RFC
2453 section 3.10.1.

Tore



More information about the Bird-users mailing list