<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.28.3">
</HEAD>
<BODY>
<TT>Hello bird-users,</TT><BR>
<BR>
(email send in html to prevent text wrapping, .txt version attached)<BR>
<BR>
<TT>running bird 1.2.3 ppa x64 ubuntu 10.04LTS. 2 bird routers connected with 2 iBGP sessions over different links.</TT><BR>
<BR>
<TT>I'm trying to route specific outgoing traffic over a specific Transit.</TT><BR>
<TT>It starts with that I'm not really sure how to do it, so tested a bit. Setting Local performance</TT><BR>
<TT>on protocol definition works just fine for a complete  Transit, however when i want to do it more </TT>fine grained<TT>, i run into trouble.</TT><BR>
<BR>
<TT>First started with prepending routes in bgp input filter with my own AS, which works OK on a single bird router, however, with iBGP all prepended local AS-es are stripped, and that concept doesn't work.</TT><BR>
<TT>Then, started to set the preference in the bgp input filter, which also works fine on a single bird router, but that preference seems not to propagate to the second iBGP router.</TT><BR>
<BR>
<BR>
<TT>on router1 i set in the bgp input filter the preference to 300 for a specific network(91.189.88.0/21), and on router 2 the preference to 400.</TT><BR>
<TT>What i would want, is that both iBGP routers agree on route for a specific manual</TT><BR>
<TT>overruled prefix.</TT><BR>
<BR>
<BR>
<TT>below you can see each router takes its direct route to a Transit, relevant</TT><BR>
<TT>filters and show route all below.</TT><BR>
<BR>
<TT>Any idea on how you want to do that?</TT><BR>
<BR>
<TT>detail info:</TT><BR>
<BR>
<TT>router1:</TT><BR>
<TT>bird> show route 91.189.88.0/21 </TT><BR>
<TT>91.189.88.0/21     via <Transit1_BGPRTR_1> on eth5 [Transit1_BGPRTR_1 2010-06-09 10:30:31] * (300) [AS41231i]</TT><BR>
<TT>                   via <iBGP_router2_gw1> on eth0 [iBGP_router1_1 2010-06-09 11:22:55] (100) [AS41231i]</TT><BR>
<TT>                   via <iBGP_router2_gw2> on eth1 [iBGP_router1_2 2010-06-09 11:22:55] (100) [AS41231i]</TT><BR>
<TT>                   via <Transit1_BGPRTR_2> on eth5 [Transit1_BGPRTR_2 2010-06-09 10:30:34] (300) [AS41231i]</TT><BR>
<BR>
<TT>router2:</TT><BR>
<TT>bird> show route 91.189.88.0/21 </TT><BR>
<TT>91.189.88.0/21     via <Transit2_BGPRTR_1> on eth5 [Transit2_BGPRTR_1 2010-06-09 11:22:06] * (400) [AS41231i]</TT><BR>
<TT>                   via <iBGP_router1_gw1> on eth1 [iBGP_router1_1 2010-06-09 10:29:43] (100) [AS41231i]</TT><BR>
<TT>                   via <Transit3_BGPRTR_1> on opn-ext.382 [Transit3_BGPRTR_1 2010-06-09 11:19:12] (100) [AS41231i]</TT><BR>
<TT>                   via <iBGP_router1_1> on opn-ext.382 [Transit3_BGPRTR_2 2010-06-09 11:14:03] (100) [AS41231i]</TT><BR>
<TT>                   via <iBGP_router1_gw2> on eth0 [iBGP_router1_2 2010-06-09 10:29:43] (100) [AS41231i]</TT><BR>
<BR>
<BR>
<BR>
<TT>bgp input filter, applied for eBGP</TT><BR>
<BR>
<TT>router1:</TT><BR>
<BR>
<TT>function bgp_in(int peeras)</TT><BR>
<TT>{</TT><BR>
<TT>      <snip></TT><BR>
<BR>
<TT>        # Traffic engineering:</TT><BR>
<TT>        # launchpad.net</TT><BR>
<TT>        if (net = 91.189.88.0/21 && bgp_path.first = Transit1AS ) then preference=300;</TT><BR>
<TT>        # end  Traffic engineering</TT><BR>
<BR>
<TT>        return true;</TT><BR>
<TT>}</TT><BR>
<BR>
<TT>router2:</TT><BR>
<BR>
<TT>function bgp_in(int peeras)</TT><BR>
<TT>{</TT><BR>
<TT>      <snip></TT><BR>
<BR>
<TT>        # Traffic engineering:</TT><BR>
<TT>        # ppa.launchpad.net</TT><BR>
<TT>        if (net = 91.189.88.0/21 && bgp_path.first = Transit2AS ) then preference=400;</TT><BR>
<TT>      # end  Traffic engineering</TT><BR>
<BR>
<TT>        return true;</TT><BR>
<TT>}</TT><BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<TT>router1:</TT><BR>
<BR>
<TT>bird> show route 91.189.88.0/21  all</TT><BR>
<TT>91.189.88.0/21     via <Transit1_BGPRTR_1> on eth5 [Transit1_BGPRTR_1 2010-06-09 10:30:30] * (300) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 24785 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <Transit1_BGPRTR_1></TT><BR>
<TT>      BGP.med: 100</TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>                   via <iBGP_router2_gw1> on eth0 [iBGP_router1_1 2010-06-09 11:22:54] (100) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 38930 16265 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <Transit2_BGPRTR_1></TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>      BGP.community: (286,19) (286,29) (286,49) (286,286) (286,3044) (16265,65400)</TT><BR>
<TT>                   via <iBGP_router2_gw2> on eth1 [iBGP_router1_2 2010-06-09 11:22:54] (100) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 38930 16265 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <Transit2_BGPRTR_1></TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>      BGP.community: (286,19) (286,29) (286,49) (286,286) (286,3044) (16265,65400)</TT><BR>
<TT>                   via <Transit1_BGPRTR_2> on eth5 [Transit1_BGPRTR_2 2010-06-09 10:30:33] (300) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 24785 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <Transit1_BGPRTR_2></TT><BR>
<TT>      BGP.med: 100</TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>bird> </TT><BR>
<BR>
<BR>
<TT>router2:</TT><BR>
<BR>
<TT>bird> show route 91.189.88.0/21  all</TT><BR>
<TT>91.189.88.0/21     via <Transit2_BGPRTR_1> on eth5 [Transit2_BGPRTR_1 2010-06-09 11:22:07] * (400) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 38930 16265 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <Transit2_BGPRTR_1></TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>      BGP.community: (286,19) (286,29) (286,49) (286,286) (286,3044) (16265,65400)</TT><BR>
<TT>                   via <iBGP_router1_gw1> on eth1 [iBGP_router1_1 2010-06-09 10:29:44] (100) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 24785 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <Transit1_BGPRTR_1></TT><BR>
<TT>      BGP.med: 100</TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>                   via <Transit3_BGPRTR_1> on opn-ext.382 [Transit3_BGPRTR_1 2010-06-09 11:19:13] (100) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 20562 24785 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <Transit3_BGPRTR_1></TT><BR>
<TT>      BGP.med: 0</TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>                   via <iBGP_router1_1> on opn-ext.382 [Transit3_BGPRTR_2 2010-06-09 11:14:04] (100) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 20562 24785 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <iBGP_router1_1></TT><BR>
<TT>      BGP.med: 0</TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>                   via <iBGP_router1_gw2> on eth0 [iBGP_router1_2 2010-06-09 10:29:44] (100) [AS41231i]</TT><BR>
<TT>      Type: BGP unicast univ</TT><BR>
<TT>      BGP.origin: IGP</TT><BR>
<TT>      BGP.as_path: 24785 286 6908 41231</TT><BR>
<TT>      BGP.next_hop: <Transit1_BGPRTR_1></TT><BR>
<TT>      BGP.med: 100</TT><BR>
<TT>      BGP.local_pref: 100</TT><BR>
<TT>bird> </TT><BR>
<BR>
<BR>
<TT>Regards,</TT><BR>
<BR>
<TT>Arjan Filius</TT><BR>
<BR>
</BODY>
</HTML>