bird: show route filtered

Für folgende Anleitung braucht ihr eine aktuelle Version von Bird. Version 1.3.7 aus den Standardquellen für wheezy ist zu alt. Nehmt mindestens Version 1.4.5 aus den wheezy-backports

In #dn42 gab es eine kleine Info, wie man bei bird herausfinden kann, welche Routen den eigenen Filtern zum Opfer gefallen sind. Dazu muss bei den protocol-Optionen die Option import keep filtered; gesetzt werden. Bei mir sieht das dann etwa so aus:

protocol bgp dn42_NEIGHBOR {
    table dn42;
    local as my_as;
    source address 172.XX.XXX.XXX;
    neighbor 172.XX.XXX.XXX as XXXXXX;
    import keep filtered;
    import filter dn42_in;
    export filter dn42_out;
}

Mein Filter selbst sieht so aus:

filter dn42_in
prefix set include;
prefix set exclude;
{
        exclude = [     10.10.10.0/24+];                # kabel deutschland dns
        include = [     172.22.0.0/15{22,28},           # dn42 main net
                        172.22.254.0/24{26,30},         # dn42 transfer nets
                        172.22.0.53/32,                 # dn42 anycast dn42
                        10.0.0.0/8{12,30},              # freifunk
                        172.31.0.0/16+];                # chaosvpn
#                       94.45.224.0/19{19,30},          # ccc event
        if net ~ exclude then reject;
        if net ~ include then accept;
        reject;
}

Das Eventnetz lasse ich nur dann zu, wenn es genutzt wird. Interessanterweise verhindere ich mit dem Filter tatsächlich, dass mir neue default-Routen untergeschoben werden:

root@chero ~ # birdc
BIRD 1.4.5 ready.
bird> show route table dn42 filtered
0.0.0.0/1          via 172.XX.XX.X on dn42.XXXXX [dn42_XXXXX 18:21:21] * (100) [ASXXXXXXXXXXi]
172.23.245.1/32    via 172.XX.XXX.XXX on dn42.XXXXXXX [dn42_XXXXXXX 18:20:28] * (100) [ASXXXXXi]
172.22.247.128/32  via 172.XX.XXX.XXX on dn42.XXXXXXX [dn42_XXXXXXX 18:20:28] * (100) [ASXXXXXi]
[…]
128.0.0.0/1        via 172.XX.XX.X on dn42.XXXXX [dn42_XXXXX 18:21:21] * (100) [ASXXXXXXXXXXi]
[…]

Es lohnt sich also, nachzusehen und evtl. Leute zu informieren. Beim Rest handelt es sich hauptsächlich um Routen zu /31 und /32er Netzen.