From e5e55306f550dedd092228156a51d18bb37f23d2 Mon Sep 17 00:00:00 2001
From: Maximilian Wilhelm <max@sdn.clinic>
Date: Sat, 23 Jun 2018 18:26:51 +0200
Subject: [PATCH] Don't export routes learned via iBGP to an iBGP peer.

Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
---
 routingtable/adjRIBOut/adj_rib_out.go | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/routingtable/adjRIBOut/adj_rib_out.go b/routingtable/adjRIBOut/adj_rib_out.go
index e5ea8e51..b667ac77 100644
--- a/routingtable/adjRIBOut/adj_rib_out.go
+++ b/routingtable/adjRIBOut/adj_rib_out.go
@@ -45,6 +45,11 @@ func (a *AdjRIBOut) AddPath(pfx bnet.Prefix, p *route.Path) error {
 		return nil
 	}
 
+	// Don't export routes learned via iBGP to an iBGP neighbor
+	if !p.BGPPath.EBGP && a.neighbor.IBGP {
+		return nil
+	}
+
 	p = p.Copy()
 	if !a.neighbor.IBGP && !a.neighbor.RouteServerClient {
 		p.BGPPath.ASPath = fmt.Sprintf("%d %s", a.neighbor.LocalASN, p.BGPPath.ASPath)
-- 
GitLab