[ 网络协议篇 ] 路由策略详解
Posted _PowerShell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 网络协议篇 ] 路由策略详解相关的知识,希望对你有一定的参考价值。
🍬 博主介绍
- 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
- ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
- 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
- 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
- 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
1. 路由匹配Route- Policy时遵循以下两个规则:
4. 案例:在引入直连路由时调用route-policy,修改cost
1. 案例一:filter-policy对RIP发送的路由进行过滤
2. 案例二:filter-policy对向OSPF发布的路由进行过滤
3. 案例三:filter-policy对向OSPF接收的路由进行过滤
3. 案例一:在route-policy中调用了IP前缀列表
一、路由策略概述
1. 概念
用于对路由信息进行过滤、属性设置。里面包含多钟工具及方法。
2. 作用
路由策略主要应用在路由信息发布、接收、引入和路由属性修改等几个方面,具体如下:
1. 控制路由的发布
可通过路由策略对所要发布的路由信息进行过滤,只允许发布满足条件的路由信息。
2. 控制路由的接收
可通过路由策略对所要接收的路由信息进行过滤,只允许接收满足条件的路由信息。这样可以控制路由条件的数量,提高网络的路由效率。
3. 控制路由的引入
可通过路由策略只引入满足条件的路由信息,并控制所引入的路由信息的某些属性,使其满足本路由协议的路由属性要求。
4. 设置路由的属性
修改通过路由策略过滤的路由的属性,满足自身需要。
3. 路由策略的应用
网络设备在发布路由更新,或者接收路由更新时执行路由过滤。
网络设备在执行路由重分发时,关联路由策略,只将特定的路由引入目标路由协议。
针对不同的路由设置不同的路由属性(例如路由的度量值、路由的优先级或路由的标记等)
二、Route-Policy(路由-策略)
1. 路由策略原理介绍
首先要定义将要实施路由策略的路由信息的特征,即定义一组匹配规则,这就是路由策略中必须使用的过滤器。可以用路由信息中的不同属性作为过滤器的匹配依据,如路由的目的地址、源地址等。
然后将匹配规则应用于路由的发布、接收和引入等过程的策略中。
在一个路由策略中可以包括多组以if-match语句指定的匹配条件,这些匹配条件是以节点(Node) 来进行标识的。如果在一个路由策略中包括多个节点,则路由会按照节点号从小到大依次进行匹配,直到与某节点的条件完全匹配,如果到了路由策略中所包括的最后一个节点仍没有完全匹配,则该路由拒绝通过。不同节点间是逻辑“或”的关系,即如果通过了其中一个节点,就意味着通过该路由策略,不再对其他节点进行匹配。
2. 路由策略组成介绍
Route-Policy 由节点号、匹配模式、if-match子句(条件语句)和apply子句(执行语句)这四部分组成。
三、基础配置
1. 创建一个route-policy节点
Route-policy route-policy-name permit | deny node node
Node是节点号,一个Route-Policy可以由多个节点( node )构成。
1. 路由匹配Route- Policy时遵循以下两个规则:
顺序匹配:
在匹配过程中,系统按节点号从小到大的顺序依次检查各个表项,因此在指定节点号时,要注意符合期望的匹配顺序。
唯一匹配:
Route-Policy各节点号之间是”或”的关系,只要通过一个节点的匹配,就认为通过该过滤器,不再进行其它节点的匹配。
2. 节点的匹配模式有两种: permit和deny。
Permit:
指定节点的匹配模式为允许。当路由项通过该节点的过滤后,将执行该节点的apply子句,不进入下一个节点;如果路由项没有通过该节点过滤,将进入下一个节点继续匹配。
deny:
指定节点的匹配模式为拒绝。这时apply子句不会被执行。当路由项满足该节点的所有if-match子句时,将被拒绝通过该节点,不进入下一个节点;如果路由项不满足该节点的if-match子句,将进入下一个节点继续匹配。
3. 注意事项:
通常在多个deny节点后设置一个不含if-match子句和apply子句的permit模式的Route-Policy ,用于允许其它所有的路由通过。
以命令route-policy hcnp permit node 10 为例,如果设备上不存在route-policy hcnp ,那么执行该命令后,设备将会创建名称为hcnp的route-policy ,同时创建一个节点,该节点的匹配模式为permit,且编号为10。
如果某条路由没有被route-policy的任何节点匹配,则该路由被视为拒绝通过该route-policy,也就是说route-policy的末尾隐含一个类似拒绝所有的节点。为了避免所有的路由都被拒绝通过,一个route-policy中必须至少有一个节点的匹配模式为permit 。
2. 配置if-match 语句
if-match子句用来定义一些匹配条件。所匹配的对象是路由信息的一些属性,例如路由的目的网络地址或掩码长度、度量值、标记或下一跳IP地址等。
匹配ACL:
If-match acl acl-number | acl name
匹配IP前缀列表:
if-match ip-prefix ip-prefix-name
匹配路由的度量值:
if-match metric metric
匹配路由的出接口:
if-match interface interface-type interface-number
匹配路由标记:
if-match tag tag
同一节点中的不同if-match子句是逻辑“与”的关系,即只有满足节点内所有if-match子句指定的匹配条件,才能通过该节点的匹配测试。但是if-match route-type 和if-match interface 等除外,这些命令各自的if-match语句之间是“或”的关系。如果某个permit节点没有配置任何if-match子句,则该节点匹配所有的路由。
3. 配置apply语句
apply子句用来指定动作,对通过节点匹配的路由信息属性进行修改。例如修改路由的度量值、优先级值、标记等。
设置路由的度量值:
apply cost [+/-]cost
设置路由的下一跳地址:
apply ip-address next-hop ipv4-address|peer-address
设置路由优先级:
apply preference preference
设置路由标记:
apply tag tag
如果只需要过滤路由,不需要设置路由的属性,则不使用apply子句。
4. 案例:在引入直连路由时调用route-policy,修改cost
[R1]acl 2000
[R1-acl-basic-2000]rule permit source 10.0.1.0 0.0.0.0
[R1-acl-basic-2000]rule permit source 10.0.2.0 0.0.0.0
[R1-acl-basic-2000]q
[R1]route-policy hcnp permit node 10
[R1-route-policy]if-match acl 2000
[R1-route-policy]apply cost 20
[R1-route-policy]q
[R1]ospf 1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]q
[R1-ospf-1]import-route direct route-policy hcnp
在本例中,使用if-match interface GigabitEthernet 0/0/1以及
if-match interface GigabitEthernet 0/0/2 命令可以实现if-match acl 2000命令想同的效果,都可以匹配到10.0.1.0/24及10.0.2.0/24 。
四、filter-policy (过滤-策略)
filter-policy只能对路由信息进行过滤,无法对LSA进行过滤。可以在RIP、OSPF、IS-IS以及BGP等常见的动态路由协议中应用。
1. 案例一:filter-policy对RIP发送的路由进行过滤
禁止R3学习到192.168.2.0/24路由,在R2上部署filter-policy。
R2路由表:
R3路由表:
在使用filter-policy对RIP发送的路由进行过滤时,可以关联出接口,实现基于接口的路由过滤,一个接口只能配置一个filter-policy,如果不指定接口,则被视为全局策略,该过滤器对所有接口生效。
2. 案例二:filter-policy对向OSPF发布的路由进行过滤
当路由器将外部路由引入OSPF时,可以使用Filter-Policy对引入的路由在向OSPF发布前进行过滤。如此来, 该路由器只会将未被过滤的路由引入OSPF。
Filter-Policy对于向OSPF发布的路由进行过滤只适用于上述场景,如果在OSPF域内的路由器上执行Filter-Policy,试图对于向OSPF发布的区域内或者区域间路由进行过滤,这是无法生效的,因为OSPF区域内部路由、区域间路由的计算是通过Type-1、Type-2 及Type3 LSA来完成的,Filter-Policy 无法对向OSPF发布的LSA进行过滤。
由于在R1上部署了出方向(export)的filter-policy 后,R1不再产生描述这条外部路由的type-5 LSA,因此整个OSPF域都不会学习到这条外部路由。
3. 案例三:filter-policy对向OSPF接收的路由进行过滤
我们可以在路由器将所计算出来的OSPF路由加载进路由表之前,对路由进行过滤。需要强调的是,Filter-Policy 是对OSPF计算出来的路由(被加载到路由表之前)进行过滤,而不是对LSA进行过滤。
R2的路由表:
R3的路由表:
五、IP前缀列表
在执行路由策略时,首先需要将“感兴趣”的路由匹配出来,才能够有针对性地进行路由属性修改或者路由过滤。ACL确实能够在许多场合胜在这个工作,但也存在缺陷,它只能够匹配路由条目中的目的网络地址,而无法匹配路由的目的网络掩码。
在完成上述配置后,OSPF 1路由172.16.0.0/24及172.16.0.0/16都没有被引入OSPF 2,也就是说,这两条路由都被Route-Policy过滤掉了。
这显然与需求是不相符的。之所以出现这样的问题,是因为ACL只能用于匹配路由的目的网络地址,而对于目的网络掩码的匹配是无能为力的,因此目的网络地址为172.16.0.0的路由,无论目的网络掩码如何,都会被ACL规则rule deny source 172.16.0.0 0.0.0.0所匹配。
这种写法其实是不严谨的, ACL只能匹配路由的目的网络地址,因此上述配置中,rule deny source 172.16.0.0 0.0.0.255这条规则实际上匹配的路由数量更多了,它不仅仅是将目的网络地址为172.16.0.0 的路由匹配住了,实际上目的网络地址的前三个八位组为172.16.0 (最后一个八位组可以是任意值)的路由都
会被该ACL匹配。
1. 基本概念
IP前缀列表是一个列表形态的工具。它所匹配的是IP地址前缀,也就是路由条目。
1. 一个简单的前缀列表示例:
ip ip-prefix abcd index 10 permit 172.16.0.0 16
2. 在IP前缀列表中指定掩码长度的范围:
ip ip-prefix abcd index 10 permit 172.16.0.0 16 greater-equal 24 less-equal 32
在简单示例中增加了greater-equal(大于或等于)及less-equal(小于或等于)两个关键词,从而指定了掩码长度范围。
当一个IP前缀列表开始进行路由匹配时,将从序号最小的开始依序匹配, 如果路由不满足该语句中的条件,则继续匹配下一个语句,只要满足当前语句,便不再继续匹配后续的语句。
被当前语句匹配住的路由,将根据该语句所定义的匹配模式,判断是否被允许通过。Permit为允许,deny为拒绝。另外,在IP前缀列表的末尾隐含着一条拒绝所有的语句,因此一个对象若不满足任何一个语句,则该对象被视为不被该IP前缀列表允许通过 。
假设有4条路由:172.16.0.0/16、172.16.0.0/24、172.16.0.0/30、172.16.1.1/32
1. ip ip-prefix A index 10 permit 172.16.0.0 24
2. ip ip-prefix B index 10 permit 172.16.0.0 16 less-equal 24
3. ip ip-prefix C index 10 permit 172.16.0.0 16 greater-equal 24
4. ip ip-prefix D index 10 permit 172.16.0.0 16 greater-equal 24 less-equal 30
5. ip ip-prefix E index 10 deny 172.16.0.0 30
ip ip-prefix E index 20 permit 172.16.0.0 24
6. ip ip-prefix F index 10 permit 0.0.0.0 0 less-equal 32
7. ip ip-prefix G index 10 deny 172.16.0.0 30
ip ip-prefix G index 20 permit 0.0.0.0 0 less-equal 32
8. ip ip-prefix H index 10 permit 0.0.0.0 greater-equal 32 less-equal 32
9. ip ip-prefix I index 10 permit 0.0.0.0 0
3. 案例一:在route-policy中调用了IP前缀列表
三、专栏分享
每个专栏都在持续更新中~~~
以上是关于[ 网络协议篇 ] 路由策略详解的主要内容,如果未能解决你的问题,请参考以下文章