Or to keep the question short: Best way/practices to add a downstream eBGP session (to transit a prefix/traffic to a customer) so that it doesn't clash with my existing network on the same router(s).
Thanks. śr., 20 mar 2024 o 00:10 LU <[email protected]> napisał(a): > Hi. > > So, the Linux BGP routers perform packet forwarding. Up until this point > they were handling only my own network/prefixes/traffic. Everything is > using the default linux/bird main tables. > > I want to provide connectivity to the customer. I would announce his > prefix to a select few of my upstream eBGP sessions and also export some of > the upstream routes to him. > > So, at the very least I need a separate routing table (on linux) to have a > different FIB for my own traffic and the customer's. > > But since I want to export some routes to the customer (and not just a > default route) I need a way to be able to hand off him the raw upstream > routes that I receive via eBGP. When I receive upstream routes I process > them with filters (some get rejected, some I set a different local > preference, etc. in the end they are modified to suit my use cases). > > So this is what I am asking: does it make sense to have a separate bird > table per each upstream eBGP session so that I can keep the raw routes > there, and eventually feed them via the pipe protocol to my own routing > table for processing, and to the customer's table? > > Hope this makes sense. > > Thanks. > > > > > > > > wt., 19 mar 2024 o 23:34 Alexander Zubkov <[email protected]> napisał(a): > >> Hi, >> >> I think you need to start with explaining why do you want to keep >> customer and upstream routes in separate tables. >> >> Regards, >> Alexander >> >> On Tue, Mar 19, 2024 at 1:39 PM LU <[email protected]> wrote: >> > >> > Hello. >> > >> > I have two BGP routers with bird 2.4. Each router maintains some eBGP >> connections to upstreams where I announce my prefixes. These routers have >> an iBGP connection between themselves to exchange routes learned from those >> eBGP connections. >> > >> > I do some filtering on the eBGP connections (like setting local >> preference, as path prepending, setting an internal bgp community so that I >> know which routes originate from which eBGP connection, etc.) >> > >> > So far this is simple, works great for my own traffic/prefixes and have >> no trouble maintaining this. >> > >> > But now a need arose that I will be adding a downstream eBGP connection >> (customer). This means transiting a foreign prefix over my BGP routers and >> exporting some routes to it. >> > >> > How do I approach this the cleanest and simplest way possible? >> > >> > I suppose I should have two routing tables (currently under Linux/Bird >> everything is under the default routing/main table): >> > >> > - main table (keep for my own traffic) >> > - customer table >> > >> > But I am unsure what to do with my existing upstream eBGP connections >> since I do some filtering on them for my own use cases. >> > >> > Should I have a separate Bird table for each upstream eBGP connection? >> Then use the pipe protocol to put the routes in the main and customer table >> separately? >> > >> > Then I could place the current filtering of eBGP connections that I use >> for myself in the pipe protocol that feeds my main table? >> > >> > The customer table will then be piped the raw routes from the eBGP >> connections. >> > >> > Is my thinking correct? Or this can be done better/differently? >> > >> > Are there perhaps any presentations and/or sample configs of such >> setups? I am sure this situation comes up quite often. >> > >> > Thanks! >> > >> > >> > >> > >> >
