假装网络工程师16——路由策略filter-policy与route-policy
一、背景介绍
之前的综合实验文章中可以看到,filter-policy与route-policy都能进行路由的过滤,但这两种策略却有着各自的使用场景,本文就来具体介绍下这两种策略的使用场景
二、filter-policy介绍
1.filter-policy工作模式
filter-policy工作在协议的进程下,从该命令的字面意思为过滤路由的更新信息,可以作用于进程的进出两个方向
[Huawei]ospf 1 [Huawei-ospf-1]? filter-policy Filtering in routing updates
filter-policy本身无法设置滤条件,需要调用其它过滤条件来完成路由信息过滤
[Huawei-ospf-1]filter-policy ? INTEGER<2000-2999> Apply basic ACL acl-name Specify the ACL name for filtering IPv4 routes ip-prefix IP address prefix-list route-policy Route policy
2.filter-policy使用场景
既然是过滤策略,那么它最常用在的地方就是网元设备的路由过滤上。之前说过filter-policy只能作用在ospf协议import方向时,提到过他不能作用于ospf协议的export方向,原因就是他只能影响路由器的lsdb加表过程,但不会影响lsa信息,所以不能作用在export方向
三、route-policy介绍
1.route-policy的工作模式
route-policy路由策略常用于路由重发布时的路由过滤或者更改已有的路由下一跳、开销等属性值。类似于acl,一个route-policy下也可以有多个节点,不同节点使用node标识区分,不同node之间是“或”的关系,在同一个node节点下:
- 可以有多个if-match和apply字句,多个if-match字句之间是“与”的关系
- if-match字句可以引用其他的过滤工具
[R3-route-policy]if-match ? acl Specify an ACL as-path-filter BGP AS path list community-filter Match BGP community filter cost Match metric of route extcommunity-filter Match BGP/*** extended community filter interface Specify the interface matching the first hop of routes ip IP information ip-prefix Specify an address prefix-list ipv6 IPv6 Information mpls-label Give the Label rd-filter Route-distinguisher filter route-type Match route-type of route tag Match tag of route
route-policy在设置时同样有permit与deny模式,两种模式的作用分别为:
- permit:当路由满足当前结点的if-match字句时,则被允许通过并执行apply字句,如果不满足当前结点的if-match字句,转到下一节点进行if-match匹配,如果所有节点都不满足,则丢弃
- deny:当路由满足当前结点的if-match字句,将被拒绝通过,且不会进入下一个节点
2.route-policy过滤详解
用一个实例进行说明,条件如下图所示,则此时的过滤步骤为:
- 路由进入node 10,因为是deny语句,所以Pref1挑选中的1.1.2.0/24与5.5.5.5/32路由条目不会继续进入下一个节点
- 除掉1.1.2.0/24与5.5.5.5/32,剩下的路由进入node 20,Pref2不挑选6.6.6.6/32,但没指定挑选哪个,ip-prefix隐含全部挑选,所以尽管node 20是permit,但Pref2没有挑选中任何一条路由,此节点无任何操作
- 除掉1.1.2.0/24与5.5.5.5/32,剩下的路由进入node 30,第一个if-match语句是要匹配acl 2001,由于acl不会区分掩码位数,所以1.1.3.0/24与1.1.3.0/25都被选中,其结果同时满足第二个if-match语句的结果,所以下一跳的13.13.13.1,并将cost值改为21
- 除掉1.1.2.0/24,5.5.5.5/32;1.1.3.0/24,1.1.3.0/25(下一跳是13.13.13.1),剩下的路由进入node 40,选中的是1.1.3.0/25(下一跳是34.34.34.2),并将cost值改为11
- 现在只剩下1.1.3.0/24(下一跳34.34.34.2)与6.6.6.6/32路由进入node 50,由于node 50没有设置if-match条件,且有事permit模式,所以允许剩下的所有路由通过
- 最后,过滤后的路由条目如左下角所示(示例不对,缺少6.6.6.6/32)
四、实验
网络拓扑如下图所示,其中R4上的环回接口没有宣告进ospf,使用impor-route引入,配合route-policy,承担abr的R3使用filter-policy进行路由过滤
当基础配置完成后,在R2路由器的import方向使用filter-policy过滤,让R2只保留10.0.1.0/24路由[R2]ospf 1 [R2-ospf-1]filter-policy ip-prefix A import [R2]ip ip-prefix A permit 10.0.1.0 24
此时查看R2的路由表,发现只剩10.0.1.0/24路由
[R2]display ip routing-table protocol ospf Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : OSPF Destinations : 1 Routes : 1 OSPF routing table status : <Active> Destinations : 1 Routes : 1 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.1.0/24 OSPF 10 1 D 12.0.0.1 GigabitEthernet 0/0/0 OSPF routing table status : <Inactive> Destinations : 0 Routes : 0
但R3与R4上却依然有10.0.0.1/24网段的路由
<R3>display ip routing-table protocol ospf Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : OSPF Destinations : 3 Routes : 3 OSPF routing table status : <Active> Destinations : 3 Routes : 3 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.0/24 OSPF 10 2 D 23.0.0.2 GigabitEthernet 0/0/1 10.0.1.0/24 OSPF 10 2 D 23.0.0.2 GigabitEthernet 0/0/1 12.0.0.0/24 OSPF 10 2 D 23.0.0.2 GigabitEthernet 0/0/1 OSPF routing table status : <Inactive> Destinations : 0 Routes : 0
这就印证了之前说的,他只能影响路由器的lsdb加表过程,但不会影响lsa信息,所以身为abr的R3还是会将10.0.0.1/24网段汇总到3类lsa中向area 1中泛洪,当在R3的import方向使用filter-policy过滤,让R3只保留10.0.1.0/24路由,此时不仅R3,连R4上也没有10.0.0.1/24网段,说明abr在向其他area发布3类lsa时,只会根据本身的路由表汇总后发出3类lsa
<R4>display ip routing-table protocol ospf Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : OSPF Destinations : 1 Routes : 1 OSPF routing table status : <Active> Destinations : 1 Routes : 1 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.1.0/24 OSPF 10 3 D 34.0.0.3 GigabitEthernet 0/0/0 OSPF routing table status : <Inactive> Destinations : 0 Routes : 0
为了测试R4上route-policy效果,首先删除R3上的filter-policy过滤策略
[R3-ospf-1]undo filter-policy ip-prefix A import
其次,定义一个名为A的route-policy策略,并将cost值改为99,此处if-math条件引用的是名为A的ip-prefix
[R4]route-policy A permit node 10 [R4-route-policy]if-match ip-prefix A [R4-route-policy]apply cost 99
设置名为A的ip-prefix,让它只选取192.168.0.0/24网段
[R4]ip ip-prefix A permit 192.168.0.0 24
在ospf 1进程中使用import-route引入route-policy A
[R4]ospf 1 [R4-ospf-1]import-route direct route-policy A
此时在去R3上查看路由表,发现192.168.0.0/24网段表项为O_ASE,且cost值为99
[R3]display ip routing-table protocol ospf Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : OSPF Destinations : 4 Routes : 4 OSPF routing table status : <Active> Destinations : 4 Routes : 4 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.0/24 OSPF 10 2 D 23.0.0.2 GigabitEthernet 0/0/1 10.0.1.0/24 OSPF 10 2 D 23.0.0.2 GigabitEthernet 0/0/1 12.0.0.0/24 OSPF 10 2 D 23.0.0.2 GigabitEthernet 0/0/1 192.168.0.0/24 O_ASE 150 99 D 34.0.0.4 GigabitEthernet 0/0/0 OSPF routing table status : <Inactive> Destinations : 0 Routes : 0
五、总结
上述内容可以总结为以下几点:
- filter-policy常用在的地方就是网元设备的路由过滤上
- oute-policy常用于路由重发布时的路由过滤或者更改已有的路由下一跳、开销等属性值
- 在ospf协议中,过滤只会影响lsdb的加表过程,不会影响到lsa,所以作用在路由器的import方向
- 如果ospf的边界路由器执行过滤,他只会对其他area泛洪自身已加表的路由
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微软称定制 Windows 10 是侵犯版权的行为
禁用“Windows 内置的恼人功能”也是如此。 自定义 Windows 10,禁用操作系统捆绑的一些功能,删除特定的应用,卸载一些组件,这些都是很多用户在安装微软操作系统后要做的事情。 然而,软件巨头微软却声称做这些其实是违反了 DMCA 的规定,虽然听起来很奇怪。 而 Ninjutsu OS 的开发者可能对此感受最深。 Ninjutsu 项目是专门以渗透测试为目的而打造的,它是一款 Windows 10 的重度定制版,配备了非常丰富的应用库,包括安全应用,用于帮助研究人员和专家进行各种测试和安全审计。 5 月 7 日发布的 Ninjutsu OS 声称要将 Windows 10 改造成一个渗透测试的强大堡垒,增加了大量针对安全专家的工具(约 800 个),还有一些针对普通用户的工具(例如 qBitTorrent),同时还删除了在这种环境下被认为不需要或不必要的功能。 它是基于 Windows 10 的,仍然需要微软操作系统的授权,所以从本质上来说,Ninjutsu OS 是 Windows 10 的定制版,它允许用户从一开始就预装一系列的应用,这样用户在安装操作系统后就不用再手动操...
- 下一篇
java网络编程实战 - 基于BIO的伪异步、高并发、全双工、长连接持续消息IO的网络编程
前言 TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。 TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。 如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。 TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。 基于TCP通讯的三次握手 原生网络编程BIO 服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。 传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;So...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- Docker安装Oracle12C,快速搭建Oracle学习环境