HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter
前文我们聊了下通过修改BGP路由属性来影响路由,从而达到控制BGP路由的目的;回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html;今天我们来聊一聊BGP路由过滤和AS-Path-filter过滤器的使用;
BGP路由过滤
BGP路由过滤是指对特定的路由通过策略或者过滤器在出方向或入方向做允许或拒绝,从而来达到控制路由的收发;
示例:通过ip 前缀列表匹配要拒绝的路由,然后使用过滤工具过滤掉满足条件的路由
[R5-bgp]dis bg r BGP Local router ID is 5.5.5.5
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn *> 1.1.1.1/32 45.0.0.4 0 234 11i
*> 7.7.7.7/32 45.0.0.4 0 234 11i
*> 8.8.8.8/32 45.0.0.4 0 234 11i
[R5-bgp]dis ip ip-prefix
Prefix-list 1.1.1.1
Permitted 2
Denied 4
index: 10 deny 1.1.1.1/32
index: 20 permit 0.0.0.0/0 le 32
[R5-bgp]filter-policy ip-prefix 1.1.1.1 import
[R5-bgp]d th
[V200R003C00]
#
bgp 55
router-id 5.5.5.5
peer 45.0.0.4 as-number 234
#
ipv4-family unicast
undo synchronization
filter-policy ip-prefix 1.1.1.1 import
peer 45.0.0.4 enable
#
return
[R5-bgp]dis bg r BGP Local router ID is 5.5.5.5
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn *> 7.7.7.7/32 45.0.0.4 0 234 11i
*> 8.8.8.8/32 45.0.0.4 0 234 11i
[R5-bgp]
提示:ip前缀列表、filter-policy工具使用请参考https://www.cnblogs.com/qiuhom-1874/p/15316188.html;这里我们需要注意一点就是ip前缀列表的默认规则是拒绝,所以对于没有被ip前缀列表匹配的路由,我们应该放行;所以前缀列表里最后要添加放行其他所有路由;所以我们在BGP路由表中能够看到7.7.7.7和8.8.8.8的路由;
示例:使用filter-policy 对某个邻居的出方向拒绝1.1.1.1的路由
在R2上未使用filter-policy对发送给R4的路由做过滤,对应R4上bgp路由表情况

提示:可以看到对应在R4上能够学习到1.1.1.1 /32的路由,对应下一跳分别有两个;
在R2的出方向对发送给R4的路由中,过滤掉1.1.1.1/32的路由,对应其他路由做放行操作

验证:在R4上查看BGP路由表,看看R2发送给R4的路由,对应1.1.1.1/32的路由是否被过滤掉了?

提示:可以看到R4上对于1.1.1.1/32的路由只有R3为下一跳,R2发送给R4的其他路由R4上正常可以学习到;
示例:使用前缀列表直接对某个邻居发送的路由进行过滤
在R4上使用前缀列表对R3发送到8.8.8.8/32的路由进行入方向过滤,其他路由不做过滤
[R4]dis ip ip-prefix
Prefix-list 8.8.8.8
Permitted 0
Denied 0
index: 10 deny 8.8.8.8/32
index: 20 permit 0.0.0.0/0 le 32
[R4]bgp 234
[R4-bgp]peer 3.3.3.3 ip-prefix 8.8.8.8 imp
[R4-bgp]peer 3.3.3.3 ip-prefix 8.8.8.8 import
[R4-bgp]d th
[V200R003C00]
#
bgp 234
router-id 4.4.4.4
peer 2.2.2.2 as-number 234
peer 2.2.2.2 connect-interface LoopBack4
peer 3.3.3.3 as-number 234
peer 3.3.3.3 connect-interface LoopBack4
peer 45.0.0.5 as-number 55
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 3.3.3.3 enable
peer 3.3.3.3 ip-prefix 8.8.8.8 import
peer 45.0.0.5 enable
#
return
[R4-bgp]dis bg r BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 4
Network NextHop MED LocPrf PrefVal Path/Ogn *>i 1.1.1.1/32 13.0.0.1 0 100 0 11i
*>i 7.7.7.7/32 12.0.0.1 0 100 0 11i
* i 13.0.0.1 0 100 0 11i
*>i 8.8.8.8/32 12.0.0.1 0 100 0 11i
[R4-bgp]
提示:可以看到此时R4上对于8.8.8.8/32的路由只有R2发送的可以正常学习到;因为R3发送的8.8.8.8/32的路由在入方向就被过滤掉了;
示例:在R1上使用路由策略对7.7.7.7/32的路由在出方向过滤

提示:路由策略中如果条件中是允许操作,则路由的去留取决route-policy的模式,deny就是拒绝,permit就是允许;如果条件中是拒绝操作,则路由的去留取决route-policy的默认规则;如上所示,在条件中允许7.7.7.7/32,在模式中拒绝,最终7.7.7.7/32的路由去留看模式;对于条件中没有明确允许或拒绝其他路由,最终条件的默认规则是拒绝,所以对于其他没有被条件匹配的路由,最终的去留取决于route-policy默认模式;所以我们在route-policy后面添加一条允许所有路由,则放行其他未被前缀列表匹配到的路由;所以我们配置没有问题的话,在R2上就学习不到7.7.7.7/32的路由,其他路由可以正常学习到;
验证:在R2上查看BGP路由表,看看对应的7.7.7.7的路由它是否能够学习到?

提示:可以看到此时R2的bgp路由表中就没有7.7.7.7/32的路由,原因是R1并没有把7.7.7.7/32的路由发送给R2;
总结:通过上述实验可以看到BGP路由过滤主要是通过过滤器,前缀列表,路由策略等工具来进行的;都是在本地的出或入方向做过滤,最终是影响路由的收发;如果上述工具都在bgp里都使用了,则首先全局filter-policy进行过滤,然后再单个邻居使用filter-policy过滤,然后再单个邻居前缀列表,然后在路由策略的顺序进行过滤;
BGP AS-Path过滤器
AS-Path-Filter:从名字上就能知道该过滤器主要用于通过匹配AS-Path属性来进行路由过滤;对于满足过滤器的条件我们就做某种操作即可;对于as-path过滤器来说,它是通过正则表达式来匹配对应as-path;工作原理就是把对应路由的as-path当作字符串处理,满足正则表达式的路由进行拒绝或允许操作;
常用正则表达式符号作用

特殊正则表达式含义

提示:对于本地始发地路由,对应as-path属性是空,即匹配条件就是空,正则表达式就为^$; .*表示匹配所有路由,.*是表示匹配任意字符0次或多次,即任意字符可有可无,即任意as-path都能匹配,即所有路由的as-path都能满足该正则表达式;_10_表示匹配通过as10的路由,因为as-path只要通过一个as就会记录对应as号,所以只要as-path里包含10,则该路由一定是通过as 10的路由;如果是以10结尾的as-path,则一定是始发as10的路由;如果以10开头的,则一定是相邻邻居的as一定是10,即接受相邻as10的路由;
示例:匹配以12开头中间任意字符最后以74结尾的as-path的路由

提示:即满足上述as-path的路由都会被允许放行;
示例:匹配有23或43的as号的路由

提示:并不是3或4,而是23或43;
示例:匹配具有具有14,17,24,27,34,37的as号

提示:【1-3】表示连续的数字,即1、2、3;【47】表示4或7,即数字4或者数字7;组合其他就是14、17、24、27、34、37;
示例:匹配始发as170,且as34512和as170相邻且通过as34512的路由;

示例:匹配始发as170,并通过as621的路由

示例:使用as-path过滤器过滤掉本地始发as55路由
新建as-path过滤器
[R1]ip as
[R1]ip as-path-filter 1 d
[R1]ip as-path-filter 1 deny 55$
[R1]dis ip as
As path filter number: 1
deny 55$
[R1]
提示:as-path-filter 后面的1我们可以理解为是as-path过滤器的匹配次序;多条as path是与的关系,即都要满足才能被匹配;
在BGP里调用as-path过滤器

提示:as-path过滤器也是有默认规则的,默认规则是拒绝操作,即没有被正则匹配到的路由,统统都是拒绝操作;所以我们看到的BGP路由表中,对应始发234的路由也一并被过滤掉;
在as-path里允许其他所有路由通过

再次查看BGP路由表,看看对应始发234的路由是否恢复?

提示:可以看到始发as55的路由被过滤掉了,始发234的路由恢复正常;这是因为我们只拒绝了始发as55的路由,允许了其他没有被始发as55的路由;
HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter的更多相关文章
- HCNP Routing&Switching之BGP路由属性和优选规则
前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...
- HCNP Routing&Switching之BGP路由宣告
前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...
- HCNP Routing&Switching之BGP路由控制
前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...
- HCNP Routing&Switching之BGP防环机制和路由聚合
前文我们了解了BGP路由宣告相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15440860.html:今天我们来聊一聊BGP防环机制和路由聚合相关话题 ...
- HCNP Routing&Switching之BGP基础
前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...
- HCNP Routing&Switching之BGP团体属性和团体属性过滤器
前文我们了解了BGP的路由过滤已经as-path过滤器的使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15542559.html:今天我们来聊一聊 ...
- HCNP Routing&Switching之IS-IS路由聚合和认证
前文我们了解了IS-IS路由渗透和开销相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15302382.html:今天我们来聊一聊IS-IS路由聚合和认 ...
- HCNP Routing&Switching之BGP报文结构、类型和状态
前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...
- HCNP Routing&Switching之BGP邻居建立条件、优化和认证
前文我们了解了BGP相关概念.AS相关概念以及BGP邻居类型.基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html:今天我们 ...
随机推荐
- 小白学习Python英语基础差怎么办,都帮你想好拉!看这里
运算符与随机数 1.module:模块 2.sys(system):系统 3.path:路径 4.import:导入 5.from:从- 定义函数与设定参数 1.birthday:出生日期 2.yea ...
- APScheduler(python 定时任务框架)最简单使用教程
有时候需要部署一些很简单的python定时任务,使用APScheduler是很好的选择.只需要简单的设置几个参数,就可以实现定时.定分甚至秒来跑. 第一步:用pip安装APScheduler pip ...
- HTML选择器的权重(优先级)
选择器的优先级主要用于样式发生冲突的情况下 选择器范围越小,优先级越高 行内样式>id选择器>类选择器>标签选择器>通用选择器 这里涉及一个权重值的问题,权重值越高,优先级越大 ...
- Java并发编程实战——读后感
未完待续. 阅读帮助 本文运用<如何阅读一本书>的学习方法进行学习. P15 表示对于书的第15页. Java并发编程实战简称为并发书或者该书之类的. 熟能生巧,不断地去理解,就像欣赏一部 ...
- springcloud组件之hystrix服务熔断,降级,限流
hystrix 简介 Hystrix是什么 在分布式环境中,许多服务依赖项中的一些必然会失败.Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互.Hystrix通过 ...
- 题解 [BJOI2017]开车
题目传送门 题目大意 有\(n\)个汽车和\(n\)个加油站,坐标分别为\(a_{1,2,...,n}\)和\(b_{1,2,...,n}\).每辆汽车会到一个加油站,求出最小移动距离之和.有\(m\ ...
- 洛谷3613睡觉困难综合征(LCT维护链信息(前后缀)+贪心)
这个题目还是很好啊QWQ很有纪念意义 首先,如果在序列上且是单次询问的话,就是一个非常裸的贪心了QWQ这也是NOI当时原题的问题和数据范围 我们考虑上树的话,应该怎么做? 我的想法是,对于每一位建一个 ...
- 洛谷2375 NOI2014动物园(KMP)
题目链接: 题目. 简单一点来说,这个题就是求一个字符串的\(num\)数组的和,其中有\(num[i]\)表示1~i中有多少个不交叉的相等的前缀和后缀 的数目,要求一个\(O(n)\)的做法 QwQ ...
- Markdown Reference
Markdown For Typora Overview Markdown is created by Daring Fireball; the original guideline is here. ...
- 【c++ Prime 学习笔记】第11章 关联容器
关联容器的元素按照关键字来保存和访问,而顺序容器的元素是按照在容器中的位置来保存和访问 关联容器支持高效的关键字查找和访问 2种关联容器: map中的元素是关键字-值对(key-value对),关键字 ...