网络学习笔记(9)- 路由策略与控制

路由控制概述

路由控制可以通过路由策略(Route-Policy)实现,路由策略应用灵活而广泛,有以下几种常见方式:

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

1657867438109.png

路由控制工具

匹配工具1

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

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

1657867602980.png

ACL的组成:

  • ACL编号:在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号,用来标识ACL。不同分类的ACL编号范围不同,这个后面具体讲。
  • 规则:前面提到了,一个ACL通常由若干条“permit/deny”语句组成,每条语句就是该ACL的一条规则。
  • 规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以自定义,也可以系统自动分配。ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。
  • 动作:每条规则中的permit或deny,就是与这条规则相对应的处理动作。permit指“允许”,deny指“拒绝”,但是ACL一般是结合其他技术使用,不同的场景,处理动作的含义也有所不同。
    • 比如:ACL如果与流量过滤技术结合使用(即流量过滤中调用ACL),permit就是“允许通行”的意思,deny就是“拒绝通行”的意思。
  • 匹配项:ACL定义了极其丰富的匹配项。例子中体现的源地址,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型)、三层报文信息(如目的地址、协议类型)以及四层报文信息(如TCP/UDP端口号)等。

通配符

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

通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。

1657868384734.png

当进行IP地址匹配的时候,后面会跟着32位掩码位,这32位称为通配符。

通配符,也是点分十进制格式,换算成二进制后,“0”表示“匹配”,“1”表示“不匹配”。通配符中的1或者0可以不连续。

具体看下这2条规则:

  • rule 5: 拒绝源IP地址为10.1.1.1报文通过——因为通配符为全0,所以每一位都要严格匹配,因此匹配的是主机IP地址10.1.1.1;
  • rule 15:允许源IP地址为10.1.1.0/24网段地址的报文通过——因为通配符:0.0.0.11111111,后8位为1,表示不关心,因此10.1.1.xxxxxxxx 的后8位可以为任意值,所以匹配的是10.1.1.0/24网段。

例子:如果要精确匹配192.168.1.1/24这个IP地址对应的网段地址,通配符是多少?

  • 可以得出:网络位需要严格匹配,主机位无所谓,因此通配符为“0.0.0.255”。

1657868521376.png

两个特殊的通配符:

  • 当通配符全为0来匹配IP地址时,表示精确匹配某个IP地址;
  • 当通配符全为1来匹配0.0.0.0地址时,表示匹配了所有IP地址。

ACL的分类与基本ACL

基于ACL规则定义方式的划分

1657868581469.png

1657868671534.png

ACL的匹配机制

1657868752065.png

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

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

匹配流程:首先系统会查找设备上是否配置了ACL。

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

从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:“匹配”和“不匹配”。

  • 匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。
  • 不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。

匹配原则:一旦命中即停止匹配。

配置顺序(config模式)

系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。

1657869234560.png

一条ACL可以由多条“deny或permit”语句组成,每一条语句描述一条规则,这些规则可能存在包含关系,也可能有重复或矛盾的地方,因此ACL的匹配顺序是十分重要的。

华为设备支持两种匹配顺序:自动排序(auto模式)和配置顺序(config模式)。缺省的ACL匹配顺序是config模式。

  • 自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,并按照精确度从高到低的顺序进行报文匹配。
  • 配置顺序,系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。——这个就是前面提到的匹配顺序。
    • 如果后面又添加了一条规则,则这条规则会被加入到相应的位置,报文仍然会按照从小到大的顺序进行匹配。

注意:ACL技术总是与其他技术结合在一起使用的,因此,所结合的技术不同,“允许 (permit)”及“拒绝 (deny)”的实际作用也会不同。例如,当ACL技术与路由过滤技术结合使用时,permit就是“匹配该条路由条目”的意思,deny就是“不匹配该条路由条目”的意思。

匹配工具2

IP前缀列表

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

不同于ACL,IP-Prefix List能够同时匹配IP地址前缀长度以及掩码长度,增强了匹配的精确度。

1657869794863.png

  • ip-prefix-name:地址前缀列表名称
  • 序号:本匹配项在地址前缀列表中的序号,匹配时根据序号从小到大进行顺序匹配
  • 动作:permit/deny,地址前缀列表的匹配模式为允许/拒绝,表示匹配/不匹配
  • IP网段与掩码:匹配路由的网络地址,以及限定网络地址的前多少位需严格匹配
  • 掩码范围:匹配路由前缀长度,掩码长度的匹配范围 mask-length<=greater-equal-value<=less-equal-value

IP-Prefix的匹配机制

1657869863054.png

1657869920608.png

策略工具

Filter-Policy

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

1657870243370.png

如图所示,R1、R2、R3之间运行BGP路由协议,路由在各个设备之间传递,当需要根据实际需求过滤某些路由信息的时候可以使用Filter-Policy实现。

OSPF中使用Filter-Policy

filter-policy import命令对接收的路由设置过滤策略,只有通过过滤策略的路由才被添加到路由表中,没有通过过滤策略的路由不会被添加进路由表,但不影响对外发布出去。

1657871542121.png

OSPF通过命令import-route引入外部路由后,为了避免路由环路的产生,通过filter-policy export命令对引入的路由在发布时进行过滤,只将满足条件的外部路由转换为Type5 LSA(AS-external-LSA)并发布出去。

1657871590543.png

IS-IS中使用Filter-Policy

1657871800628.png

与OSPF相似,filter-policy import命令只会对本地的路由表产生影响,不会将匹配的路由加入到路由表,不会影响本地设备的LSP的扩散和LSDB的同步。

1657871818994.png

当网络中同时部署了IS-IS和其他路由协议时,如果已经在边界设备上引入其他路由协议的路由,缺省情况下,该设备将把引入的全部外部路由发布给IS-IS邻居。如果只希望将引入的部分外部路由发布给邻居,可以使用filter-policy export命令实现。

BGP中使用Filter-Policy

1657871917416.png

使用filter-policy import命令可以对BGP设备全局接收的路由进行过滤,决定是否将路由添加到BGP路由表中。

1657871938099.png

使用filter-policy export命令可以将对外发布的路由进行过滤,只有通过过滤的路由才能加入BGP本地路由表,并被BGP发布。

Route-Policy

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

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

1657872143089.png

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

1657872240910.png

  • permit或deny:指定Route-Policy节点的匹配模式为允许或拒绝。
  • node:指定Route-Policy的节点号。整数形式,取值范围是0~65535。
  • if-match子句:定义该节点的匹配条件。
  • apply子句:定义针对被匹配路由执行的操作。

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

1657872297113.png

一个路由策略中包含N(N>=1)个节点(Node)。路由进入路由策略后,按节点序号从小到大依次检查各个节点是否匹配。匹配条件由If-match子句定义。

  • 当路由与该节点的所有If-match子句都匹配成功后,进入匹配模式选择,不再匹配其他节点。匹配模式分permit和deny两种:
    • permit:路由将被允许通过,并且执行该节点的apply子句对路由信息的一些属性进行设置。
    • deny:路由将被拒绝通过。
  • 当路由与该节点的任意一个If-match子句匹配失败后,进入下一节点。如果和所有节点都匹配失败,路由信息将被拒绝通过。

总结图

路由控制.png

|| 版权声明
作者:废权
链接:https://blog.yjscloud.com/archives/335
声明:如无特别声明本文即为原创文章仅代表个人观点,版权归《废权的博客》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
网络学习笔记(9)- 路由策略与控制
路由控制概述 路由控制可以通过路由策略(Route-Policy)实现,路由策略应用灵活而广泛,有以下几种常见方式: 控制路由的发布:通过路由策略对发布的路由进……
<<上一篇
下一篇>>
文章目录
关闭
目 录