一、BGP的路由过滤
1、直接调用ip-prefix 地址前缀列表过滤
2、用filter-policy加访问控制列表过滤
3、调用as-path-filter过滤
4、用route-policy过滤,以上所有都可以用route-policy调用
- 以上每种过滤方法都可用出方向(export)和入方向(import)。
- 后续实验拓扑图入下,配置参考往前篇章:BGP联盟配置案例:
二、具体案例
1、直接调用ip-prefix 地址前缀列表过滤
++命令格式:peer x.x.x.x ip-prefix xx++实验案例1:在R8上增加2个环回接口,分别是L0:8.8.8.8/32,L1:8.9.9.9/32,并network到BGP中,观察R1是否学习到。
- 操作1:在R1上使用前缀列表匹配8.9.9.9/32,R1只接收前缀列表匹配的路由
[~AR1]ip ip-prefix R8toR1 permit 8.9.9.9 32 [*AR1]commit [~AR1]bgp 65001 [~AR1-bgp]peer 81.1.1.8 ip-prefix R8toR1 import [*AR1-bgp]commit
- 观察1:在R1上查看是否学习到了8.9.9.9/32的路由,前缀列表生效,只学习前缀列表匹配的。
- 扩展1:也可以在R8的出方向上做,建议选择在R8的出方向上做,这样可以节省带宽。原因是R8发送的时候只发送前缀列表匹配的,不用都发,而在R1上的入方向上做,R8会把所有的都发送过来,R1根据前缀列表匹配的就接受,不匹配就不接收,如果有大量的BGP路由信息(万以上),可能会浪费带宽。
2、用filter-policy加访问控制列表过滤
++(1):peer x.x.x.x filter-policy+访问控制列表 //针对邻居
(2):filter-policy+访问控制列表/前缀列表 //针对所有邻居++
实验案例2:清除掉实验案例1中的R1上的前缀列表策略,使用filter-policy加访问控制列表过滤。R1只接受访问控制列表中匹配的路由。
acl number 2000
rule 1 permit source 8.9.9.9 0
#
bgp 65001
peer 81.1.1.8 filter-policy 2000 import
- 观察1:在R1上查看是否学习到了8.9.9.9/32的路由,访问控制列表生效,只学习filter-policy加访问控制列表匹配的。
- 观察2:查看ACL匹配情况,匹配到了1条。
3、调用as-path-filter过滤
实验案例3:清除掉实验案例2中的配置,恢复默认配置。在R5上把路由:1.1.1.1/32、2.2.2.2/32注入到BGP中,配置省略。
- 观察1:在R9上观察是否学习到了BGP路由
- 操作1:在R9上配置as-path-filter过滤,把AS起源100的过滤掉,只接受来自AS200的BGP路由
ip as-path-filter AS200 index 10 deny _100$ ip as-path-filter AS200 index 20 permit .* # bgp 300 peer 59.1.1.5 as-path-filter AS200 import
- 观察1:在R9上观察BGP路由表信息,此时只学习到来自AS200的BGP路由。
- 扩展1:正则表达式
_ 表示起源 $ 表示结束 .* 表示其它所有 | 表示或 ^ 邻居是多少的
评论区