路由策略与路由控制

路由控制概述

路由控制可以通过路由策略(Route-Policy)实现,路由策略应用灵活广泛

  • 控制路由的发布:通过路由策略对发布的路由进行过滤,只发布满足条件的路由
  • 控制路由的接收:通过路由策略对接收的路由进行过滤,只接收满足条件的路由
  • 控制路由的引入:通过路由策略控制从其他路由协议引入的路由条目,只有满足条件的路由才能被引入

   

路由控制工具

匹配工具1:访问控制列表

访问控制列表(ACL)是一个匹配工具,能够对报文及路由进行匹配和区分

ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是这条规则相对应的处理动作

ACL的组成

  • ACL编号:在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号
  • 规则:一个ACL通常由若干条"permit/deny"语句组成,每条语句就是该ACL的一条规则
  • 规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。所有规则军按照规则编号从小到大进行排序
  • 动作:每条规则中的permit或deny,就是与这条规则相对应的处理动作。permit指允许,deny指拒绝,但是ACL一般时结合其他技术使用,不同的场景,处理动作的含义也有所不同
  • 匹配项:ACL定义了及其丰富的匹配项,支持的匹配项有二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型)、三层报文信息(如目的地址、协议类型),以及四层报文信息(如TCP/UDP端口号)等

通配符

通配符是一个32比特长度的数值,用于指示IP地址中哪些比特位需要严格匹配,那些比特位无需匹配

ACL的写法

Acl 编号

Rule 规则编号 动作(permit/deny) source 网段 通配符

网段号:相同位数保持不变,不同位数写为01都可以,默认写为0

通配符:相同位数写为0,不同位数写为1

举例:

10.0.1.0/24

10.0.2.0/24

10.0.3.0/24

   

10.0.00000001.0

10.0.00000010.0

   

10.0.00000011.0

网段号:10.0.0.0

通配符:0.0.3.0

ACL的分类

  • 基本ACL(2000-2999):仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则
  • 高级ACL(3000-3999):可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目端口号、UDP源/目端口号、生效时间段来定义规则
  • 二层ACL(4000-4999):使用报文的以太网帧头信息来定义规则,如根据源MAC地址、二层协议类型等
  • 用户自定义ACL(5000-5999):使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则
  • 用户ACL(6000-6999):既可使用IPv4报文的源IP地址或源UCL组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则

ACL的匹配机制

ACL的匹配机制概括来说就是:

  • 配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则
  • 一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且步子继续尝试与后续规则匹配

ACL的匹配流程

首先系统会查找设备上是否配置了ACL

  • 如果ACL不存在,则返回ACL匹配结果为:不匹配
  • 如果ACL存在,则查找设备是否配置了ACL规则
    • 如果规则不存在,则返回ACL匹配结果为:不匹配
    • 如果规则存在,则系统会从ACL中编号最小的规则开始查找
      • 如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)
      • 如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)
      • 如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查找到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配

ACL中的permit和deny的含义

ACL一般是结合其他技术使用,不同的场景,处理的动作不同

  • ACL如果与流量过滤技术结合使用
    • permit:允许通行
    • deny:拒绝通行
  • 当ACL技术与路由过滤技术结合使用
    • permit:匹配该条路由条目
    • deny:不匹配该条路由条目

ACL常用匹配举例

注:最后一条规则默认拒绝所有

匹配工具2:IP前缀列表

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

IP-Prefix的匹配机制

IP-Prefix的匹配举例

Case1说明:这种情况属于单节点的精确匹配,只有目的地址、掩码完全相同的路由才会匹配成功,而且节点的匹配模式为permit,所以路由10.1.1.0/24被permit,属于匹配成功并被permit,其他路由由于未匹配成功被Deny

Case2说明:这种情况属于单节点的精确匹配,但节点的匹配模式为deny,所以路由10.1.1.0/24还是被deny,属于匹配成功但被deny,其他路由则属于未匹配成功被默认deny

Case1说明:这种情况属于多节点的精确匹配

  • 路由10.1.1.0/24在匹配index 10时,满足匹配条件,但匹配模式是deny,属于匹配成功但被deny
  • 路由10.1.1.1/32在匹配index 10时,不满足匹配条件,则继续匹配index 20,此时匹配成功,且index 20的匹配模式时permit,属于匹配成功并被permit
  • 其他路由由于都不符合index 10和20的条件,属于为匹配成功被默认deny

Case2说明:此时greater-equal-value=26,less-equal-value=32。配置时,需满足mask-length<=greater-equal-value<=less-equal-value,否则配置不成功

Case1说明:此时greater-equal-value=8,less-equal-value=32,前8个比特与10.0.0.0相同,掩码长度在8-32之间的路由全部被匹配并被permit

Case2说明:

  • 对于index 10,greater-equal-value=24,less-equal-value=32,前24个比特与10.1.1.0相同,所有掩码长度在24到32的路由全部匹配但被deny
  • 对于index 20,greater-equal-value=0,less-equal-value=32,前16个比特与10.1.0.0相同,掩码长度在16到32的路由被匹配,此时只有10.1.0.0/16被匹配并被permit,剩下的被默认deny

注:最后一条规则默认拒绝所有

策略工具1:Filter-Policy

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

   

Filter-Policy在距离矢量路由协议中的应用

如果要过滤掉上游设备到下游设备的路由,只需要在上游设备配置filter-policy export或者在下游设备上配置filter-policy import

Filter-Policy在链路状态路由协议中的应用

Filter-Policy中import和export

  • Import:链路状态路由协议在计算出路由信息加入路由器的IP路由表的时候进行过滤,使用import
  • Export:将已经加入到路由器的IP路由,引入到协议的LSDB中时,使用export

举例:将IS-IS协议中的路由引入到OSPF协议中时,使用Filter-Policy时使用export,因为在引入的时候是将IS-IS计算出的路由加入到路由器的IP路由表后,从IP路由表中将IS-IS计算出的路由条目引入到OSPF协议中。从IP路由表引入到OSPFLSDB中,使用export

策略工具2:Route-Policy

   

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

一个Route-Policy由一个或多个节点(Node)构成,每个节点都可以是一系列条件语句(匹配条件)以及执行语句(执行动作)的集合,这些集合按照编号从小到大顺序排列

当使用Route-Policy时,Node的值小的节点先进行匹配。一个节点匹配成功后,路由将不再匹配其他节点。全部节点匹配失败后,路由将被过滤。

Route-Policy的组成

一个Route-Policy由一个或多个节点构成,每个节点包括多个if-match和apply子句

Route-Policy的匹配顺序

路由策略使用不同的匹配条件和匹配模式选择路由和改变路由属性

匹配模式

  • permit:路由将被允许通过,并且执行该节点的apply子句对路由信息的一些属性进行设置
  • deny:路由将被拒绝通过

注:最后一条规则默认拒绝所有

posted @ 2022-07-04 17:44  hongliang888  阅读(678)  评论(0编辑  收藏  举报