<div dir="ltr">Hi.<div><br></div><div>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.</div><div><br></div><div>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.</div><div> <br></div><div>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.</div><div><br></div><div>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).</div><div><br></div><div>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?</div><div><br></div><div>Hope this makes sense.</div><div><br></div><div>Thanks.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">wt., 19 mar 2024 o 23:34 Alexander Zubkov <<a href="mailto:green@qrator.net">green@qrator.net</a>> napisał(a):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I think you need to start with explaining why do you want to keep<br>
customer and upstream routes in separate tables.<br>
<br>
Regards,<br>
Alexander<br>
<br>
On Tue, Mar 19, 2024 at 1:39 PM LU <<a href="mailto:zyash911@gmail.com" target="_blank">zyash911@gmail.com</a>> wrote:<br>
><br>
> Hello.<br>
><br>
> 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.<br>
><br>
> 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.)<br>
><br>
> So far this is simple, works great for my own traffic/prefixes and have no trouble maintaining this.<br>
><br>
> 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.<br>
><br>
> How do I approach this the cleanest and simplest way possible?<br>
><br>
> I suppose I should have two routing tables (currently under Linux/Bird everything is under the default routing/main table):<br>
><br>
> - main table (keep for my own traffic)<br>
> - customer table<br>
><br>
> 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.<br>
><br>
> 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?<br>
><br>
> Then I could place the current filtering of eBGP connections that I use for myself in the pipe protocol that feeds my main table?<br>
><br>
> The customer table will then be piped the raw routes from the eBGP connections.<br>
><br>
> Is my thinking correct? Or this can be done better/differently?<br>
><br>
> Are there perhaps any presentations and/or sample configs of such setups? I am sure this situation comes up quite often.<br>
><br>
> Thanks!<br>
><br>
><br>
><br>
><br>
</blockquote></div>