这里是普通文章模块栏目内容页
ACL访问控制-华为

一、ACL
       访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。

       ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。

       基于ACL规则定义方式,可以将ACL分为基本ACL、高级ACL、二层ACL等种类。基本ACL根据源IP地址、分片信息和生效时间段等信息来定义规则,对IPv4报文进行过滤。如果只需要根据源IP地址对报文进行过滤,可以配置基本ACL。

二、应用规则
1.“3P”原则

在路由器上应用ACL时,可以为每种协议(Per Protocol)、每个方向(Per Direction)

和每个接口(Per Interface)配置一个ACL,一般称为“3P原则”。

(1)一个ACL只能基于一种协议,因此每种协议都需要配置单独的ACL。

(2)经过路由器接口的数据有进(ln)和出(Out)两个方向,因此在接口上配置访问控制列表也有进(In)和出(Out)两个方向。每个接口可以配置进方向的ACL,也可以配置出方向的ACL,或者两者都配置,但是一个ACL只能控制一个方向。

(3)一个ACL只能控制一个接口上的数据流量,无法同时控制多个接口上的数据流量。

2.语句顺序决定了对数据的控制顺序

ACL的语句是一种自上而下的逻辑排列关系。数据匹配过程中是依次对语句进行比较,一旦匹配成功则按照当前语句控制策略处理,不再与之后的语句进行比较。因此,正确的语句顺序才能得到所需的控制效果。

3.至少有一条允许(Permit)语句

所有ACL的最后一条语句都是隐式拒绝语句,表示当所有语句都无法匹配时,将拒绝数据通过并自动丢弃数据,以防数据意外进入网络。因此,在写“拒绝(deny)”的ACL时,一定至少要有一条允许(Permit)语句,否则配置ACL的接口将拒绝任何数据通过,影响正常的网络通信。

4.最有限制性的语句应该放在ACL的靠前位置

最有限制性的语句放在ACL的靠前位置,可以首先过滤掉很多不符合条件的数据,节省后面语句的比较时间,从而提高路由器的工作效率。 

三、ACL案例
1.华为的acl 列表范围
华为与思科的访问控制列表序号有所不同,如下

acl  访问控制列表,对匹配的数据进行限制.

基本acl  2000~2999   可以对源ip限制
高级acl  3000~3999   可以对源ip,目标ip,协议,端口限制

2.案例1-------拒绝某台机器访问
按照图-2所示拓扑结构,禁止主机pc2与pc1通信,而允许所有其他流量

 

配置思路:

     ①在路由器上配置两个端口,设置好ip地址

     ②配置好主机的ip/子网掩码/网关

     ③在路由器上添加一条访问控制权限,基本acl 2000

     ④把这条acl限制规则应用到g0/0/1的端口上(可以称作监听端口)

R1配置:

[Huawei]interface GigabitEthernet 0/0/0                      //为0端口配置ip
[Huawei-GigabitEthernet0/0/0] ip address 192.168.1.254 24
[Huawei]acl 2000               //进入acl 2000 列表
[Huawei-acl-basic-2000]rule deny source 192.168.2.1 0      //定义一条规则 deny代表拒绝 source代表来源 0代表仅此一台
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.254 24
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound acl 2000               //用端口1来监听这条规则
测试:

       1) pc1 ping pc3 ,    通信成功

       2) pc1 ping pc2,     通信失败

       3) pc2 ping pc3,     通信成功

3.案例2------拒绝所有机器访问
   还是刚才的案例,将[Huawei-acl-basic-2000]rule deny source 192.168.2.1 0更改为

    [Huawei-acl-basic-2000]rule deny any 即可

4.案例3-------仅允许某台机器访问
    实验要求:仅允许pc2访问pc1

    根据acl规则4:最有限制性的语句应该放在ACL的靠前位置 和规则3: 至少有一条允许(Permit)语句

    配置如下:

[Huawei]interface GigabitEthernet 0/0/0                      //为0端口配置ip
[Huawei-GigabitEthernet0/0/0] ip address 192.168.1.254 24
[Huawei]acl 2000               //进入acl 2000 列表
[Huawei-acl-basic-2000]rule permit source 192.168.2.1 0      //定义一条规则 permit代表拒绝 source代表来源 0代表仅此一台
[Huawei-acl-basic-2000]rule deny any             // 拒绝所有访问
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.254 24
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound acl 2000               //用端口1来监听这条规则
5.案例4----------拒绝访问ftp或者http服务
    实验要求: 禁止pc2访问pc1的ftp服务,禁止pc3访问pc1的www服务,所有主机的其他服务不受限制

     tcp与http都是基于tcp协议的,所以我们可以拒绝tcp协议来限制

     R1配置:

[Huawei]acl 3000            //拒绝tcp为高级控制,所以3000起
[Huawei-acl-adv-3000]rule deny tcp source 192.168.2.1 0 destination 192.168.1.1     //destination代表目的地地址
[Huawei-acl-adv-3000]rule deny tcp source 192.168.2.2 0 destination 192.168.1.1
[Huawei]interface g0/0/1
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound acl 3000 //在接口中应用acl