路由策略与策略路由

开始

个人学习

传统路由的转发原理是通过目的地查看路由表来进行转发,但是用户不希望自己的一些设备被不必要的人访问,所以用户希望能在传统的转发机制上添加自已定义的策略以进行报文选路

那么什么是路由策略以及什么是策略路由

路由策略:又称控制平面,主要用途就是控制路由加表 即什么路由可以加表什么路由不可以加表

策略路由:又称数据平面(转发平面),主要用途就是控制数据如何转发

路由策略 (控制平面)

主要就是为了控制路由加表,可以理解为目前有很多路由,我们就喜欢其中几条,我们需要控制这几条加入到我们设备中,其他不加入。

比如有以下路由

192.168.10.128/25

192.168.10.192/26

192.168.10.224/27

192.168.10.240/28

192.168.10.248/29

172.16.10.1/24

172.16.10.129/25

172.16.10.193/26

这些路由中只有几条路由是我们需要的,那么填写一份规则满足条件的加表不满足的话滚蛋 判断条件

但是存在一个啸问题有了规则但是并没有一个人对这些规则进行判断与执行 判断者执行者

那么什么是判断条件呢 按照之前的需求 192.168.10.224/27 192.168.10.248/29 172.16.10.1/24

这三个路由条目是我们所需要的 我们可以使用条件工具中的 ACL 访问控制列表 进行条件的配置

但是有判断的条件没有用,设备不可能只依靠判断条件就对路由发生改变我们还需要判断工具和执行工具

简单的实验

实验的需求 AR1的设备需要学习 4.4.4.4 5.5.5.5 不需要6.6.6.6

如果我们没有控制路由加表 那么我们引入外部路由后路由表如下

可以看到 6.6.6.6 被添加到了路由表 但是我们并不需要6.6.6.6 我们需要配置一个判断条件来拒绝6.6.6.6

我们没有判断者来对判断条件进行判断

route-policy <1-40> <deny permit>  node <1-65535> 
if-match acl 2000  #满足了acl2000执行动作

最后呢我们只需要把这些判断好的策略进行调用,也就是“执行”。

import-route <引入类型> route-pokicy <编号>

条件工具

ACL(访问控制列表)

访问控制列表是一个匹配工具 通过匹配的报文进行区分

ACL 由若干条permit(允许)deny(拒绝)语句组成 每条语句就是ACL的一个规则 每条语句中的deny permit 则是它的处理动作

ACL 的 rule 默认为5 配置 rule permit 或者 deny 会使编号增加 5

ACL 在作为工具使用时 会默认拒绝所有 ,如果在通信状态下使用则是默认允许所有

一般情况下按照顺序 从上到下进行匹配 当路由被拒绝后不会匹配后面的编号 所以要慎重决定你的策略

比如说 这三条规则 {deny(拒绝)同样}

rule 5 permit source 5.5.5.5 0.0.0.0  #表示 规则 5 允许 5.5.5.5 通过 因通配符采用 0.0.0.0 所以配置主机地址 
rule 10 permit source 4.4.4.4  0.0.0.0 表示 规则 10 允许 4.4.4.4 通过 因通配符采用 0.0.0.0 所以匹配主机地址
rule 15 permit source 192.168.10.0 0.0.0.255 表示 规则 15 允许 192.168.10.0 通过 因通配符采用0.0.0.255 所以匹配192.168.10.0网段

根据通配符的匹配的方式我们可以使用一个好玩的方式来匹配奇数和偶数路由

奇偶匹配

路由条目

192.168.2.0/24

192.168.3.0/24

192.168.4.0/24

192.168.5.0/24

192.168.100.0/24

192.168.101.0/24

我们来观察一个现象 0.0.0.0.0.0.0.0 如果最匹配的后面第八位如果不为一结果不管发送什么数值都是偶数

如果最后面第八位如果为一结果不管发送什么数值都是奇数

我们可以让需求条目中网络地址的匹配最后一位进行匹配 地址为一或者不为为一 来决定数值的累加结果 比如说 在条目中可以写成 rule 1 permit sourc 192.168.1.0 0.0.254.255 就可以匹配路由条目中的有关于 192.168.0.0 /24 有关奇数的部分 偶数改为 192.168.0.0 即可

ACL种类

ACL匹配规则

ACL的缺点

当ACL在从下到上的匹配过程中发生了匹配,不管后面是精确还是不精确匹配的过程都结束了

就是我们想过滤掉1.1.1.0/25,正常你不管怎么去写,后续肯定会误伤掉,比如此时你需要放行其他所有路由,要单独过滤这个25位的,那反掩码不就是0.0.0.127,那这样如果有/26、/27、/28、/29...是不是都没了,这个只能描述一个特征。

IP前缀列表

IP前缀列表 默认拒绝所有路由

路由表存在路由才可以调用,没有就不行

我们知道ACL的不足点,就是不够细致的去划分,我们可以用一个新的条件工具

IP前缀列表(IP-Prefix List)是将路由条目的网络地址、掩码长度作为匹配条件的过滤器,可在各路由协议发布和接收路由时使用。

配置介绍 1、ip-prefix-name:地址前缀列表名称。

2、序号:本匹配项在地址前缀列表中的序号,匹配时根据序号从小到大进行顺序匹配。

3、动作:permit/deny,地址前缀列表的匹配模式为允许/拒绝,表示匹配/不匹配。

4、IP网段与掩码:匹配路由的网络地址,以及限定网络地址的前多少位需严格匹配

5、掩码范围:匹配路由前缀长度,掩码长度的匹配范围 mask-length<=greater-equal-value<=less-equal-value<=32。

其中:greater-equal-value是大于等于的意思less-equal-value<=32是小于

6 默认拒绝所有

配置格式解释

ip ip-prefix <name> index <1-4294967295> <deny,permit> ipaddr mask   greater-equal <1-32> less-equal <1-32>

1、ip ip-prefix——ip前缀列表的固定开头

2 name 自定义名称

3 index 类似与ACL的rule 因为ip前缀也是按照顺序匹配 会有默认的数值 默认步长为 10 例如 10 20 30

4 {deny/permit} 执行的动作

5 ipaddr mask 主要是抓取的范围,我们得想知道他的大概范围是多少

6 greater-equal 26 细致范围就是大于等于26

7 less-equal 27——细致范围就是小于等于27

匹配规则

路由策略工具

条件 用户为了满足一些规则设置的条件

工具 为了满足这些条件准备的工具,这些工具有多个用法

工具库

Filter 工具

在路由被添加进路由表之前就进行过滤。

filter工具是过滤三类LSA

ACL和ip前缀,这些只是一个匹配“路由”的工具众所周知OSPF是链路状态的路由协议,它有一堆的LSA去生成路由,太花里胡哨了,因此我们也有专门的一个工具来“治理”这个LSA的

在链接状态协议使用 它的调用只有 调用使用只有import(进入)export (出去)

我们来解释一下 ABR会针对1和2类LSA就会进行整合3类LSA的路由信息发送给其他区域 那么干扰路由信息即可以改变3类LSA的路由信息

拓扑图

出于安全考虑 AR4只可以学习到 2.2.2.2 4.4.4.4

从图片我们可以看出 我们有两种配置方法 一种是在进入的地方配置规则一种是在出去地方配置规则

那么我们先配置在ABR(AR1)前往 AR2的区域出口上

路由信息 -------> 接口(AREA0) AR1 接口 --------> (AREA 1 )接口 AR2

匹配设置位置 (进入AREA1)

配置第一步 编写规则 ACL

接下来我们去调用规则ACL 2000 我们的目标是拒绝2.2.2.2 和 1.1.1.1 路由 那么我们就需要使用路由工具 Filter 来对 路由进行匹配

解释一下 我们把匹配工具 Filter比比喻成一个海关 它会对进入和出去的游客(路由信息)比对 满足一些规则的人会被允许通过 有一些人不满足规则会被拒绝

那么这里的意思就简单了 进入AREA1 的路由信息 被 Filter(海关)拿规则(ACL2000)进行匹配

其中 1.1.1.1 (rule 1) 与 2.2.2.2 (rule 2) 不被允许通过 剩下的可以进入AREA1 (rule 3000)

有了进那也有出去 我们可以让路由信息在离开AREA0时被拒绝

路由信息 -------> 接口(AREA0)接口 AR1 接口 --------> (AREA 1 )接口 AR2

匹配设置位置 (离开AREA0)

配置第一步 编写规则 ACL

接下来我们去调用规则ACL 2000 我们的目标是拒绝2.2.2.2 和 1.1.1.1 路由 那么我们就需要使用路由工具 Filter 来对 路由进行匹配

那么这里的意思就简单了 离开AREA0 的路由信息 被 Filter(海关)拿规则(ACL2000)进行匹配

其中 1.1.1.1 (rule 1) 与 2.2.2.2 (rule 2) 不被允许通过 剩下的可以进入AREA1 (rule 3000)

但是也没有发现一个问题 我们在离开area0 就被拒绝了 但是我其实可以前往 AREA 2 3 4 呢 被拒绝了我不就什么地方都去不了 所以在配置是注意需求 根据你要实现什么效果,决定这个海关开在哪里(动作)

一图流:

但是一个问题Filter是被配置在区域上的作为区域上的海关并不可以让本区域的设备对路由进行过滤 路由

但是呢,我们说过工具的使用会根据需求、场景、使用者的不同而不同,因此我们还有个工具

Filter-Policy

Filter-Policy(过滤-策略)是一个很常用的路由信息过滤工具,能够对接收、发布、引入的路由进行过滤,可应用于IS-IS、OSPF、BGP等协议。

对于单个设备的协议路由表进行控制(as)

可以理解为路由信息在进入路由表被过滤掉了

某种意义上来说,可以理解为学了,但不让进表

filter工具是过滤三类LSA

filter-policy是过滤路由信息(存在的LSA不去生成路由)

Filter-policy import使用

工具嘛,怎么使用都取决于你,此时可以使用这个对路由加表进行过滤(让AR2学习到的1类LSA通过SPF算法后引入OSPF的策略不生成路由

我们查看 AR5(?)设备上的路由表 和 LSDB

工具 filter-policy也是分进方向import出方向export两个。

import是用在内部的也就是OSPF或者ISIS内部做过滤

export是用在外部路由的时候,比如ISIS引入到OSPF,在OSPF试图下针对ISIS的路由去做过滤

在距离矢量路由协议(BGP)先不介绍,等下一个章节再去解读这一块

那我们开始操作看看这个工具是怎么使用的

拓扑图

出于安全考虑 AR5只可以学习到 2.2.2.2 4.4.4.4

配置第一步 编写规则 ACL

但是与Filter不同它并不是 被部署在区域之间而是部署在进程之间可以理解为 Filter policy 就可以简单粗暴理解为国家间的海关

解释一下 我们把匹配工具 filter-policy 比喻成一个海关 它会对进入和出去的游客(路由信息)比对 满足一些规则的人会被允许通过 有一些人不满足规则会被拒绝 (注意 filter-policy 与 filter 不会对 LAS进行修改动作 !!! )

那么这里的意思就简单了 进入 AR5 OSPF 的路由信息 被 Filter(海关)拿规则(ACL2000)进行匹配

其中 1.1.1.1 (rule 1) 与 2.2.2.2 (rule 2) 不被允许通过 剩下的可以进入AR5 (rule 3000)

但是记不记得 三类LSA 它是通过 路由信息来产生 LAS的那么如果我们在ABR上拒绝了路由信息呢?

验证第一步 编写规则 ACL

验证第2步 在ospf的入配置 filter-policy

验证第3步进入AR4查看路由表

我们得出了结论 因为AR2在ospf进程中阻止了对应1.1.1.1 2.2.2.2 路由的学习(学习好了但不可以进入)导致了发送的三类LSA缺少了 1.1.1.1 2.2.2.2 的路由信息

Filter-policy export使用:

前面提到过export使用是用于外部路由引入,其实就是过滤五类LSA的路由信息使用的

很简单,我们设计两个动态路由即可,最简单的也是三个路由实现

我们查看两个路由协议的路由表

图中,你身为网络管理员希望OSPF区域可以学习到ISIS区域1.1.1.1和10.10.10.10,并且希望ISIS区域可以学习到OSPF区域4.4.4.4和40.40.40.40,此时你该怎么做?

它们数据库不同的,可以使用引入外部路由但是有 一个问题 其他的我们不需要的路由条目也被引入过来了 我们可以只允许 4.4.4.4 40.40.40.40 可以通过海关 Filter-policy 离开ISIS前往OSPF

1、部署ACL匹配——都是正常先做条件工具去匹配路由条目

在ISIS进程下引入OSPF,然后再全局进程下使用filter-policy export,将引入的路由按照策略进行过滤

那么这里的意思就简单了 从OSPF离开前往ISIS进程 的路由信息 被 Filter(海关)拿规则(ACL2000)进行匹配

允许 4.4.4.4 和 40.40.40.40 可以进入 ISIS 由表中

3、此时再AR5上面查看路由发现,只学习到了用户所需要的

OSPF 引入相同

一图流

策略工具2 :Route-Policy

Roure-Policy是一个策略工具,用于过滤路由信息,以及为过滤后的路由信息设置属性

一个Roure-Policy 工具由一个或者多个节点组成 节点内,每个节点内部包括了多个if-match与apply子句组成,内部条件语句之间的关系由与组成,即必须满足所有的条件才可以执行,有一个条件没有满足就不执行

节点与节点之间的关系比较简单,由或组成 即如果节点一没有匹配到可以匹配节点2.3.4.5.......n/直到匹配失败 匹配从上到下执行

在具体的表现上面,与进行线上购物买家的判断行为相似,表现在都列出了具体的条件 (货物的属性 (ip 地址)评价等 )然后根据这些属性继续是否购买的动作(permit/deny)

使用这个工具 修改优先级只在本地生效

Route-Policy 组成

Route-Policu <name> 名称用户可以自定义 <deny/permit> 执行动作 node 节点编号 0-65535

进入Route-Policy 后 配置if-match 与 apply

if -match 用于定义匹配条件 一个节点可以有多个if-match 有可以不用 if-match

如果没有配置则默认 则这个节点默认匹配 所有路由

apply 用于定义过滤后执行的动作 系统根据 apply 定义的动作对路由信息进行属性的修改

一个节点可以有多个 apply 有可以不用 apply

如果只要过滤路由,可以不用配置 Apply

配置需要注意的地方

但是需要注意 if-math acl 一个节点只可以配置一次 再次配置会导致if-match acl<id>发送变化

如果 某个路由信息没有通过节点 默认为没有通过 Route-Plicy

需要注意华为设备 Route-Police 默认情况下拒绝所有路由 ,在配置完拒绝之后需要配置一个没有 ip-macth apply 的Route-Police以保证其他路由的通过

Roure-Plicy 节点过滤结果 需要考虑以下 两点

1 节点的动作 是允许还是拒绝

2 if - match 的引用 规则

比如说你作为 一个店铺的员工 在进货上你的意见需要于老板一致 假如你的意见是进货 老板的意见也是进货 那么这个货物就会添加进入

双点双向重发布(HCIE)

概念 俩个边界路由器把两个路由域的路由互相引入 比如 isis---->ospf ospf----->isis

两个路由域存在两个边界路由器,并且都执行双向路由重分发,此时称为双点双向路由重发布

双点双向路由重发布是一种经典的路由模型,因单点的双向路由重发布缺乏冗余性,一旦单点的边界路由器故障,那么两个路由域之间的通信可能就会出现问题,因此在大型网络部署中一般采用双点双向路由重发布

双点双向重路由发布虽然增强了网络的可靠性,但是容易引发:次优路径、路由环路等问题

双点双向重路由问题一 次优路径

我们拿上面的拓扑图举例

我们在AR6与AR1上面引入了 10.1.1.1 与 20.1.1.2 的IP地址 产生两个外部路由 OSPF O_ASE

与 ISIS isis-L2

现在我们可以看到前往两个地址的路由条目都是最佳条目 ,这是因为现在的两个路由表但是独立的没有做引入

现在配置引入观察结果

其路由转发结果被修改为

这是为什么呢

这是因为在OSPF引入ISIS的过程结束之后 ISIS设备学习到了ospf的路由信息(前往10.1.1.1)并添加进ISIS路由表 ,ISIS的外部路由优先级为15 这个时候引入设备(AR7)学习到了ISIS产生(AR9)的前往10.1.1.1 的路由 这个时候设备学习到了两个外部路由,一个来自于 OSPF的外部的路由信息(前往10.1.1.1 优先级为150)另一个为ISIS的外部路由优先级为 15 设备在进行优先级比对后选择来自于isis的外部路由

图为AR4的路由表

解决方法 一拒绝路由条目从ISIS出去,再次被OSPF学习

解决方法

步骤一 配置ACL 拒绝 1.1.1.1

ACL在作为路由策略时默认拒绝所有

步骤一 进入isis 调用Fillter-Policy

为什么在出路由表 配置

如果在进入点配置问题是解决了,但是路由也不学习了,我们在协议的出口地配置

就可以解决问题(?)

先思考一个问题这个路由器的ISIS路由是谁给的

那么解决方法就简单来 不要让aR2传递1.1.1.1的路由下来 也不要让aR3传递1.1.1.1的路由下来

Filter-Policy 不会影响其它设备的路由学习除了,除了依靠路由生成的三类LSa

解决了吗(?)解决了是 ENSP问题

双点双向重路由问题2 路由环路

场景描述

1. R1将直连路由10.1.10/24引入到OSPF中

2. R1、R2、R3运行OSPF协议,10.1.1.0/24网段路由在全OSPF域内通告

R2执行了双向路由重发布

4. R2、R3、R4运行IS-IS协议, 10.1.1.0/24网段路由在全IS-IS域内通告。

R3执行了双向路由重发布

10.1.1.0/24网段路由再次被通告进OSPF域内,形成路由环路

解决思路

可以理解为一个商店把一个货物卖给了另外一个店铺又把货卖了回来,不过就如同商店在接收或者贩卖这个东西是会打上标签一样,是否可以通过这个思路来解决问题呢

我们让ospf的路由信息在进入isis之后打上一个特殊的标签(tag)让另外一个设备在发现带有特殊标签时不予接收 当然需要在另外一个设备,做同样的配置 不然就会发生这样的事

策略路由


PBR原理与应用场景

策略路由技术背景

在某些场景中我们希望一些特定用户、特定业务的流量走指定的转发路径,而其余用户或业务的流量则依旧根据路由表进行转发

PBR (Policy-Based Routing,策略路由): PBR使得网络设备不仅能够基于报文的目的IP地址进行数据转发,更能基于其他元素进行数据转发,例如源IP地址、源MAC地址、目的MAC地址、源端口号、目的端口号、VLAN-ID等等

用户还可以使用ACL匹配特定的报文,然后针对该ACL进行PBR部署

若设备部署了PBR,则被匹配的报文优先根据PBR的策略进行转发,即PBR策略的优先级高于传统路由表

策略路由 PBR分类

本地策略路由

:对本设备发送的报文实现策略路由,比如本机下发的ICMP、BGP等协议报文当用户需要实现不同源地址的报文或者不同长度的报文通过不同的方式进行发送时,可以配置本地策略路由。

常用Policy-Based-Route工具来实现

接口策略路由

对本设备转发的报文生效,对本机下发的报文不生效

当用户需要将收到的某些报文通过特定的下一跳地址进行转发时,需要配置接口策略路由。使匹西重定向规则的报文通过特定的下一跳出口进行转发,不匹配重定向规则的报文则根据路由表直接转发。接口策略路由多应用于负载分担和安全监控。

常用Traffic-Policy工具来实现。

智能策略路由SPR (Smart Policy Routing)

PBR与路由策略区别

路由策略是一套用于对路由信息进行过滤、属性设置等操作的方法,通过对路由的操作或控制,来影响数据报文的

转发路径PBR直接对数据报文进行操作,通过多种手段匹配感兴趣的报文,然后执行丢弃或强制转发路径等操作

本地策略路由PBR介绍 - 结构

一个PBR工具由一个或者多个节点组成 节点内,每个节点内部包括了多个条件语句与执行子句组成,内部条件语句之间的关系由与组成,即必须满足所有的条件才可以执行,有一个条件没有满足就不执行

节点与节点之间的关系比较简单,由或组成 即如果节点一没有匹配到可以匹配节点2.3.4.5.......n/直到匹配失败 匹配从上到下执行

语法结构

配置方法图片(ENSP模拟器无法实现)

MQC(Modular QoS Command-LineInterface,模块化QoS命令行)

是指通过将具有某类共同特征的数据流划分为一类,并为同一类数据流提供相同的服务,也可以对不同类的数据流提供不同的服务

MQC包含三个要素:流分类 (trafficclassifier) 、流行为 (traffic behavior) 和流策略 (traffic policy)

流分类 (可以理解为 if-math ) 作用是匹配ACL 源目IP VLAN等信息,流行为,可以理解为apply作用是的匹配发送后执行的动作

一个流策略是由 流分类和流行为组成

MQC的流行为支持重定向报文,因此可以使用MQC实现IP单播策略路由

流行为:用来定义执行的动作,支持报文过滤、重标记优先级、重定向、流量统计等动作.

图片介绍

流分类支持的匹配项目

二层可匹配项

VLAN报文Tag的ID信息

ACL 4000 ~ 4999匹配的字段 目的MAC地址 or 源MAC地址

等。。。

三层可匹配项

ACL 2000 ~ 3999匹配的字段

IP报文的IP优先级

ipv4的地址长度

等。。。

其它

出接口 入接口 所有的报文 等

MQC - 策略

流策略:流策略支持在接口上调用。

流策略存在方向(inbound、outbound)的概念,策略中的流行为匹配入、出方向的报文,对匹配中的报文执行相应的流动作。

配置方法(命令行版本后续补充 )

流量过滤(图片版本后续修改)

为提高网络安全性,管理人员需要控制进入网络的流量,将不信任的报文丢弃在网络边界。所谓的不信任报文是指对用户来说存在安全隐患或者不愿意接收的报文。同时保证数据访问安全性,企业网络中经常会要求一些部门之间不能相互访问。

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值