问题描述
如果设备希望只接收自己需要的路由,但对端设备又无法针对每个与它连接的设备维护不同的出口策略。
R2 在接收口进行路由过滤,仅接收 10.1.1.1/32 路由
针对被过滤掉的路由(如:10.1.2.2/32)而言,实际上 R1 没有必要通告给 R2;
解决方案
通过配置 BGP 基于前缀的 ORF(Outbound Route Filters,出口路由过滤器)来满足两端设备的需求。
原理简述
BGP 基于前缀的 ORF 能力:
1)能将本端设备配置的基于前缀的入口策略通过 Route-Refresh 报文发送给 BGP Peer;
2)BGP Peer 根据这些策略(刷新报文中)构造出口策略,以在路由发送时对路由进行过滤;
特性说明
避免本端设备接收大量无用的路由,降低链路带宽的占用率;
还有效减少了 BGP 邻居的配置工作;
降低本端设备的 CPU 使用率;
配置命令
# 第一步、配置对等体(组)基于 IP 地址前缀列表的路由过滤策略。 # import:对由指定对等体(组)接收的路由应用过滤策略。 # export:对向指定对等体(组)发送的路由应用过滤策略。 [Huawei-bgp-af-ipv4] peer { group-name | ipv4-address } ip-prefix ip-prefix-name { import | export } # 第二步、使能 BGP 对等体(组)基于地址前缀的 ORF 功能(需要两端同时开启) # non-standard-compatible:指定与非标准设备兼容。 # both:表示允许发送和接收 ORF 报文。 # receive:表示只允许接收 ORF 报文。 # send:表示只允许发送 ORF 报文。 # standard-match:指定按照 RFC 标准规定的前缀匹配规则来匹配路由。 [Huawei-bgp] peer { group | address } capability-advertise orf [ non-standard-compatible ] ip-prefix { both | receive | send } [ standard-match ]
配置案例
R2 只期望 R1 通告 10.1.1.1/32 路由,R2 通过向 R1 推送 ORF 报文来达到这个目的。
[R2] ip ip-prefix 1 permit 10.1.1.1 32 # 需要接收的路由 [R2] bgp 102 [R2-bgp] peer 10.1.12.1 as-number 101 [R2-bgp] peer 10.1.12.1 ip-prefix 1 import # 在入方向上 [R2-bgp] peer 10.1.12.1 capability-advertise orf ip-prefix send # send,仅发送 ORF,而不接收对方的 ORF [R1] bgp 101 [R1-bgp] peer 10.1.12.2 as-number 102 [R1-bgp] peer 10.1.12.2 capability-advertise orf ip-prefix receive [R1-bgp] network 10.1.1.1 32 [R1-bgp] network 10.1.2.2 32 [R1-bgp] network 10.1.3.3 32 # 在 R1 上查看 R2 发出的基于地址前缀的 ORF 信息。 [R1]display bgp peer 10.1.12.2 orf ip-prefix ... # 在 R2 上查看 BGP 路由信息。 [R2]display bgp routing-table peer 10.1.12.1 received-routes ...