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!
