一、AS_Path Filter
AS_Path Filter是将BGP中的AS_Path属性作为匹配条件的过滤器,利用BGP路由携带的AS_Path列表对路由进行过滤。可以利用AS_Path Filter对AS号的路由进行过滤,从而实现拒绝某些路由。
实验应用
(1)基础配置
R1、R2、R3、R4、R5、R6建立bgp邻居
R1、R2、R3、R4建立EBGP,R4、R5、R6建立IBGP
R5为RR,转发EBGP传来的路由给R6
(2)在邻居中直接调用,也可以放到route-policy进行调用,可以修改他的规则
ip as-path-filter 1 deny 10[01]$ //0或1结尾的AS号
ip as-path-filter 1 permit .* //因为默认是deny any
bgp 103
peer 192.168.10.1 as-path-filter 1 import //配置入方向
配置前
配置后
通过dis bgp routing-table peer 34.1.1.1 received-routes 查看在R4接收路由
通过dis bgp routing-table peer 34.1.1.2 advertised-routes 查看在接R3发送的路由
二、Community属性
Community Filter与Community属性配合使用,降低路由管理难度。
相当于tag 用于标识具有共同特征的一类路由
1、公认Conmmnutiy 属性(通俗解释)
internet:默认的路由属性,想传给谁传给谁
No-Advertise:收到这个属性,不传给其他人了
No-Export:收到此属性,这个路由不能传出别的AS
No-Export-Subconfed:收到此属性,这个路由不能传出别的AS。如果使用了联盟,也不向联盟内其他子AS发布此路由。
2、高级Community Filter属性:使用正则表达式匹配团体号
Communtiy属性格式
长度32bit呈现两种形式
十进制整数格式
AA:NN格式 其中AA表示AS号 NN是自定义的编号
3、实验应用
(1)应用团体属性,在R4上配置,通知R5不要把路由传递给R6
AR4
route-policy 1 permit node 10
apply community no-advertise //不要发给任何人
bgp 103
peer 5.5.5.5 route-policy 1 export //应用团体属性
peer 5.5.5.5 advertise-community //支持团体属性功能
AR5
bgp 103
peer 4.4.4.4 advertise-community //同时R5也要开启团体属性功能
发送前
发送后
R5上有显示信息 Community:no-advertise
(2)在R1上部署路由策略,使其通告BGP路由1.1.1.1/32时携带Community属性值100:100,其他路由不携带。
ip ip-prefix 1 index 10 permit 1.1.1.1 32 //使用前缀列表匹配指定路由
route-policy community permit node 10 //配置策略
if-match ip-prefix 1 //匹配前缀列表
apply community 100:100 //为前缀列表添加团体属性
route-policy community permit node 20 //默认拒绝,所以允许其他路由通过
bgp 100
peer 12.1.1.2 route-policy community export //在R1的出方向掉用团体属性
peer 12.1.1.2 advertise-community //开启团体属性功能
1.1.1.1 有团体属性(类似tag标签)
1.1.1.2 没有团体属性
4、使用Community Filter 过滤
使用Community Filter匹配团体属性,并进行路由过滤
(1)配置分析及思路
ip community-filter 1 permit 100:100 //permit只是标记
//默认有deny any
route-policy 1 deny node 10
if-match community-filter 1 //permit会进入route-policy中
route-policy 1 permit node 20
//默认有if-match any
bgp 101
peer 192.168.10.1 route-policy 1 import
peer 192.168.10.1 advertise-community
如果是permit可以进入if-march当中,deny则不会进入,第一个permit和deny是为了进入if-match表中的,第二个deny和permit才是决定路由是否通
如果是200:200会匹配默认路由 deny any 带上deny标记,带着deny匹配if-match any 执行动作放行
如果是100:100会匹配 permit 100:100 带上permit标记,带着permit 匹配if-match deny拒绝动作放行(被过滤掉了)
因为1.1.1.1路由携带100:100团体属性,所以被过滤掉了