ACL三种典型写法:按源IP、按目标段、按业务端口

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

ACL(访问控制列表)是交换机、路由器上最常见也最容易出锅的配置。

稍有不慎,业务断一片;写太宽,安全等于摆设;写太窄,又封死了正常访问。

那 ACL 应该怎么写?不同业务场景下,该用哪种方式来匹配?

源IP、目标段、业务端口,这三种匹配方式掌握住,日常配置基本不会翻车。

一、按源 IP 写:控制“谁”可以访问

这种写法最常见、最通用,用于控制哪些“主机”能访问某个网络或端口。

常见应用场景:

  • 允许某台运维主机远程登录交换机
  • 限制办公网内的某些IP访问服务器

语法示例:

acl number 3000
 rule 5 permit ip source 192.168.1.10 0

这里的 0 是反掩码,表示精确匹配 192.168.1.10 这一个地址。 如果要放一个网段,比如:

 rule 10 permit ip source 192.168.1.0 0.0.0.255

然后绑定到对应接口方向即可:

interface GigabitEthernet0/0/1
 traffic-filter inbound acl 3000

⚠ 注意:

  • ACL 默认不包含“拒绝所有”的行为,要拒绝需要显式写 deny
  • 华为 ACL 是匹配到即止(类似顺序判断),规则顺序很重要

二、按目标地址段写:控制“能访问哪里”

很多人只知道按源IP写,但真实场景中,按目标地址/网段来做控制的也很多。 比如有些服务器网段只能被少数人访问;有些出口只放开公网 DNS 或邮箱服务。

常见应用场景:

  • 限制内网主机只能访问特定的公网网段(如 8.8.8.8)
  • 控制某些业务只能访问某个 DMZ 区段

示例写法:

acl number 3001
 rule 5 permit ip destination 10.10.10.0 0.0.0.255

或者你想拒绝某一段地址:

 rule 10 deny ip destination 203.0.113.0 0.0.0.255
 rule 20 permit ip

这里用了destination关键词表示目标地址匹配。

⚠ 这种写法特别适合出口控制,但很多人都只会用源IP,反而容易放错、封错。

三、按业务端口写:控制“能访问什么服务”

这类写法适用于协议粒度控制,像只允许访问 DNS、Web、SSH 的场景特别常见。

常见应用场景:

  • 只允许用户访问 HTTP/HTTPS(80/443)端口
  • 禁止所有人访问某业务端口(如数据库 3306)

示例写法:

acl number 3002
 rule 5 permit tcp destination-port eq 443
 rule 10 permit tcp destination-port eq 80
 rule 20 deny ip

这个 ACL 表示:只允许访问 HTTPS 和 HTTP 端口,其它全部拒绝

你也可以加上源地址做更细粒度控制:

 rule 5 permit tcp source 192.168.1.0 0.0.0.255 destination-port eq 22

⚠ 要记住:

  • 匹配端口时,一定要指定协议(tcp/udp)
  • eq 是“等于”,还有 range(范围)、gt/lt(大于/小于)等写法

三种 ACL 写法总结对比

最后给几个实战建议

  • ACL 不建议写太长,如果有太多条,考虑整合地址组/端口组
  • ACL 规则顺序很关键,匹配到一条就不会继续往下匹配
  • 一定要区分 in/out 方向,很多配置没效果就是因为方向反了
  • 端口控制建议用TCP/UDP配合,避免“误放所有协议”
  • ACL 搭配 NAT、QoS、VPN 使用效果更大,但配置也更复杂

原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

<think>好的,我现在需要帮助用户了解ACL的分类、特点以及基础与高级写法。首先,用户提到了参考引用里的内容,里面提到了标准ACL、扩展ACL和命名ACL的分类,还有它们的编号范围和特点。我需要先整理这些信息,确保准确无误。 首先,标准ACL的编号是1-99,只根据IP进行过滤。扩展ACL是100-199,可以基于IP、目标IP、协议、端口等更复杂的条件。命名ACL则是用名称代替编号,可以是标准或扩展类型。这些是基本分类,我需要详细列出它们的特点和基本语法。 接下来,用户还问到了基础与高级写法。基础写法可能包括基本的ACL配置命令,比如标准ACL的创建和应用。高级用法可能涉及更复杂的配置,比如使用命名ACL、结合时间范围、日志记录等。需要分点说明,并举例具体的命令格式。 另外,用户可能对应用场景感兴趣,比如标准ACL适合放在靠近目标的位置,而扩展ACL更适合靠近的位置,这需要解释清楚。同时,注意事项如ACL的执行顺序、隐含拒绝规则等,也需要提及,避免常见错误。 在回答时,需要按照用户的要求,使用中文,数学表达式用$...$,独立公式用$$...$$,但这里可能不太涉及数学公式,所以主要关注ACL的配置命令和结构。确保引用标记正确,参考引用中的内容在适当位置标注[^1]。 最后,生成相关问题时要围绕ACL的分类、配置、优化和应用,比如如何选择ACL类型、日志功能的使用、与防火墙的区别等。确保问题有针对性,帮助用户进一步学习。 现在需要检查是否有遗漏的信息,比如ACL的隐含拒绝所有规则,或者配置时的顺序问题,这些都是关键点,必须包含在回答中。同时,基本语法和高级用法的例子要准确,符合常见的配置语法,比如Cisco的ACL命令格式。 总结来说,回答的结构应该是先分类,每个类型的特点、编号、基本语法示例,然后是高级用法,注意事项,最后相关问题。确保每个部分清晰,符合用户的要求。</think>### ACL的分类、特点及配置语法 #### 一、ACL分类与特点 根据功能和过滤条件复杂度,ACL可分为以下三类: 1. **标准ACL** - **编号范围**:$1\sim99$ - **特点**:仅基于IP地址过滤流量,适用于简单策略(如限制特定IP访问整个网络)[^1]。 - **基础语法示例**(Cisco设备): ```bash access-list 10 permit 192.168.1.0 0.0.0.255 # 允许192.168.1.0/24网 access-list 10 deny any # 拒绝其他所有流量 ``` 2. **扩展ACL** - **编号范围**:$100\sim199$ - **特点**:支持多维度条件(IP、目标IP、协议、端口等),可精细控制流量(如限制某IP访问特定服务的端口)。 - **基础语法示例**: ```bash access-list 150 deny tcp 10.0.0.0 0.255.255.255 any eq 80 # 拒绝10.x.x.x网访问HTTP access-list 150 permit ip any any # 允许其他IP协议流量 ``` 3. **命名ACL** - **特点**:使用名称替代编号,支持标准/扩展功能,便于维护和扩展。 - **基础语法示例**: ```bash ip access-list extended WEB_FILTER deny tcp host 172.16.1.5 any eq 443 permit tcp any any ``` --- #### 二、高级用法 1. **时间范围控制** 结合`time-range`参数,实现基于时间的访问控制: ```bash time-range WORK_HOURS periodic weekdays 9:00 to 17:00 access-list 160 permit tcp any any eq 22 time-range WORK_HOURS # 仅工作时间允许SSH ``` 2. **日志记录** 通过`log`参数记录匹配ACL规则的流量: ```bash access-list 101 deny ip 192.168.2.0 0.0.0.255 any log # 记录拒绝流量日志 ``` 3. **片过滤** 使用`fragments`关键字处理分片数据包: ```bash access-list 110 deny udp any any fragments # 阻止UDP分片流量 ``` --- #### 三、注意事项 1. **隐含拒绝规则**:所有ACL默认在末尾包含`deny any`,需显式允许必要流量。 2. **执行顺序**:ACL规则按从上到下顺序匹配,应优先放置具体规则。 3. **应用位置**:标准ACL建议靠近目标设备,扩展ACL靠近以减少无效流量传输。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值