BGP filtering for own AS number
Ivo Smits
Ivo at UFO-Net.nl
Thu Jan 6 18:54:42 CET 2011
Hello,
On the dn42 network (http://www.dn42.net) we have been seeing quite a
few BGP ghost routes lately. After some research, it turns out that bird
may not correctly handle received AS-paths containing the own AS number.
Bird ignores incoming BGP routes containing the local AS number -
completely. This may result in an older, now invalid, route not getting
removed.
I've reproduced this behaviour by sending fake BGP packets from AS1113
to AS1111. AS1111 is running bird, AS1113 is running a custom 'BGP
speaker' which will send fake route updates. See below.
Now I don't know whether it is appropriate to send routes with AS paths
containing your peer's AS number (is it?), but it seems to happen in
reality and bird does not handle this correctly, resulting in routing loops.
I'm running bird version 1.2.5, the debian package.
Reproducing the problem:
-- Initially there is no such route
bird> show route all for 1.3.3.99
1.3.3.0/24 unreachable [static1 17:36] * (200)
Type: static unicast univ
-- After sending a route for 1.3.3.99/32 via ASes 1113, 9992, 9991, 9993:
bird> show route all for 1.3.3.99
1.3.3.99/32 via 10.11.1.7 on tap.ufonet [btest1 17:45 from
10.11.5.36] * (100) [AS9993i]
Type: BGP unicast univ
BGP.origin: IGP
BGP.as_path: 1113 9992 9991 9993
BGP.next_hop: 0.0.0.0
BGP.local_pref: 100
-- After sending a route for 1.3.3.99/32 via ASes 1113, 9991, 1111, 9993
bird> show route all for 1.3.3.99
1.3.3.99/32 via 10.11.1.7 on tap.ufonet [btest1 17:45 from
10.11.5.36] * (100) [AS9993i]
Type: BGP unicast univ
BGP.origin: IGP
BGP.as_path: 1113 9992 9991 9993
BGP.next_hop: 0.0.0.0
BGP.local_pref: 100
-- The route has not changed, but it should at least have been removed
-- After sending an update marking the route unfeasible:
bird> show route all for 1.3.3.99
-- Perhaps also interestingly, only after the BGP connection has been
closed, bird contains to the earlier state:
bird> show route all for 1.3.3.99
1.3.3.0/24 unreachable [static1 17:36] * (200)
Type: static unicast univ
More information about the Bird-users
mailing list