diff --git a/routingtable/adjRIBOut/adj_rib_out.go b/routingtable/adjRIBOut/adj_rib_out.go index e5ea8e516e1c1ebd9ef3ed11cad117b6b7fbb0e0..b667ac7778ac50b544274970490b7acb4ffffab2 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)