前文我们了解了路由策略工具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之路由控制-策略路由的更多相关文章

  1. HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List

    前文我们了解了IS-IS路由聚合和认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15306645.html:今天我们来聊一聊路由控制技术中的路由策 ...

  2. HCNP Routing&Switching之路由引入

    前文我们了解了路由控制技术策略路由相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15333139.html:今天我们来聊一聊路由引入技术相关话题: 路 ...

  3. HCNP Routing&Switching之路由过滤工具Filter-Policy

    前文我们了解了路由控制技术中路由策略和路由匹配工具IP-Prefix相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15314262.html:今天我们 ...

  4. HCNP Routing&Switching之路由引入导致的问题及解决方案

    前文我们了解了路由引入相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15359902.html:今天我们来讨论下由于路由引入所导致的问题以及怎么避免此 ...

  5. HCNP Routing&Switching之路由策略工具Route-Policy

    前文我们了解了路由过滤和路由过滤工具Filter-Policy使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15316188.html:今天我们来 ...

  6. HCNP Routing&Switching之BGP路由控制

    前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...

  7. HCNP Routing&Switching之BGP基础

    前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...

  8. HCNP Routing&Switching之OSPF LSA更新规则和路由汇总

    前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...

  9. HCNP Routing&Switching之BGP路由属性和优选规则

    前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...

随机推荐

  1. [WPF] 使用 MVVM Toolkit 构建 MVVM 程序

    1. 什么是 MVVM Toolkit 模型-视图-视图模型 (MVVM) 是用于解耦 UI 代码和非 UI 代码的 UI 体系结构设计模式. 借助 MVVM,可以在 XAML 中以声明方式定义 UI ...

  2. Java集合框架详细总结

    一:Collection集合 呼~,历过好几天的奋战终于把集合框架肝完了,b站某马老师讲的是真的非常详细而且动听,原理给你分析得明明白白的,此前也找了许多关于集合这一大章节的视频,发现更多的是针对于使 ...

  3. miniFTP项目实战六

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  4. vivo商城计价中心 - 从容应对复杂场景价格计算

    一.背景 随着vivo商城的业务架构不断升级,整个商城较为复杂多变的营销玩法被拆分到独立的促销系统中. 拆分后的促销系统初期只是负责了营销活动玩法的维护,促销中最为重要的计价业务仍然遗留在商城主站业务 ...

  5. 使用msp432搭建的平衡小车(一)

    1.前言 笔者是一名大二学生曾经荒废一年学业,现在不断学习,所以有任何问题都希望讨论提出,你们的支持就是我的动力. 关于硬件搭建的步骤,笔者就不提网上方案太多了,笔者使用编码器电机,驱动采用tb661 ...

  6. 处理URLs

    问题 你有一个包含相对URLs路径的HTML文档,需要将这些相对路径转换成绝对路径的URLs. 方法 在你解析文档时确保有指定base URI,然后 使用 abs: 属性前缀来取得包含base URI ...

  7. web.xml中自定义Listener

    Listener可以监听容器中某一执行动作,并根据其要求做出相应的响应. 常用的Web事件的监听接口如下: ServletContextListener:用于监听Web的启动及关闭 ServletCo ...

  8. 使用volatile的条件

    使用volatile的值不能依赖于它之前的值: volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果. ...

  9. Struts2之OGNL与ValueStack

    时间:2017-1-12 12:02 --OGNL1.OGNL表达式是什么    OGNL的全称是Object-Graph Navigation Language的缩写,中文名是对象图导航语言,它是一 ...

  10. Spark消费Kafka如何实现精准一次性消费?

    1.定义 精确一次消费(Exactly-once) 是指消息一定会被处理且只会被处理一次.不多不少就一次处理. 如果达不到精确一次消费,可能会达到另外两种情况: 至少一次消费(at least onc ...