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路由属性和选路规 ...
随机推荐
- 【网络编程】TCPIP_3_地址族与数据序列
目录 前言 3. 地址族与数据序列 3.1 分配给套接字的 IP 地址与端口号 3.2 参数 IP 地址 3.2.1 IPV4 地址的结构体 3.2.2 地址族(Address Family) 3.2 ...
- BeautifulSoup4的使用
一.介绍 Beautiful Soup 主要是用来解析提取 HTML 和 XML 文件中的数据. 现在官网推荐使用 Beautiful Soup 4 ,已经被移植到了BS4中. 安装 Beautifu ...
- noip31
T1 关于我考场上乱冲平衡树这件sb事 很快就冲了出来 然后手抖打错样例,把我hack了 sb字典序 正解: 先不考虑字典序问题,先将最大分数找出来,然后按照顺序考虑每一个位置填什么那个数能让分数尽可 ...
- 关于Ubuntu18.04 linux系统使用搜狗输入法 出现乱码
解决: 执行下面的命令即可!无需重启系统 killall fcitx
- 关于Ubuntu18.04 linux系统下使用Tim QQ 微信
先配上张图 步骤: 1.1 :需要安装环境deepin-wine 1.1:(你把他理解为jdk就好,没有jdk无法运行java程序,同理没有deepin-wine环境无法运行腾讯产品) 1.2 :去哪 ...
- 大数据Shell编程 之 常用正则表达式
使用man grep查看grep的帮助文档,有如下内容: 可以看出,正则表达式由三类,分别是 基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 B ...
- Java异常与异常处理
异常体系结构 1.所有异常都继承于Throwable类,其下有两大子类: (1)Error类:错误,一般编程人员不太接触,如虚拟机错误.线程死锁.硬伤:使程序崩溃 (2)Exception类:异常,编 ...
- Ubuntu防火墙:ufw
原始linux的防火墙是iptables,以为过于繁琐,各个发行版几乎都有自己的方案; ubuntu下的防火墙是ufw[ubuntu fireward的缩写],centos的防火墙是fireward ...
- 如何让BootStrap栅格之间留出空白间隙呢?
BootStrap栅格之间留出空隙 BootStrap栅格系统可以把我们的container容器划分为若干等分,如果想要每个部分之间留出一定的空隙,我们很可能首先想到的方法就是用margin外边距来使 ...
- 获取本地请求的真实IP地址
1 /** 2 * 自定义访问对象工具类 3 * 4 * 获取对象的IP地址等信息 5 * 6 */ 7 public class CusAccessObjectUtil { 8 9 /** 10 * ...