Adding a downstream ebgp connection. How to keep it separate?

LU zyash911 at gmail.com
Wed Mar 20 00:22:52 CET 2024


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 <zyash911 at gmail.com> 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 <green at qrator.net> 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 <zyash911 at gmail.com> 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!
>> >
>> >
>> >
>> >
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20240320/db6cf59a/attachment.htm>


More information about the Bird-users mailing list