Thanks Ondrej, As workaround I have changed the source to not validate if rs client function is applied on iBGP neighbors, I know that is not the common use case, I just need that for this particular use case, do you see any complications on that? ~/source/bird-v2.0.2/proto/bgp# diff -u bgp.c.orig bgp.c --- bgp.c.orig 2018-09-25 10:19:04.406376518 -0300 +++ bgp.c 2018-09-24 14:05:55.690726481 -0300 @@ -1657,8 +1657,8 @@ if (!internal && cf->rr_client) cf_error("Only internal neighbor can be RR client"); - if (internal && cf->rs_client) - cf_error("Only external neighbor can be RS client"); +/* if (internal && cf->rs_client) + cf_error("Only external neighbor can be RS client");*/ if (!cf->confederation && cf->confederation_member) cf_error("Confederation ID must be set for member sessions"); And without the validation: Customer1 <-> RS1[pid0] <-rs client-> iBGP <-rs client-> RS2[pid1] <-> Customer2 Now everything is working fine for my use case, because is not prepending the AS and changing the NH. []s On 25/09/2018 10:14, Ondrej Zajicek wrote:
On Mon, Sep 24, 2018 at 02:21:42PM -0300, heisenbug at xpto wrote:
Hello Guys,
On bird1.6, I have deployed our Route Servers using the below architecture to split the load from the control plane:
Customer1 <-> RS1[pid0] <-> iBGP <-> RS2[pid1] <-> Customer2
And is working fine as RS until now [not inserting local AS on AS-PATH and not changing NH]. I'm planing to migrate to Bird2.0.2 with some new features, but when I do the same on Bird2.0.2, I have the AS from iBGP inserted on AS-PATH, just to let me know, this is an expected behavior on Bird2? I have tested in a lot of ways, but still the same results.
Hi
You are right, BIRD 2 would not insert local AS only if propagated from EBGP-RS to EBGP-RS. The main motivation for the change is to better handle the case when a route is propagated from EBGP to EBGP-RS, where it makes sense to prepend local AS. You are right that in your case the old behavior makes more sense.