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年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

### 如何在访问控制列表(ACL)中配置特定端口 为了在访问控制列表(ACL)中配置特定端口,通常需要使用扩展 ACL。这是因为标准 ACL 仅能过滤 IP 地址,而无法处理更复杂的规则,比如目标端口或协议类型。扩展 ACL 支持对 IP、目标 IP、协议类型以及具体端口号的精确匹配。 以下是关于如何在 ACL 中配置特定端口的具体方法: #### 使用扩展 ACL 配置端口 扩展 ACL 提供了更多的灵活性,可以通过指定协议(如 TCP 或 UDP)、地址、目标地址以及具体的端口号来创建规则。例如,如果希望允许来自某个网的设备通过 HTTP (TCP 端口 80) 访问服务器,则可以按照以下方式设置规则[^1]。 ```python access-list 101 permit tcp 192.168.1.0 0.0.0.255 host 10.0.0.1 eq 80 ``` 此命令表示允许 `192.168.1.0/24` 子网中的任何主机向目标地址 `10.0.0.1` 发起连接,并且该连接的目标端口必须为 `80`(即 HTTP)。其中的关键字 `eq` 表示等于给定的端口号。 对于多个端口的情况,某些厂商可能提供额外关键字用于简化操作。例如,在 Cisco 设备上可使用范围限定符 `range` 来一次性定义连续的一组端口[^4]: ```python access-list 101 permit tcp any host 10.0.0.1 range 80 443 ``` 这条语句的作用是允许任意来访问目标地址 `10.0.0.1` 上的端口 `80` 到 `443` 范围内的服务。 需要注意的是,不同的网络设备供应商可能会有不同的语法结构来进行类似的配置。以华为 eNSP 平台为例,其 ACL 的配置也遵循相似逻辑,但在实际写法上有细微差异[^3]。 #### 应用 ACL 至接口 完成 ACL 编辑之后,还需要将其绑定至对应的路由器或者交换机接口才能生效。一般情况下可以选择应用于入站 (`in`) 方向或是出站 (`out`) 方向。下面是一个简单的例子展示如何把编号为 `101` 的 ACL 施加于吉比特以太网接口 GigabitEthernet0/0 的输入方向: ```python interface GigabitEthernet0/0 ip access-group 101 in ``` 这一步骤确保只有满足 ACL 定义条件的数据包才可通过指定接口进入内部网络。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值