FAQ:USG2200 nat server命令no-reverse参数的作用

发布时间:  2014-12-04 浏览次数:  1274 下载次数:  0
问题描述
版本信息:USG2200 V300R001C10SPC300
USG系列防火墙配置端口映射(nat server)是在系统视图下配置nat server实现,命令如下
nat server protocol tcp/udp global x.x.x.x(外网地址) x(外网端口号) inside x.x.x.x(内网地址)x(内网端口号) (no-reverse)
该命令后的no-reverse参数是意义和作用是什么?
解决方案
可以通过下面的例子来理解(以下IP均为虚拟)
组网概述:server---USG---ISP---client
USG与ISP互联地址为192.168.108.141,接口上直接配置nat enable用于外网访问
USG上配置nat server protocol tcp global 192.168.108.142 5000 inside 192.168.100.109 23

外部通过192.168.108.142 5000端口发起访问时,查看会话表
[USG2210]dis firewall session table verbose
  telnet  VPN:public --> public
  Zone: untrust--> trust  TTL: 00:00:05  Left: 00:00:01
  Output-interface: GigabitEthernet0/0/1  NextHop: 192.168.100.1  MAC: 00-18-82-c6-68-2d
  <--packets:0 bytes:0   -->packets:1 bytes:48
  192.169.111.178:59465-->192.168.108.142:5000[192.168.100.109:23]
配置nat server protocol tcp global 192.168.108.142 5000 inside 192.168.109.23 no-reverse
看到的会话表与上面一致。


但当server访问外网时,

1.无no-reverse参数:
会话表:
[USG2210]dis firewall session table verbose
  http  VPN:public --> public
  Zone: trust--> untrust  TTL: 00:00:05  Left: 00:00:01
  Output-interface: GigabitEthernet0/0/0  NextHop: 192.168.108.1  MAC: 00-e8-82-35-68-f4
  <--packets:2 bytes:56   -->packets:3 bytes:72
  192.168.100.1:59354[192.168.108.142:59354]-->202.108.10.16:80

2.有no-reverse参数:
会话表:
  http  VPN:public --> public
  Zone: trust--> untrust  TTL: 00:00:05  Left: 00:00:01
  Output-interface: GigabitEthernet0/0/0  NextHop: 192.168.108.1  MAC: 00-e8-82-35-68-f4
  <--packets:1 bytes:20   -->packets:2 bytes:45
  192.168.100.1:59332[192.168.108.142:59332]-->202.108.10.16:80
为什么会转换后的地址会不一样
USG防火墙配置nat server后会形成server-map表项,用于多通道协议的端口映射。


两种配置下查看server-map表项

1.无no-reverse参数:
server-map item(s)
------------------------------------------------------------------------------
Nat Server, any -> 192.168.108.142:5000[192.169.100.109:23], Zone: ---
   Protocol: tcp(Appro: unknown), Left-Time: --:--:--, Addr-Pool: ---
   VPN: public -> public

Nat Server Reverse, 192.169.100.109[192.168.108.142] -> any, Zone: ---
   Protocol: any(Appro: ---), Left-Time: --:--:--, Addr-Pool: ---
   VPN: public -> public
可以看到有正反两个方向的映射关系

2.有no-reverse参数:
server-map item(s)
------------------------------------------------------------------------------
Nat Server, any -> 192.168.108.142:5000[192.169.100.109:23], Zone: ---
   Protocol: tcp(Appro: unknown), Left-Time: --:--:--, Addr-Pool: ---
   VPN: public -> public
  
只有正向表项,没有反向表项
按防火墙的处理机制,server-map是优先于NAT转换的,所以如果不加no-reverse参数,服务器访问外网时就会根据server-map的反向表项进行地址转换

END