一、ACL基础知识

ACL是什么

  • ACL:访问控制列表
  • 是一个包含了多个“规则”的列表,不同规则通过 “规则号”进行区分
  • 每个“规则”都包含:动作+条件两部分内容
  • **动作分为:**允许(permit)和拒绝(deny)
  • **条件分为:**地址、端口、通配符
  • ACL本质上是一种报文过滤器,可以根据规则来过滤数据报文,比如允许数据通过,比如拒绝数据通过

ACL的作用

  • 对网络中数据报文进行识别,实现对数据报文的精确控制
  • 防止网络攻击,提高带宽利用率

ACL 分类

基本ACL:ACL编号: 2000~2999   条件:IP地址

高级ACL:ACL编号: 3000~3999   条件:五元组IP/目标IP/协议号/源端口/目标端口)

ACL 匹配原则

根据ACL规则编号从小到大匹配(编号越小越优先被匹配)

匹配即停止(匹配上了第一条规则,就按照规则的动作去执行,不在向下查找第二条规则)

如果数据报文没有匹配到第一条规则,继续向下查找第二条规则,如果匹配,则按照第二条规则的动作去执行

如果所有的规则都无法匹配,则执行隐含规则

隐含规则(默认规则):隐含规则有两个一个允许所有,一个拒绝所有

&允许所有:只要使用taffic-filter调用ACL规则时默认规则是允许所有

&拒绝所有:只要不使用taffic-filter调用ACL就是拒绝所有

二、ACL实验

1.基本ACL配置案例1

        1.1 拓扑

        1.2需求
- PC1不能访问Server1
- PC2可以访问Server1
- 允许其他所有流量互通(允许PC1访问PC2)
        1.3配置思路

-分析PC1和Server1的数据转发路径

-判断在那个设备上配置ACL
-判断在那个接口上调用ACL

        1.4 配置步骤/配置命令
第一步:配置PC1/2和Server1的IP地址,掩码,网关
第二步:在R1中配置ACLR1
配置:
[R1]int g0/0/0
[R1-G0/0/0]ip address 192.168.100.254 24

[R1-G0/0/0]int g0/0/1

[R1-G0/0/1]ip address 192.168.1.254 24

[R1-G0/0/1]int g0/0/2

[R1-G0/0/2]ip address 192.168.2.254 24

[R1-G0/0/2]quit

[R1]acl 2000    //创建基本ACL

[R1-acl-basic-2000]rule 10 deny source 192.168.1.0  0.0.0.255  //配置基本ACL规则

[R1-acl-basic-2000]quit

[R1]int g0/0/0

[R1-G0/0/0]traffic-filter outbound acl 2000    //在接口上调用ACL对数据报文进行过滤

2.基本ACL配置案例2

        2.1 拓扑

        2.2 需求
- 不允许售后部主机(192.168.1.0/24)访问财务服务器
- 允许售后部主机访问公司其他主机
        2.3 配置思路

        -实现全网互通

        -确定售后部和财务服务器之间的数据的转发路径

        -确定配置ACL的设备

        -确定调用ACL的端口

        2.4 配置步骤
第一步:配置PC1/PC2/Server1的IP地址,掩码,网关
PC1:

Server-1:

第二步:配置交换机SW1/SW2,在SW1和SW2 上创建VLAN,并将各自接口加入VLAN
SW1:
[Huawei]undo info-center e

[Huawei]sysname SW1

[SW1]port-group group-member g0/0/1 g0/0/2

[SW1-port-group]p l a

[SW1-GigabitEthernet0/0/1]p l a

[SW1-GigabitEthernet0/0/2]p l a

[SW1-port-group]p d v 10

[SW1-GigabitEthernet0/0/1]p d v 10

[SW1-GigabitEthernet0/0/2]p d v 10
SW2:
[Huawei]undo info-center enable

[Huawei]sysname SW2

[SW2]v b 20

[SW2]port-g group-member g0/0/2 g0/0/1

[SW2-port-group]p l a

[SW2-GigabitEthernet0/0/2]p l a

[SW2-GigabitEthernet0/0/1]p l a

[SW2-port-group]p d v 20

[SW2-GigabitEthernet0/0/2]p d v 20

[SW2-GigabitEthernet0/0/1]p d v 20
第三步:配置路由,让网络互通
  -配置R1和R2的接口IP地址
-在R1中配置默认路由,下一跳为192.168.12.2
[R1]ip route-static 0.0.0.0 24 192.168.12.2
  -在R2中配置静态路由,下一跳为192.168.12.1
[R2]ip route-static 0.0.0.0 24 192.168.12.1第四步:在R2中配置ACL  -
在R2中配置基本ACL(拒绝售后部主机访问财务服务器)

[R2]acl 2000

[R2-acl-basic-2000]rule 10 deny source 192.168.1.0 0.0.0.255

[R2-acl-basic-2000]q

  -在R2的g0/0/2接口的出方向,调用基本ACL

[R2]int g0/0/2

[R2-GigabitEthernet0/0/2]traffic-filter outbound acl 2000

第五步:测试与验证
PC1与PC2 的互通:

PC1与Server的不通:

PC2与Server的互通:

在R2中查看acl规则和接口调用信息
<R2>display acl  all

<R2>display traffic-filter applied-record

3. 高级ACL配置案例

        3.1 拓扑

        3.2 需求
-售后部主机仅能访问 Server1上的Web服务-售后部主机可以访问行政部的所有主机的所有服务
-售后部主机不能访问网络中的其他主机
        3.3 配置思路
-实现全网互通-分析数据转发路径
-确定ACL的类别(基本&高级)
-确定配置ACL的设备
-确定调用ACL的端口
        3.4 配置步骤
第一步:配置Client1/PC1/Server1的IP,掩码,网关,开启server1的web服务
PC上:

服务器Server1上:

Client1上:

第二步:配置路由,让网络互通
  -配置R1/R2/R3的接口IP地址:
R1:

[R1]int g0/0/0

[R1-GigabitEthernet0/0/0]ip add 192.168.12.1 24

[R1-GigabitEthernet0/0/0]int g0/0/2

[R1-GigabitEthernet0/0/2]ip add 192.168.1.254 24

[R1-GigabitEthernet0/0/2]q

R2:

R3:

  -在R1中配置默认路由,下一跳为192.168.12.2

[R1]ip route-static 0.0.0.0 24 192.168.12.2

  -在R2中配置去往192.168.1.0/24的静态路由,下一跳为192.168.12.1
-在R2中配置去往192.168.3.0/24的静态路由,下一跳为192.168.23.

 -在R3中配置默认路由,下一跳为192.168.23.2


第三步:在R1中配置ACL
-在R1中配置高级ACL
允许源售后部主机访问目标服务器server1的web服务
允许源售后部主机访问目标行政部的主机
拒绝源售后部主机访问网络中其他任何主机

[R1]acl 3000

[R1-acl-adv-3000]rule 10 permit tcp source 192.168.1.0 0.0.0.255 destination 192.168.3.1 0 destination-port eq www

[R1-acl-adv-3000]rule 20 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255

[R1-acl-adv-3000]rule 30 deny ip source 192.168.1.0 0.0.0.255 destination any

-在R1g0/0/2接口的入方向,调用高级ACL

[R1-GigabitEthernet0/0/2]traffic-filter inbound acl 3000

第四步:测试与验证
PC与web服务之间可以正常访问

Client与其他主机之间不能正常访问:

第四步:验证与测试

4.高级ACL之ICMP

        4.1拓扑

        4.2 需求

-售后部主机Client1 仅仅能ping Server1,不能访问server1其他服务

-售后部主机Client1可以访问行政部的所有主机的所有服务

-售后部主机Client1不能访问网络中的其他主机

        4.3 配置思路

-实现全网互通

-分析数据转发路径

-确定ACL的类别(基本&高级)

-确定配置ACL的设备

-确定调用ACL的端口

        44. 配置步骤

第一步:配置Client1/PC1/Server1IP,掩码,网关,开启server1web服务

PC:

Server1:

Client1:

第二步:配置路由,让网络互通
-配置R1/R2/R3的接口IP地址
R1:

R2:

R3:

-在R1中配置默认路由,下一跳为192.168.12.2
-在R2中配置去往192.168.1.0/24的静态路由,下一跳为192.168.12.1
-在R2中配置去往192.168.3.0/24的静态路由,下一跳为192.168.23.3
-在R3中配置默认路由,下一跳为192.168.23.2路由表
R1:

R2:

R3:

第三步:在R1中配置ACL
-在R1中配置高级ACL 
允许源售后部主机能ping 通目标服务器server1,但是不能访问server1 的其他服务
允许源售后部主机访问目标行政部的主机
拒绝源售后部主机访问网络中其他任何主机

[R1]acl 3000

[R1-acl-adv-3000]rule 10 permit icmp source 192.168.1.1 0 destination 192.168.3.1 0 //规则10允许源192.168.1.1 0通过icmp访问目标192.168.3.1 0

[R1-acl-adv-3000]rule 20 permit ip source 192.168.1.0 0 destination 192.168.2.0 0.0.0.255  //规则20允许ip192.168.1.0 0访问目标192.168.2.0 0.0.0.255

[R1-acl-adv-3000]rule 30 deny ip source 192.168.1.0 0 destination any

//规则30拒绝ip192.168.1.0 0访任何问目的地

[R1-acl-adv-3000]quit

-在R1的g0/0/2接口的入方向,调用高级ACL

[R1]int g0/0/2

[R1-GigabitEthernet0/0/2]traffic-filter inbound acl 3000

第四步:测试与验证


5.基本ACL之Telnet

        5.1 拓扑

        5.2需求
- 为了便于设备管理,为设备开启远程管理功能,登录密码:HCIE
- 仅允许 192.168.1.254 远程登录 R2,拒绝其他所有IP地址
- 拒绝 R1的任何IP地址远程登录 R3,其他设备都可以
配置步骤
第一步:配置路由,让网络互通
  -配置R1/R2/R3的接口IP地址,在R1中配置默认路由,下一跳为192.168.12.2,在R2中配置去往
192.168.1.0/24的静态路由,下一跳为192.168.12.1,R2中配置去往192.168.3.0/24的静态路由,
下一跳为192.168.23.3,在R3中配置默认路由,下一跳为192.168.23.2,同上一个实验不做具体展示。
第二步:配置Telnet 远程 -R2/R3开启远程,远程密码:HCIE

[R2-ui-vty4]user-interface vty 0 4

[R2-ui-vty0-4]authentication-mode password

Please configure the login password (maximum length 16):HCIE

[R3]user-interface vty 0 4

[R3-ui-vty0-4]authentication-mode password

Please configure the login password (maximum length 16):HCIE

第三步:在R2中配置基本ACL
-在R2配置基本ACL,允许源IP:192.168.1.254  远程登录R2,拒绝其他IP远程

[R2-acl-basic-2000]rule 10 permit source 192.168.1.254 0

  -在R2的vty 虚接口调用ACL

[R2]user-interface vty 0 4

[R2-ui-vty0-4]acl 2000 inbound

第四步:在R3中配置基本ACL
-在R3配置基本ACL,拒绝源IP:192.168.1.254  远程登录R3 
-在R3配置基本ACL,拒绝源IP:192.168.12.1 远程登录R3
-在R3配置基本ACL,允许其他所有IP地址远程登录R3

[R3-acl-basic-2000]rule 10 deny source 192.168.1.254 0

[R3-acl-basic-2000]rule 20 deny source 192.168.12.1 0

[R3-acl-basic-2000]rule 30 permit source any

-在R3的vty 虚接口调用ACL

[R3]user-interface vty 0 4

[R3-ui-vty0-4]acl 2000 inbound

第四步:测试与验证
<R1>telnet -a 192.168.1.254  192.168.12.2(R2) 可以成功

<R1>telnet -a 192.168.1.254 192.168.12.2

  Press CTRL_] to quit telnet mode

  Trying 192.168.12.2 ...

  Connected to 192.168.12.2 ...

Login authentication

Password:

<R2>te  

<R1>telnet -a 192.168.12.1  192.168.12.2(R2) 无法远程

<R1>telnet -a 192.168.12.1  192.168.23.2(R3) 无法远程

<R1>telnet -a 192.168.1.254  192.168.23.2(R3) 无法远程

<R2>telnet 192.168.23.3 (R3)可以远程

<R2>telnet 192.168.23.3

  Press CTRL_] to quit telnet mode

  Trying 192.168.23.3 ...

  Connected to 192.168.23.3 ...

Login authentication

Password:

Password:

<R3>

<R3>telnet 192.168.23.2 (R2)无法远程

<R3>telnet 192.168.23.2

  Press CTRL_] to quit telnet mode

  Trying 192.168.23.2 ...

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐