HCNP Routing&Switching之路由控制-策略路由
前文我们了解了路由策略工具Route-Policy相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15322135.html;今天我们来聊一聊策略路由相关话题;
策略路由(Policy Based Route 基于策略的路由,简称PBR);我们知道路由策略的核心就是通过过滤工具将要处理的路由过滤出来,然后使用策略或调用工具将过滤出来的路由做某些动作,比如拒绝或者允许;如果我们需要修改路由属性,则使用策略工具Route-Policy,然后使用调用工具在某个动态路由进程下应用对应的路由策略;路由策略的作用是通过各种工具影响路由表,从而实现影响数据的转发;我们今天说的策略路由和前边的路由策略,它们都是可以实现影响数据的转发,即策略路由和路由策略的最终目的是一样的;策略路由和路由策略不同的是,路由策略是影响路由表来实现影响数据包的转发,而策略路由它并不会影响路由表,它是通过策略来定义转发报文的规则,即打破了传统路由选路规则;默认情况下路由器是通过路由表来转发数据,而定义了策略路由的路由器,它会优先根据策略路由来转发数据,如果对应报文没有被策略路由匹配到,那么对应报文会通过路由表来进行转发;简单讲策略路由就是通过管理员定义规则来实现报文转发,如果对应报文没有被策略匹配到,那么它还是会根据路由表来进行转发;
策略路由应用场景

提示:我们可以制定策略来实现学生网段访问外网走ISP1,教师网段访问外网访问ISP2;对应路由器的路由表对应网段的下一跳或出接口我们都可以不用管,直接根据自己的需求写策略路由来描述对应流量的转发过程;即我们可以根据制定策略路由实现数据包转发根据对应数据包源地址选路(而路由表是通过目标地址,根本不看源地址);

提示:策略路由除了可以实现通过源地址来选路以外,我们还可以通过不同应用来选路;比如上图FTP的流量走s2/0,www流量走s2/1;对于路由策略我们根本无法做到根据不同应用流量来选路;
路由策略和策略路由的区别

提示:路由策略中,拒绝的将不会被通过,其原因是路由策略最终是影响路由表,然后对应数据包转发已经是通过影响后的路由表,所以路由策略中明确拒绝的路由,对应路由表中也不会存在,没有路由,很显然数据包转发也不能正常进行;但在路由策略中,拒绝的将做正常路由表转发;因为策略路由它不会去修改路由表,所以没有被策略路由匹配上或者被拒绝的流量,都会再去根据路由表进行数据包转发;路由策略和策略路由两者最大的区别在于路由策略基于控制平面,为路由协议和路由表服务;而策略路由是基于转发平面,为转发策略服务;一个直接影响路由表,一个不影响路由表,只影响满足对应策略的数据转发;
策略路由规则

提示:策略路由和路由策略规则语法都比较像,都有是以节点为单位,一个节点里可以包含多个条件和apply 子句;都有名称、匹配模式和节点编号;节点与节点之间的关系是或关系;节点里如果有多个条件或apply 子句,则它们的关系是与关系,即多个条件都必须同时满足,同时对应apply子句也会同时都被执行;
策略路由匹配流程

提示:策略路由的匹配流程和路由策略的匹配流程基本一样,都是从上至下一次匹配每个节点,如果被某一节点匹配上以后,对应不再继续向下匹配,匹配上的流量根据匹配模式,如果匹配模式是permit则执行apply子句;如果匹配模式deny则按照普通报文根据路由表转发;如果没有被任何一个节点上的规则匹配,对应报文也会按照普通报文根据路由表转发;策略路由匹配规则和路由策略匹配规则唯一不同之处就是最后的默认规则,路由策略的默认规则是拒绝操作,而策略路由的默认规则是按照普通报文根据路由表转发;即最后被策略路由拒绝或没有被策略路由匹配的报文最终都会当作普通报文根据路由表进行转发处理;
本地策略路由:本地策略路由是指经对本机下方的报文进行处理,对转发到报文不起作用;

提示:本地策略路由只影响本机下发的报文,并不影响经过本机转发的报文;
接口策略路由:接口路由策略是指只对转发到报文起作用,对本地下发的报文不起作用;

提示:转发报文是指不是本地发送的报文,像这类报文只会被接口策略路由匹配,本地策略路由不会去匹配;简单讲,本地策略路由只能匹配本地下发的报文,而接口策略路由只能匹配被转发的报文;
实验:如下拓扑,配置ospf

R1的配置

sys
sys R1
int g0/0/0
ip add 172.16.0.1 24
int g0/0/1
ip add 172.17.0.1 24
int g0/0/2
ip add 192.168.12.254 24 ospf 1 router-id 1.1.1.1
area 0
net 172.16.0.1 0.0.0.0
net 172.17.0.1 0.0.0.0
net 192.168.12.254 0.0.0.0
R2的配置

sys
sys R2
int g0/0/0
ip add 172.16.0.2 24
int g0/0/1
ip add 172.17.0.2 24
int g0/0/2
ip add 192.168.21.254 24 ospf 1 router-id 2.2.2.2
area 0
net 172.16.0.2 0.0.0.0
net 172.17.0.2 0.0.0.0
net 192.168.21.254 0.0.0.0
client1的配置

server1的配置



验证:查看R1的路由表

提示:可以看到R1学习到了192.168.21.0/24网段路由,且出接口和下一跳都有两个;从上面的信息可以看到R1去往192.168.21.0/24网段的流量会被172.16.0.0和172.17.0.0这两条链路负载分担;
验证:在R1上用ping命令测试,看看R1去往192.168.21.1的流量走哪一条链路?

提示:左边是R1 的g0/0/0口抓包,右边是g0/0/1口抓包;可以看到R1tracert 192.168.21.1走的是172.17.0.2下一跳;
在R1上指定策略路由,让ping 192.168.21.1的流量下一跳是172.16.0.2
在R1上新建acl匹配去往192.168.21.1的流量

在R1上新建策略路由,调用acl 3000,执行修改下一跳地址为172.16.0.2

在R1上调用策略路由,再次ping 192.168.21.1 ,抓包看看对应报文会走那边?

提示:可以看到调用了策略路由以后,对应R1ping R2的流量就走g0/0/0口了;因为下一跳为172.16.0.2和R1的g0/0/0口直连;
验证:用客户端ping服务端,看看对应流量是否会走172.16.0.2?

提示:可以看到从客户端转发的流量并不会受本地策略的影响,它还是走没有做本地策略前172.17.0.2的链路;从上面实验可以看到本地策略路由对转发的流量是不生效的;
接口策略路由配置
接口策略路由是通过流策略技术实现;流策略是指流分类和流行为关联;流策略形成了模块化配置最大优点是可以节省配置,支持匹配修改;流分类我们可以理解为流量匹配分类工具,它主要将对应流量抓去出来,进行分类;流行为我们可以理解为对流量的处理动作的描述;比如打标签、重定向、负载分担、报文分片、流量限速、流量统计等等;流策略就是调用流分类和流行为关联的调用用工具,即我们在那个接口的那个方向应用流分类和流行为;
实验:还是上述实验拓扑,使用流分类过滤FTP流量、调整FTP流量链路或www流量链路
验证:用客户端访问服务端的FTP和HTTP服务,抓包看看对应流量是怎么走的

提示:可以看到FTP的流量来回都是走的G0/0/0口到达服务器,HTTP的流量来回都是走g0/0/1口;
在R1上创建ACL匹配FTP流量

在R1上创建流分类,调用acl name FTP

提示:创建流分类,需要给流分类取一个名称,以示区分其他流分类;在流分类里用if-match 语句调用acl;这里acl可以写acl编号,或者是acl名称;
在R1上创建流行为

提示:以上命令表示创建一个名为redirect-g0/0/1的流行为,具体动作是重定向下一跳地址为172.17.0.2;
在R1上创建流策略

提示:创建流策略就是把流分类和流行为进行关联的过程;
在R1的g0/0/2接口调用流策略filter-FTP-to-g0/0/1

提示:接口策略路由只能在接口的入方向调用,因为出方向的流量是经过路由表选路以后才能匹配到;
验证:查看路由器流策略应用的接口

提示:可以看到我们创建的流策略在R1的g0/0/1口应用着;
验证:现在用客户端访问服务端FTP服务,看看对应流量是否是我们流策略定义的走呢?

提示:可以看到现在客户端访问服务端FTP服务,对应流量不再从g0/0/0口发出,而是根据我们定义的流策略从g0/0/1口发出;
HCNP Routing&Switching之路由控制-策略路由的更多相关文章
- HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List
前文我们了解了IS-IS路由聚合和认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15306645.html:今天我们来聊一聊路由控制技术中的路由策 ...
- HCNP Routing&Switching之路由引入
前文我们了解了路由控制技术策略路由相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15333139.html:今天我们来聊一聊路由引入技术相关话题: 路 ...
- HCNP Routing&Switching之路由过滤工具Filter-Policy
前文我们了解了路由控制技术中路由策略和路由匹配工具IP-Prefix相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15314262.html:今天我们 ...
- HCNP Routing&Switching之路由引入导致的问题及解决方案
前文我们了解了路由引入相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15359902.html:今天我们来讨论下由于路由引入所导致的问题以及怎么避免此 ...
- HCNP Routing&Switching之路由策略工具Route-Policy
前文我们了解了路由过滤和路由过滤工具Filter-Policy使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15316188.html:今天我们来 ...
- HCNP Routing&Switching之BGP路由控制
前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...
- HCNP Routing&Switching之BGP基础
前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...
- HCNP Routing&Switching之OSPF LSA更新规则和路由汇总
前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...
- HCNP Routing&Switching之BGP路由属性和优选规则
前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...
随机推荐
- SpringCloud升级之路2020.0.x版-18.Eureka的客户端核心设计和配置
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford Eureka 客户 ...
- GitHub自动化部署(CD) asp.net core 5.0 项目(免费空间)
这里我简单介绍一下使用Github自动化部署自己项目到Heroku云服务器上,Heroku竟然是一个很非常老牌的云平台服务商,竟然还没听说过,网上一查2010被Salesforce收购,网上有很多关于 ...
- noip18
T1 来自cf原题 考场直接暴力枚举 \(A,B\),15pts. 正解: 首先时间的表达式,\(T=\frac{A}{a_{i}}+\frac{B}{b_{i}}\),然后以\(\frac{1}{a ...
- 常用正则表达式最强汇总(含Python代码举例讲解+爬虫实战)
大家好,我是辰哥~ 本文带大家学习正则表达式,并通过python代码举例讲解常用的正则表达式 最后实战爬取小说网页:重点在于爬取的网页通过正则表达式进行解析. 正则表达式语法 Python的re模块( ...
- 【HMC Core 6.0全球上线】图形计算服务新插件,助力高画质3D手游创新
HMS Core 6.0已于7月15日全球上线,本次新版本向广大开发者开放了众多全新能力与技术.其中华为图形计算服务(CG Kit)开放了体积雾插件和流体插件,为3D手游画面的提升提供了坚实的技术基础 ...
- CentOS7 安装Oracle19c数据库RPM包安装
我前两天发了安装oracle12c的方法,但是我虽然在虚拟机试验成功了,正式服务器安装的时候发现还是不行,安装页面卡空白,也没有解决办法,所以我就放弃了界面安装找命令行安装的办法,找了一些之后发现都比 ...
- CPU 进程 线程 关系与区别
- linux 下文件的权限
- Spring第一课:配置文件及IOC引入(一)
Spring最核心的特点就是控制反转:(IOC)和面向切面(AOP) 首先作为一个Spring的项目需要导入的四个核心包,一个依赖: 四核心:core.context.beans.expression ...
- MongoDB学习笔记二- Mongoose
MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...