Hi,

You can use different tables for that case ans some pipes between
them. You can also try this option:
https://bird.network.cz/?get_doc&v=20&f=bird-6.html#bgp-secondary

On Sat, Jan 5, 2019 at 11:07 PM Julien Sansonnens <jul...@jsansonnens.ch> wrote:
>
>
> Hi Kurt,
>
> Thanks a lot for your reply.
>
> I understand the logic, but I'm sure there must be a way to choose the routes 
> one want to export?
>
> Imagine I have two upstreams, and two peered networks (say: customers).
> Both upstreams provide me with a (kind of) full table.
>
> I would like to export the table I get from upstream 1 to peer 1, and the 
> table from upstream 2 to client 2 (regardless if it's the best route or 
> not...)
>
> An "export all" is not a solution, since the packets will be redirected to 
> one or the other upstream according to the best routes algorithm.
>
> thanks  Julien
>
>
>
>
> Le ven. 4 janv. 2019 à 12:18, Kurt Wauters <kuwaut...@gmail.com> a écrit :
>>
>> Hi Julien,
>>
>> It probably comes down to one of the standard BGP rules. Community adding 
>> and filtering seem to be ok but you only advertise the routes that are 
>> "best" or for which you've got an entry in your routing table.
>> If you have multiple upstreams connected the routes are probably spread over 
>> your upstreams because they all have different flavours of policy and 
>> peering agreements.
>>
>> Kind regards
>> Kurt
>>
>> On Fri, Jan 4, 2019 at 8:46 AM Julien Sansonnens <jul...@jsansonnens.ch> 
>> wrote:
>>>
>>> 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