外部主动连进内网没人拦?华为交换机自反ACL只放回程流量

内网电脑要访问外网的 UDP 服务——域名解析、NTP 对时、视频云台控制走的都是 UDP——但反过来的方向,企业往往一概不欢迎:外部主机不应该能主动向内网电脑发起连接。用传统 ACL 把两个方向的规则都写全,既繁琐又容易漏。华为 S 系列交换机的自反 ACL(Reflective ACL)提供了一种动态做法:设备根据你放行方向的高级 ACL,自动创建出一条反方向的镜像规则,源 IP 与目的 IP、源端口与目的端口完全颠倒;一段时间内没有匹配流量,这条回程规则自动老化删除。效果就是"内网先发起、外网才回得来",外部主动发起的连接一概进不来。本篇按官方典型配置案例把整套命令走一遍。

本文的组网需求、配置思路与命令步骤,整理自华为官方发布的典型配置案例,参数可直接参考使用。

组网需求

某公司网络中,Switch 作为网关设备,下挂用户 PC 并连接 Internet,各设备之间路由可达。为保证内网环境安全,管理员要求:Internet 中的服务器只有在内网 PC 先向其发起 UDP 连接请求的情况下,才能与 PC 建立 UDP 连接——内网可以主动出去,外网不能主动进来,实现单向访问控制。

配置思路

整个案例在 Switch 上两步完成:

  • 配置高级 ACL,为后续设备生成自反 ACL 做准备;
  • 配置自反 ACL 功能,实现内网主机能主动与 Internet 中的服务器建立 UDP 连接,但 Internet 中的服务器不能主动与内网主机建立 UDP 连接。

核心逻辑一句话:你只管声明"哪些流量可以出去",回程的放行规则由设备自动生成、自动维护、自动过期,不需要手写第二条 ACL。

操作步骤

一、配置高级ACL

创建高级 ACL 3000 并配置 ACL 规则,允许 UDP 报文通过:

<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] acl 3000
[Switch-acl-adv-3000] rule permit udp  //允许UDP报文通过
[Switch-acl-adv-3000] quit

这条规则圈定了要参与自反的流量范围:本例只针对 UDP 报文。

二、配置自反ACL

由于来自 Internet 的报文从接口 GE2/0/1 进入 Switch,所以可以在接口 GE2/0/1 的出方向配置自反 ACL 功能,对 UDP 报文进行自反:

[Switch] interface gigabitethernet 2/0/1
[Switch-GigabitEthernet2/0/1] traffic-reflect outbound acl 3000  //自反ACL应用在接口出方向
[Switch-GigabitEthernet2/0/1] quit

一条 traffic-reflect 命令,回程规则从此自动生成:内网 PC 先访问了某台外网服务器,设备就自动放出一条"只许那台服务器回来"的临时规则;连接闲置超过老化周期,规则自动删除。

检查配置结果

执行 display traffic-reflect 命令,查看自反 ACL 信息:

[Switch] display traffic-reflect outbound acl 3000
Proto  SP   DP   DIP             SIP             Count   Timeout  Interface
------------------------------------------------------------------------------
UDP    2    80   192.168.1.2       10.1.1.2       9       300(s)   GigabitEthernet2/0/1
------------------------------------------------------------------------------
* Total <1> flows accord with condition, <1> items was displayed.
------------------------------------------------------------------------------
* Proto=Protocol,SIP=Source IP,DIP=Destination IP,Timeout=Time to cutoff,
* SP=Source port,DP=Destination port,Count=Packets count(data).

官方案例明确说明:上述显示信息只有在内网主机主动向外网发起 UDP 连接时才会产生。由显示信息可知,GE2/0/1 接口下对内网主机与 Internet 中的服务器(IP 地址为 192.168.1.2)之间的 UDP 协议报文进行了自反,并对自反后的报文进行了统计。没有内网主动发起的连接,就不会出现任何回程表项——外部主动连接自然无路可走。

配置脚本

Switch 的配置脚本:

#
sysname Switch
#
acl number 3000
 rule 5 permit udp
#
interface GigabitEthernet2/0/1
 traffic-reflect outbound acl 3000
#
return

注意事项

  • 官方文档明确本例适用于框式交换机的所有版本,不适用于盒式交换机——盒子形态的接入交换机上没有这个功能,配置前先核对你的设备形态与软件版本,别白忙一场。
  • 自反规则带老化周期:老化周期内没有符合规则的报文通过,回程规则就被删除。长时间空闲的 UDP 长连接可能被掐断,相关业务(如长时间无流量的对时、心跳类应用)需要留意业务侧重连机制。
  • 本例 ACL 只放行 UDP 报文;TCP 业务的单向访问控制需另行规划规则,不能直接套用本例。
  • 回程规则的源目地址与端口完全取自你放行的出方向流量,出方向规则的范围写多宽,回程就放多宽,规则宜按实际业务收窄。

内外网之间的访问策略想按业务精细放行,诚鑫致达科技可以先帮你把策略矩阵理清楚再动手。各厂商设备的命令与默认参数存在差异,操作前请核对你的设备型号与软件版本。

源:华为S系列交换机官方文档