如何阻止从 1 个 BGP 邻居收到的前缀通告到另一个

网络工程 路由 路由器 bgp 路由过滤器 bgp-ipv6
2021-07-06 23:54:15

我有一个 eBGP 拓扑如下:

RTR1 ------ DUT ------ RTR2
(AS100)    (AS200)     (AS300)

我不希望anyRTR1 发送的路由被 DUT 通告到 RTR2 我不知道路由的前缀究竟是什么,所以我不能使用任何前缀列表来静态阻止通告。

我正在寻找的是这样的:

  1. 用标签标记来自 RTR1 的所有传入路由
  2. 向 RTR2 发布路由时,如果路由有特定标签,则跳过该公告。

关于如何实现这一点的任何指示。?

我对设备 RTR2 有一定的控制权,但我希望我们不需要在该路由器中进行任何配置更改。

2个回答

正如 Ron 所提到的,您可以使用no-export(Don't Advertise to any eBGP peers) 或no-advertise(Don't Advertise to iBGP or eBGP peers) 来实现这一点。但是,如果引入您希望向其通告这些的另一个 eBGP 对等方,这可能会导致可扩展性问题。

我建议在 AS200/DUT 上应用入站路由映射/策略语句,用于与 AS100/RTR1 的 eBGP 会话,在入口设置附加社区,例如 200:65535。从这里,您可以在面向 AS300/RTR2 eBGP 对等方的 AS200/DUT 上应用出站路由映射/策略声明,该对等方特别具有拒绝标记为 200:65535 的前缀的术语。

您没有提到您的硬件版本,但这里有一个 Cisco(IOS、IOS-XE)和 Juniper 配置示例(注意,未经测试和徒手编写):

思科

被测件:

ip community-list expanded DENY-AS100-OUT permit 200:65535

route-map AS100-IN permit 10
 match ip address prefix-list <please use a prefix list where possible>
 set community 200:65535 additive

route-map AS300-OUT deny 10
 match community DENY-AS100-OUT
route-map AS300-OUT permit 20
 match ip address prefix-list <please use a prefix list where possible>

router bgp 200
 neighbor x.x.x.x remote-as 100
 neighbor y.y.y.y remote-as 300
 address-family ipv4
  neighbor x.x.x.x route-map AS100-IN in
  neighbor y.y.y.y route-map AS300-OUT out

杜松

被测件:

set policy-options community DENY-AS100-OUT members 200:65535

set policy-options policy-statement AS100-IN from prefix-list <please use a prefix list where possible>
set policy-options policy-statement AS100-IN then community add DENY-AS100-OUT

set policy-options policy-statement AS300-OUT term 10 from community DENY-AS100-OUT
set policy-options policy-statement AS300-OUT term 10 then reject
set policy-options policy-statement AS300-OUT term 20 from prefix-list <please use a prefix list where possible>
set policy-options policy-statement AS300-OUT term 20 then accept

set protocols bgp group AS100 neighbor x.x.x.x
set protocols bgp group AS100 peer-as 100
set protocols bgp group AS100 import AS100-IN

set protocols bgp group AS300 neighbor y.y.y.y
set protocols bgp group AS300 peer-as 300
set protocols bgp group AS300 export AS300-OUT

有著名的社区叫no-export并且no-advertise你可以用它来标记前缀,以防止它们被发布到不同的AS,甚至不同的内部路由器。

根据需要使用路由映射标记传入前缀。