[ 网络协议篇 ] 路由策略详解

Posted _PowerShell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 网络协议篇 ] 路由策略详解相关的知识,希望对你有一定的参考价值。

 🍬 博主介绍  

  • 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
  • ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
  • 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
  • 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
  • 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

 🍬 博主介绍  

一、路由策略概述

1. 概念

2. 作用

1. 控制路由的发布

2. 控制路由的接收

3. 控制路由的引入

4. 设置路由的属性

3. 路由策略的应用

二、Route-Policy(路由-策略)

1. 路由策略原理介绍

​ 2. 路由策略组成介绍

三、基础配置

1. 创建一个route-policy节点

1. 路由匹配Route- Policy时遵循以下两个规则:

2. 节点的匹配模式有两种: permit和deny。

3. 注意事项:

2. 配置if-match 语句

3. 配置apply语句

4. 案例:在引入直连路由时调用route-policy,修改cost

四、filter-policy (过滤-策略)

1. 案例一:filter-policy对RIP发送的路由进行过滤

2. 案例二:filter-policy对向OSPF发布的路由进行过滤

3. 案例三:filter-policy对向OSPF接收的路由进行过滤

五、IP前缀列表

1. 基本概念

1. 一个简单的前缀列表示例:

2. 在IP前缀列表中指定掩码长度的范围:

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前缀列表

 三、专栏分享

每个专栏都在持续更新中~~~

渗透测试自学篇        web基础知识点

网络基础                   面试总结

网络工程师                python

操作系统篇                通讯安全

闲聊                           漏洞复现篇

代码审计                    SSM

docker                        环境搭建篇

python爬虫                 靶场

​​​​​​心理学

以上是关于[ 网络协议篇 ] 路由策略详解的主要内容,如果未能解决你的问题,请参考以下文章

[ 网络协议篇 ] IGP 详解之 RIP 详解

计算机网络:路由算法与动态路由协议题目详解和知识拓展

High Availability--keepalived详解篇之vrrp

(转)虚拟路由器冗余协议原理篇VRRP详解

路由选择协议——RIP协议

计算机网络网络层