Thank you very much for that example and output. I’ve been leading towards bgp_path.prepend as I am getting BGP.as_path as blank. show route all 10.10.10.10/24 10.10.10.10/24 via 192.168.1.1 on bond0 [border7 20:40:33] * (100) [AS65999i] Type: BGP unicast univ BGP.origin: IGP BGP.as_path: 714 2914 20473 2828 BGP.next_hop: 10.10.10.10 BGP.local_pref: 100 BGP.community: (65000,475) (65050,214) unreachable [edge140 20:45:45 from 192.168.1.120] (100/-) [i] Type: BGP unicast univ BGP.origin: IGP BGP.as_path: BGP.next_hop: 192.168.1.120 BGP.local_pref: 100 To me it seemed like I needed to add a prepend to the path to have the parameter set. Your example now has me thinking i’ve got some more basic routing issue. Thanks again for your comment -- Michael McConnell WINK Streaming; email: michael@winkstreaming.com <mailto:michael@winkstreaming.com> phone: +1 312 281-5433 x 7400 cell: +506 8706-2389 skype: wink-michael web: http://winkstreaming.com <http://winkstreaming.com/>
On Mar 26, 2017, at 10:16 AM, Alarig Le Lay <alarig@swordarmor.fr> wrote:
On dim. 26 mars 09:08:25 2017, Michael McConnell wrote:
Hello all,
We are running into an issue transiting a down stream ASN. E.g. Uplink <-> Our ASN <-> Downlink ASN
To me it seems we should only need to bgp_path.prepend our outbound filter, however our uplink is dropping the as path when we run it that way.
Any suggestions as to what I am missing to carrier a downstream ASN and prefixes to our uplinks?
Thanks so much, Mike
Hi, why do you want to bgp_path.prepend? Your ASN will be automatically added in the path if you act as transit between upstream and downstream AS.
Exemple:
template bgp DOWNSTREAM { import keep filtered; export all; }
function bgp_filter_customer_in (prefix customer_prefix) { if ! (net ~ customer_prefix) then return false; else return true; }
filter bgp_filter_customer_petrus_in { if (bgp_filter_customer_in(2001:678:3cc::/48)) then accept; else reject "Prefix filtered for petrus"; }
protocol bgp bgp_petrus from DOWNSTREAM { local as 204092; description "BGP for petrus"; neighbor 2a00:5884::25 as 206155; import keep filtered; import filter bgp_filter_customer_petrus_in; }
And from another router, we see that: bird> show route all protocol bgp_grifon_nominoe 2a00:5884::/32 via 2001:7f8:b1::a on eth2 [bgp_grifon_nominoe 12:41:15] (100) [AS204092i] Type: BGP unicast univ BGP.origin: IGP BGP.as_path: 204092 BGP.next_hop: 2001:7f8:b1::a fe80::215:17ff:fe39:f01a BGP.local_pref: 100 2001:678:3cc::/48 via 2001:7f8:b1::a on eth2 [bgp_grifon_nominoe 12:41:15] (100) [AS206155i] Type: BGP unicast univ BGP.origin: IGP BGP.as_path: 204092 206155 BGP.next_hop: 2001:7f8:b1::a fe80::215:17ff:fe39:f01a BGP.local_pref: 100
So, we have our prefix with just our ASN, and 2001:678:3cc::/48 with our and the customer ASN.
-- alarig