Toc
  1. 前言
  2. ACL原理
    1. ACL概述
    2. ACL的组成
      1. 规则编号
      2. 通配符
  3. ACL的分类与标识
  4. ACL的匹配机制
  5. ACL的匹配位置
  • 基本ACL
    1. 配置:
  • 高级ACL
    1. 配置:
  • END
  • Toc
    0 results found
    Dark
    网络工程-HCIA课程(九)ACL原理与配置

    前言

    随着网络的飞速发展,网络安全和网络服务质量QoS (Quality of Service)问题日益突出。访问控制列表 (ACL, Access Control List)是与其紧密相关的一个技术。

    ACL可以通过对网络中报文流的精确识别,与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。





    ACL原理

    常见误区:

    • ACL支持二层和三层,基本ACL和高级ACL都为三层,二层ACL编号数字更大,为4000~4999
    • ACL匹配规则有两种,默认规则下按rule ID从小到大匹配具体看ACL的匹配机制
    • 高级ACL动作(deny拒绝/permit 允许)后加二层协议,destination-port后加 (取值范围) + (三层协议/端口号)
    • ACL只针对穿越流量(即匹配的源IP不能的路由器自己的)
    • traffic-filter 调用的,只要没有明确指定deny ,那么默认放行
    • 一个接口只能配置匹配一个ACL

    ACL概述

    • ACL是一个实现流量过滤的工具。
    • ACL是由一系列permit或deny语句组成的、有序规则的列表。
    • ACL是一个匹配工具,能够对报文进行匹配和区分。


    ACL的组成

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



    规则编号
    • 规则编号(Rule ID):
      一个ACL中的每一条规则都有一个相应的编号。
    • 步长(Step):
      步长是系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5。步长的作用是为了方便后续在旧规则之间,插入新的规则。
    • Rule ID分配规则:
      系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。


    如果希望增加1条规则,该如何处理?

    rule 11 deny source 10.1.1.3 0


    通配符

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

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

    • 匹配规则:
      “0”表示“匹配”;“1”表示“随机分配”


    • 例1:如何匹配192.168.1.1/24对应网段的地址?

      * 192.168.1.0 0.0.0.255 *


    • 例2:如何匹配192.168.1.0/24这个子网中的奇数IP地址,例如192.168.1.1、192.168.1.3、192.168.1.5等?

      * 192.168.1.1 0.0.0.254 *


    • 特殊例子:

      • 精确匹配192.168.1.1这个IP地址

        * 192.168.1.1 0.0.0.0 * 

        * 192.168.1.1 0 *
      • 匹配所有IP地址

        * 0.0.0.0 255.255.255.255

        * any *





    ACL的分类与标识

    基于ACL规则定义方式的分类:

    分类 编号范围 定义参数
    基本ACL 2000~2999 源IP地址等
    高级ACL 3000~3999 源IP地址、目的IP地址、 源端口、目的端口、协议
    二层ACL 4000~4999 源MAC地址、目的MAC地址、以太帧协议类型等
    自定义ACL 5000~5999


    基本ACL:



    高级ACL:





    ACL的匹配机制

    • ACL匹配机制有两种:config模式auto模式


    • 缺省(默认)情况下为config模式

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



    • auto模式是指系统使用“深度优先”的原则,将规则按照精确度从高到底进行排序,系统按照精确度从高到低的顺序进行报文匹配

      • 注:在auto模式下不能写rule id,由系统自动分配

      如在auto模式下的acl3000中存在以下规则:

      如果在acl 3000中插入`rule deny ip source 1.1.1.1 0`(目的IP地址是主机地址,优先级高于上图中的两条规则),系统将按照规则的优先级关系,重新为各规则分配编号。插入新规则后,新的排序如下。




    ACL的匹配位置

    ACL只针对穿越流量(即匹配的源IP不能的路由器自己的):



    入站 (Inbound)及出站 (Outbound)方向:





    基本ACL

    组成:*rule + (规则ID) + 动作(deny拒绝/permit 允许) + source + IP地址 + 通配符*



    配置:

    1. 案例1:拒绝源为10.1.12.1 的流量
    //1. 创建ACL:
    [R2]acl 2000

    //2. 制定规则:
    [R2-acl-basic-2000]rule 5 deny source 10.1.12.1 0.0.0.0 //规则为5,不允许/拒绝 源为10.1.12.1 的流量

    //3. 调用acl:
    [R2]int g0/0/1
    [R2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000


    1. 案例2:拒绝所有流量
      //1. 创建ACL:
      [R2]acl 2000

      //2. 制定规则:特殊案例!
      [R2-acl-basic-2000]rule 5 deny source any //过滤所有

      //3. 调用acl:
      [R2]int g0/0/1
      [R2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000




    高级ACL

    组成:*rule + (规则ID) + 动作(deny拒绝/permit 允许) + (二层协议) source + IP地址 + 通配符 + destination + IP地址 + 通配符 + destination-port + (取值范围) + (三层协议/端口号)*

    注:

    (二层协议)


    (取值范围)


    (三层协议/端口号)


    配置:

    1. 案例1:使R1的1.1.1.1不能平通R3但允许10.1.12.1ping通R3
    //1. 创建acl:
    [R2]acl 3000

    //2. 制定规则:
    [R2-acl-adv-3000]rule 6 deny icmp source 1.1.1.1 0.0.0.0 destination 3.3.3.3 0.0.0.0 //拒绝源为1.1.1.1,目的为3.3.3.3的ICMP流量(不允许1.1.1.1 ping 通3.3.3.3)
    [R2-acl-adv-3000]rule permit icmp source 10.1.12.1 0.0.0.0 destination 3.3.3.3 0.0.0.0 //允许源为10.1.12.1 ,目的为3.3.3.3的icmp流量(允许10.1.12.1 ping 通3.3.3.3 )

    //3. 调用:
    [R2]int g0/0/0
    [R2-GigabitEthernet0/0/0]traffic-filter inbound acl 3000


    1. 案例2:使R2不能远程R3,但允许R1远程R3
    //1. 创建acl:
    [R3]acl 3000 //因为涉及R1和R2的流量,规则仅对穿越流量有效,所以要在R3上做ACL才有效

    //2. 制定规则:
    [R3-acl-adv-3000]rule 5 deny tcp source 10.1.23.2 0 destination 10.1.23.3 0 destination-port eq 23 //规则为5,拒绝源为10.1.23.2 ,目的为10.1.23.3的tcp流量,且该tcp流量的目的端口号为23
    //R1的流量不拒绝,默认则为允许

    //3. 调用acl:
    [R3]int g0/0/0
    [R3-GigabitEthernet0/0/0]traffic-filter inbound acl 3000




    END

    本文作者:Dark
    版权声明:本文首发于Dark的博客,转载请注明出处!