路由控制——路由策略与策略路由

目录

策略路由和路由策略的区别

路由策略——Route Policy

Route-Policy的组成

Route-Policy的匹配规则

Route-Policy的判定规则

Route-Policy与Filter-policy对比

策略路由

接口策略路由Traffic-Policy

本地策略Policy-Based-Route

报文路径相关知识 


策略路由和路由策略的区别

路由策略

策略路由

对路由表中的路由条目进行管理

通过路由过滤以及路由属性修改,控制网络流量可达性、控制流量路径

基于策略转发,失败后再找路由表转发

无法过滤路由,只能通过对报文定义行为实现流量路径的控制

基于控制平面,为路由协议与路由表服务

基于转发平面,为转发策略服务

与路由协议结合完成策略

需要手工逐跳配置,以保证报文按策略转发

命令:Route-Policy

命令:Policy-pased-routed(本地策略路由)

           Traffic Policy(接口策略路由)


路由策略——Route Policy

Route-Policy的组成

Route-Policy由若干个节点组成(Node)

一个节点又由若干个语句组成(if-match、apply)

虽然Node由If-match和apply组成,但是Node中也可以没有If-match语句和apply语句,即:

  • if-match语句和apply语句可以单独存在,也可以都不存在,也可以都存在
  • 当没有If-match语句,此时代表匹配所有路由
  • 当没有apply语句,此时代表即不执行任何动作

组成介绍

Node         节点,有允许和拒绝两种动作(最多65535个节点)

If-match    节点匹配规则,一般引用条件工具(ACL等)实现,来筛选路由

Apply        匹配规则成功后对路由执行的动作

多个节点之间的关系

Node与Node之间是“或”的关系。即 Node与Node之间没有关联,互不影响

Node下多个字句之间的关系

        当存在多个If-match语句时:

                相同的If-match语句之间是“或”的关系

                        即:当If-match 引用了多个ACL,则只要匹配其中1个ACL就可以

                不同的If-match语句之间是“与”的关系

                        即:当If-match引用了ACL,也引用了Tag,则这两个条件都要满足

        当存在多个Apply语句时:

                多个Apply语句之间是“与”的关系

例子:

route-policy celue permit node 10            创建名称为celue的策略,节点为10,动作为允许

         if-match acl 2000                            引用条件工具acl 2000

         apply tag 10                                    匹配acl2000的路由打上标记10

Ospf

        import-route static route-policy celue   在ospf中引用静态路由时调用Route-policy

Route-Policy的匹配规则

  1. 匹配时按照Node号,从小到大依次匹配。
  2. 如果匹配上Node中的if-match语句,直接对此路由执行Node下的apply语句,不再继续向下匹配
  3. 如果匹配不上Node下的if-match语句,则向下匹配另一个Node
  4. 如果所有的Node都不匹配,则匹配默认的语句,拒绝所有路由。

Route-Policy的判定规则

路由策略的匹配模式

即:Node的动作

if-match的匹配模式

即:条件工具中的动作

对匹配的路由执行的动作

permit

permit

匹配上IF-match后执行permit操作,不再匹配其它的节点

deny

permit

匹配上IF-match后执行deny操作,不再匹配其它的节点

permit

deny

匹配上IF-match后,在本节点不允许通过,匹配下一节点,依次循环

deny

deny

匹配上IF-match后,在本节点不允许通过,匹配下一节点,依次循环

注意:当If-match语句中引用条件工具(ACL或者前缀列表时),AXL和前缀列表的动作是Deny,则代表匹配此ACL和前缀列表Deny语句的路由,跳过这个Node,继续向下匹配

Route-Policy与Filter-policy对比

  • 两者都可以实现路由过滤
  • 但是Filter-policy主要是通过基本ACL、IP-Prefix-List抓取网络号来进行路由过滤,对路由其它属性无法进行匹配,在某些情况下工作量比较大。并且此手段无法更改路由属性
  • Router-Policy可以匹配路由的各种特征,并可以对路由的属性做更改,更加灵活,高效

策略路由

策略路由主要分为本地策略路由和接口策略路由,通过对报文进行控制(不更改路由表条目),实实现不同的流量转发路径

灵活,可以根据管理员定义的策略执行报文转发(优于路由表)

不过配置有点复杂,需要在多台设备上做定制的配置

接口策略路由Traffic-Policy

仅对穿越设备的报文生效,对本地始发的报文不生效

接口策略路由的组成主要分为三部分:

 流分类(traffic classifier)、 流行为( traffic behavior)、流策略(traffic policy )

流分类(类似于匹配规则)

traffic classifier 123  operator or/and   创建流分类123,绑定acl2000

 if-match acl 2000

        or:只要匹配任意一条if-match语句就属于定义的这个类

        and:需要匹配所有if-match语句才属于定义的这个类

        默认是or

流行为(类似于执行的动作,修改路由属性等)

traffic behavior 123     创建流行为123,更改下一条为1.1.1.1

 redirect ip-nexthop 1.1.1.1

        流动作要全部执行

流策略(就是将流分类和流行为绑定)

traffic policy 123           创建流策略,将流分类和流行为绑定

classifier 123 behavior 123

接口策略路由只能在接口入方向引用

        interface GigabitEthernet0/0/0

            traffic-policy 123 inbound

本地策略Policy-Based-Route

过此策略仅对本地始发的报文生效,对穿越设备的路由不生效

配置上类似于Route-Policy,也是由多个节点Node组成,节点又由If-match和Apply组成

配置命令

        policy-based-route 123 permit node 10         指定动作为允许的节点10

                 if-match acl 2000                                  指定匹配规则为2000

                 apply ip-address next-hop 1.1.1.1        指定动作为下一条更改为1.1.1.1

        ip local policy-based-route 123                      在本地应用策略路由123


报文路径相关知识 

默认情况下,华为路由的负载分担机制是“基于流”的负载分担,而属于同一个流的所有报文走同一路径

如何定义流:

  • 对于TCP/UDP报文,根据报文的五元组来分流

                SIP、DIP、TCP/UDP、SPort、DPort5个参数都相同的报文属于同一个流

  • 对于非TCP/UDP报文,根据SIP、DIP定义流

                SIP、DIP两个参数相同的报文属于同一个流


版权声明:本文为m0_49864110原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。