一台服务器两个服务想分开发布?华为防火墙目的NAT公网地址转私网端口各走各的

上一种场景是服务器多、公网地址也多,一台对一个。现实里还有镜像情况:服务器只有一台,上面跑的服务倒有好几个,比如 80 端口一个站、81 端口一个站。直接发布的话外网用户访问体验是 IP 相同只有端口不同,宣传起来别扭,统计流量也分不开。这种时候可以向 ISP 申请多个公网地址,让不同服务各自对外用一个独立的公网 IP——这就是目的 NAT 里的公网地址与私网端口一对一转换。

华为防火墙官方 Web 示例:DeviceA 做边界安全网关,内网服务器通过 80、81 两个端口提供不同服务,向外网用户公布 1.1.10.10、1.1.10.11 两个公网地址分别对应两个服务。GE0/0/1 是公网口 1.1.1.1/24 放 Untrust,GE0/0/2 是服务器口 10.2.0.1/24 放 DMZ,服务器网关 10.2.0.1,目的地址池就一个地址 10.2.0.7。

配置步骤

第一步,接口与区域。「网络 > 接口」把 GE0/0/1 配 1.1.1.1/24 加入 untrust,GE0/0/2 配 10.2.0.1/24 加入 dmz。

第二步,安全策略。「策略 > 安全策略 > 安全策略」新建 policy1:源区域 untrust、目的区域 dmz、目的地址 10.2.0.0/24、动作允许。跟上一篇一样,目的地址填转换后的内网网段。

第三步,NAT 策略。「策略 > NAT策略 > NAT策略」新建 policy_nat1:源区域 untrust,目的地址 range 1.1.10.10 1.1.10.11,服务新建一个 tcp 目的端口 2000 的自定义服务,动作选目的 NAT 静态转换的地址转端口方式,转换后地址 10.2.0.7、端口 80 到 81。配服务时点「服务」列输入框选「新建 > 添加协议或协议号」。官方在这个场景下的提醒很关键:转换前端口、转换后 IP 地址都只能配一个值,也就是「服务」和「目的地址转换为」各一个——多台服务器或多个服务组合,就需要多条 NAT 策略,别指望一条包打天下。

第四步,黑洞路由。1.1.10.10、1.1.10.11 各配一条出接口 NULL0 的静态路由防环。

第五步,缺省路由,下一跳 1.1.1.254;再由 ISP 在接入 Router 上配到 1.1.10.10 和 1.1.10.11 的静态路由、下一跳 1.1.1.1,把流量引到防火墙——这步得找 ISP 网络管理员。

配置脚本整块如下:

#
 sysname DeviceA
#
interface GE0/0/1
 ip address 1.1.1.1 255.255.255.0 
#
interface GE0/0/2
 ip address 10.2.0.1 255.255.255.0 
#
firewall zone untrust
 set priority 5
 add interface GE0/0/1
#
firewall zone dmz
 set priority 50
 add interface GE0/0/2 
#
 ip route-static 0.0.0.0 0.0.0.0 1.1.1.254 
 ip route-static 1.1.10.10 255.255.255.255 NULL0
 ip route-static 1.1.10.11 255.255.255.255 NULL0
#  
security-policy   
  rule name policy1  
    source-zone untrust 
    destination-zone dmz 
    destination-address 10.2.0.0 24 
    action permit 
#  
nat-policy  
  rule name policy_nat1 
    source-zone untrust 
    destination-address range 1.1.10.10 1.1.10.11
    service protocol tcp destination-port 2000
    action destination-nat static address-to-port address 10.2.0.7 80 to 81
# 
return

跟地址对地址的映射比,这套配置少了 destination-nat address-group 地址池——转换目标是固定的一个地址加端口段,直接写在动作里,结构反而更短。黑洞路由、缺省路由、ISP 侧引流路由这三件套一个都不能少,是所有公网地址发布场景的固定动作。

验证

公网用户能访问服务器即通;细节看「监控 > 会话表」,能查到目的地址为服务器公网地址的会话,两个公网 IP 各自的访问记录分开摆着。

同一台服务器上多个服务要分地址发布、或者内外网要走不同公网入口的场景,这种地址转端口的目的 NAT 是最省公网地址的玩法之一。贵州诚鑫致达科技给客户做服务发布方案时,映射方式按服务器数量和地址储备量来定,一台多服务的就用这种。你的服务器上是多个服务挤一个 IP,还是已经分开了?