Hi,

Using BIRD 1.6.4 I want to do something very basic: export routes to a peer
to allow transit.

for that, I start by adding communities to my received routes, so I can
distinguish the upstream.

import filter {
if !is_martian() && !is_self_net() && from = bgp_next_hop then {
bgp_large_community.add((myas, 100, XX)); #XX for each upstream
accept;
}
else reject;
};

A community is (apparently?) added to each route. I get about 61'000 ipv6
routes from my upstream.

Now I want to export them to "peer1". Here is my export function:

function bgp_export_peer (){
if (myas,100,20) ~ bgp_large_community then return true;
}

here is the problem: it looks like only 123 routes are exported !
bird> show route export peer count
123 of 362489 routes for 61724 networks

Here is an example of an exported route:

2001:9d8:200b::/48 via 2a06:1287:3308:c0c0::1 on peer-mmnetworks [mmnet
22:24:20] * (100) [AS25577i]
        Type: BGP unicast univ
        BGP.origin: IGP
        BGP.as_path: 207149 206499 204893 206313 6724 8560 25577
        BGP.next_hop: 2a0c:b640:fffe:10:192:220:4:2
        BGP.local_pref: 100
        BGP.community: (666,666) (997,6499) (6724,900) (6724,960) (8560,4)
(8560,10000) (57555,0) (57555,4100) (57555,4101) (65010,10000)
        BGP.large_community: (206313, 206313, 206313) (207149, 100, 20)

and an example of a non-exported route:

2406:3003:2032::/48 via 2a06:1287:3308:c0c0::1 on peer-mmnetworks [mmnet
20:48:51] (100) [AS55430i]
        Type: BGP unicast univ
        BGP.origin: IGP
        BGP.as_path: 206499 6939 38861 55430
        BGP.next_hop: 2a06:1287:3308:c0c0::1 fe80::b9d7:d605
        BGP.med: 0
        BGP.local_pref: 100
        BGP.community: (0,2906) (0,6939) (0,12876) (0,12989) (0,13335)
(0,15133) (0,15169) (0,16265) (0,16276) (0,16509) (0,20940) (0,22822)
(0,32934)
        BGP.large_community: (207149, 100, 20)

as you see, my lare community are added on both routes.
The exported route has my AS as the first value on the left (AS_PATH),
which is not the case for the non-exported route.

Logically, all exported routes should have my AS on the left. Am I missing
something? It's probably logical, but I do not understand what's going on
here.
In the same way, I can not export any route that comes from my peers
(direct connection), since they have only their AS in the path.

help would be highly appreciated.
cheers, Julien Sansonnens

Reply via email to