关于路由控制工具01

一、ACL

ACL ( access-list)访问控制列表,是用于定义匹配规则的过滤器列表。
ACL是一组顺序排列的过滤器,每条过滤器是由匹配的条件和动作组成的,动作可以为允许或者拒绝。

作用:根据其定义的过滤器识别报文或路由,放行、过滤报文或路由,达到保护内网安全或控制路由的作用。

ACL的分类

一、按照创建ACL的命名方式

①.数字型ACL ②.命名型ACL

二、按照ACL的功能:

  • 基于接口的ACL(编号范围1000~1999)
  • 基本ACL(编号范围2000~2999)
  • 高级ACL(编号范围3000~3999 )
  • 二层ACL(编号范围4000~4999)

ACL工作流程

  1. 数据包进入过滤器。
  2. 查找匹配条件,如果有匹配,再执行允许或者拒绝的动作。
  3. 如果没有匹配,将向下移动查找下面的匹配条件并重复上述过程。

PS:华为默认没有被匹配到的数据包,都会默认允许通过,其中ACL用于控制层面的过滤路由时,最后都会有一条隐含拒绝所有。高级ACL 不能用于匹配路由,只能用于过滤数据包;基本 ACL 可以用于匹配路由,也可以过滤数据包。

基本ACL

1、创建ACL

match-order:代表匹配顺序;有auto和config两种, auto是自动排序。

2、配置ACL

  • rule-id:自动生成,初始步长为5,按照倍数往后累加,也可以自定义步长。
  • deny | permit:指定拒绝或允许符合条件的数据包。
  • source-address:表示源地址。
  • source-wildcard:表示指定源地址的通配符,any表示任意源地址,也可以用0.0.0.0 255.255.255.255来表示。
  • time-range:用来规定ACL生效的时间段。
  • vpn-instance:用来指定ACL规则匹配报文的VPN实例名称。
  • fragment:用来对分片的报文进行匹配。如果携带了该参数,被分片的数据包将会被匹配到。
  • none-first-fragment:用来对非首片分片报文生效,如果携带参数则说明只用来匹配非首片报文。

基本ACL的匹配原则:

  1. 带 VPN 实例的规则优先
  2. 源IP地址范围小的优先
  3. Rule ID小的优先 

高级ACL

高级ACL 可以根据源IP地址、目的IP地址、IP优先级、ToS、DSCP、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等信息对IPv4报文进行分类。

1、创建

2、配置 

  • ip:表示协议类型,此处可以指定特定的协议,比如 TCP/UDP/ICMP等,如果是ip 则代表所有的ip协议,包含了TCP/UDP/ICMP等。
  • time-range:表示时间段。
  • dscp:用于匹配数据包时指定区分服务代码点(Differentiated Services CodePoint)。也可以使用优先级( precedence)参数,但是只能选择其一,两者不能同时配置。
  • tos:用于定义服务类型字段。数值在0~15之间。

高级ACL的匹配原则:

  1. 带 VPN 实例的
  2. 指定了特定IP协议类型
  3. 源IP地址范围小的
  4. 目的IP地址范围小的
  5. 端口号范围小的
  6. rule-id小的 

基于时间的ACL

1、创建时间段

  • time-name:指定时间的名称。
  • start-time:指定开始时间,格式为hh:mm。
  • to:表示到某一个时间段。
  • from:表示从某一个时间段开始,time表示时间,date表示日期。 

ACL判断奇偶示例

R2的地址如下,要求实现奇数deny,偶数permit

在R1配置ACL 2000

 实现效果:

二、ip-prefix(前缀列表)

前缀列表与ACL有点类似,两者都可以实现控制层对路由的匹配。但前缀列表不同于ACL,不具备过滤数据流的功能,而ACL 具备过滤数据流及过滤路由的功能。前缀列表的特点是能够更精确地匹配到路由,可以将一条路由区分为网络前缀部分和掩码长度(子网掩码)部分,能分别进行匹配,这点是ACL无法做到的。

1、创建ip-prefix

  •  ip-prefix-name为名称或者数字
  • index-number为编号
  • ip-address为路由前缀(网段)
  • mask-length为指定前缀所匹配的位数和掩码长度
  • greater-equal-value与less-equal-value分别为大于等于和小于等于,代表子网掩码的位数,使用后面两个参数来确定子网掩码的范围(可以不配)。

PS:前缀列表中 greater-equal-value与less-cqual-value就用于精确地匹配出掩码地长度。greater-equal-value 与less-equal-value为可选参数,如果不携带此参数,那么mask-Iength将会具备两种作用,既匹配路由前缀的位数也用于匹配路由掩码位数。

这条前缀列表既有mask-length 参数为24,也携带了greater-equal-value和less-equal-value参数。在前缀中前面24位是需要完全匹配的,而 greater-equal-value则定义了网络掩码必须大于或等于25位,less-equal-value则定义了网络掩码必须小于或等于32位,也就是该网络掩码设定的范围在25~32位之间。

PS: mask-length为 24这里就不能够作为网络掩码了,仅仅用来匹配前缀的位数。

ip-prefix一般配合其他路由工具使用,不是直接应用在接口下的。

三、路由引入

路由引入时,将出现在路由表中的一个协议的路由注入到另外一个路由协议中,对另外的协议而言,这些引入的路由称为“外部路由”。

RIP版本

在RIP进程中可以选择引入其他协议或者静态/直连路由,可以通过cost来指定外部路由的开销值,如果没有配置则用缺省,通过route-policy来定义引入符合指定策略的路由。 

OSPF版本

在OSPF进程中可以选择引入其他协议或者静态/直连路由,通过cost来指定外部路由的开销值,通过type 设置类型,通过tag 设置路由标记,通过route-policy来定义引入符合指定策略的路由。

IS-IS版本

在IS-IS引入外部路由时,cost-type用来指定外部路由的开销类型,缺省为external (cost=源cost+64)、internal(继承源cost 值)。level-1/2用来指定外部路由引入到哪个路由表中,如果未指定级别,默认引入到 level-2中。 

引入外部路由BGP时,只能引入 eBGP的路由,不能引入 iBGP的路由。inherit-cost是指引入的外部路由保留原有的开销值,如果配置了该参数则不能再配置引入路由的开销值和开销类型,也可在IS-IS协议路由泄露时使用。 

路由引入规则

  1. 一种路由协议在引入其他路由协议时,只引入路由协议在路由表中存在的路由,不出现在路由表中的路由是不会被引入的,这种对路由表中路由进行控制的行为是矢量行为。
  2. 引入直连(import direct)和引入协议(import xxx)同时存在时,直连路由是否引入由import direct来决定。

路由协议优先级

任何出现在路由表里面的路由,除非直连路由,都会由cost来衡量到目标网络的距离。如果路由器学到多条相同路由,分别源自不同路由协议,需要按照以下步骤进行比较。

  1. 先比较各协议的外部优先级。
  2. 如果外部优先级一致,再比较内部优先级。
  3. 如果内外部优先级都一样,则比较多条路由的cost。
  4. 如果 cost一致,多条路由都将出现在路由表中,负载分担,否则只放入cost最小的路由。

 

PS:选择路由时先比较路由的外部优先级,当不同的路由协议配置了相同的优先级后,系统会通过内部优先级决定哪个路由协议发现的路由将成为最优路由。


 


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