双出口网络只有一条公网IP发布服务器必须做源进源出

双线出口的企业网络,发布服务器时最容易踩一个坑:公网 IP 只在一家运营商申请,结果另一家运营商的用户访问时特别慢甚至直接连不上,而自己在机房里怎么测都正常。查线路、查带宽、重启设备都白折腾——问题多半出在「来回路径不一致」上。

原理一句话讲清:外网用户的访问报文从 ISP1 线路进入防火墙,转发给内网服务器;服务器回包时,防火墙按缺省路由选路,很可能从 ISP2 线路发出。去程走 A 线、回程走 B 线,报文的源地址与出接口对不上,被运营商边缘设备直接丢弃。表现就是「一部分用户通、一部分用户不通」,跟服务器本身没有任何关系。

排查时有个省力的判据:先问报障用户用的是什么网络。如果「电信用户全通、联通用户全不通」这种按运营商整齐分界的现象出现,基本可以锁定回流问题;如果是随机性的时通时断,才需要往链路质量方向查。确认是回流问题后,再上设备看会话表,对比同一访问的进入接口与回应报文的离开接口是否一致,证据链就闭环了。

解决思路两步走:把去程和回程钉死在同一条线上,也就是在公网 IP 所属的出口接口上开启源进源出;同时把公网地址正确映射到内网服务器。下面这套组网数据来自华为防火墙官方典型配置案例:GE0/0/1 属于 untrust1 区域(ISP1,1.1.1.1/24),GE0/0/7 属于 untrust2 区域(ISP2,2.2.2.2/24),GE0/0/2 属于 DMZ 区域(10.2.0.1/24);内网 FTP 服务器地址 10.2.0.8,对外发布公网地址 1.1.10.10,两家 ISP 的用户都通过这个地址访问。配置脚本如下:

#
 sysname DeviceA
#
 ip route-static 1.1.10.10 255.255.255.255 NULL0
#
interface GE0/0/1
 ip address 1.1.1.1 255.255.255.0
 redirect-reverse next-hop 1.1.1.254
 gateway 1.1.1.254
#
interface GE0/0/2
 ip address 10.2.0.1 255.255.255.0
#
interface GE0/0/7
 ip address 2.2.2.2 255.255.255.0
 gateway 2.2.2.254
#
firewall zone dmz
 set priority 50
 add interface GE0/0/2
#
firewall zone name untrust1 id 4
 set priority 10
 add interface GE0/0/1
#
firewall zone name untrust2 id 5
 set priority 20
 add interface GE0/0/7
#
firewall interzone dmz untrust1
 detect ftp
#
destination-nat address-group addressgroup1
 section 10.2.0.8 10.2.0.8
#
nat-policy
 rule name policy1
  source-zone untrust1
  source-zone untrust2
  destination-address 1.1.10.10 32
  service ftp
  action destination-nat static address-to-address address-group addressgroup1
#
security-policy
 rule name policy1
  source-zone untrust1
  source-zone untrust2
  destination-zone dmz
  destination-address 10.2.0.0 24
  action permit
#
return

几个关键点拆开说:

  • redirect-reverse next-hop 1.1.1.254 是整段配置的灵魂,只在申请了服务器公网地址的 GE0/0/1 上配置,作用是强制把回应报文从报文进入的接口转发回去,这就是「源进源出」。GE0/0/7 那条出口只配默认网关,不动它。
  • ip route-static 1.1.10.10 255.255.255.255 NULL0 是黑洞路由,指向 NULL0 接口防环路。发布了公网地址的出口网络,这条几乎必配。
  • detect ftp 开启了 FTP 协议的 NAT ALG。FTP 是多通道协议,不开 ALG 会出现「能连上、传不了文件」的怪问题。
  • NAT 策略里目的地址 1.1.10.10 静态映射到地址池 addressgroup1 里的 10.2.0.8,源区域同时放 untrust1 和 untrust2,两条线的用户都能进来。
  • 上游运营商侧的 Router 还需要一条到 1.1.10.10 的静态路由指向防火墙,这一步通常要联系 ISP 的网络管理员配合。

验证方法:配置完成后让公网用户访问服务器,在设备「监控 > 会话表」里能看到目的地址为服务器公网地址的会话;再用两家运营商的手机网络分别访问一次,两边都稳定打开,才算真正解决。改完配置别急着收工,把两条出口都各测一轮上传和下载,多通道协议尤其要验——FTP 能列目录但传不动文件,往往就是 ALG 或回流还差半步。

这类问题的隐蔽性在于「内网自测永远正常」:内网用户走的是内部路由,根本不经过公网出口,所以机房里怎么测都不复现。真正给结论的只有两个动作——用两家运营商的真实外网网络各访问一次,以及在会话表里确认回应报文走对了出口。

贵州诚鑫致达科技在给企业客户部署双线出口时,第一步就是核对服务器发布地址的归属和回流路径,这条源进源出几乎是必配项——它不花一分钱带宽成本,却直接决定一半外网用户能不能用上你的服务。


企业存储选型参考|贵州诚鑫致达

做高可用与业务不间断保障,群晖机型参考:PAS7700 · RS2423RP+ · SA3410。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。