【防火墙技术连载17】 强叔侃墙 NAT篇 NAT Server 三十二字真言(下篇)

[复制链接]
wzyinting
wzyinting   发表于 2015-1-4 17:12:16 已赞(0) 赞(0)

为什么我做双机热备

在主设备配置:

nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80 vrrp 1或者

nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80 vrrp master

都不管用呢,照样是一直在弹出arp冲突的日志;

 

但是如果我在新配置另外一条同网段的nat server,例如

nat server protocol tcp global 1.1.1.2 9980 inside 10.1.1.3 80 vrrp 1或者

nat server protocol tcp global 1.1.1.2 9980 inside 10.1.1.3 80 vrrp master

之后,前面的1.1.1.1的arp冲突日志消失了,而1.1.1.2的开始不停的弹出!

 

 

  • x
  • 常规:

点评 回复

weissyang
weissyang   发表于 2015-1-5 09:43:39 已赞(0) 赞(0)

此外,一分为二时还会存在报文来回路径不一致的问题。例如,公网用户通过防火墙发布给ISP1的公网地址1.1.1.1访问服务器,服务器的响应报文到达防火墙后,防火墙根据目的地址查找路由表,可能会将响应报文由ISP2发送出去,这样就会导致访问速度过慢或无法访问。

--------------------------

此处值得商榷

服务器响应报文不都是先查找会话表按照进方向的先前包生成的会话直接原路返回么?所有防火墙都是如此处理的。前面你讲华为防火墙的会话处理机制时也是这样讲的。所以应该不存在你文中说的回包从另一个ISP2发送出去的问题啊

而且如果照你文中这样的机制的话,就不是路径不一致慢的问题了。回包的出口转换源IP都不一样了,与远端主机的TCP连接都无法建立啊

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2015-1-5 11:34:47 已赞(0) 赞(0)

回复 35 楼

首先,我们来看下会话表里面记录了些什么

<sysname> display firewall session table verbose
Current Total Sessions : 2  
  PPLive  VPN:public --> public  ID: a38f36333beb0f5654453374
  Zone: trust--> untrust  TTL: 00:02:00  Left: 00:00:35  User: 10.1.17.16
  Output-interface: GigabitEthernet0/0/1  NextHop: 10.2.206.129  MAC: 00-0f-e2-25-db-4f
  <--packets:16 bytes:784   -->packets:16 bytes:1648
  10.1.17.16:5041[10.1.206.132:2053]-->10.1.44.48:18006 PolicyName: policy_sec_internetaccess 

会话表里会有出接口和下一跳,但是并没有记录报文入接口。所以,内网服务器回应的报文,从哪个接口返回到公网,是没办法直接从会话表里获悉的。而是会去查路由表决定从哪个接口出去。多出口,配置等价路由的情况下,有可能回应的报文会被hash到另一个接口出去了。

之前的贴子里说的回应的报文根据会话表转发,是说回应的报文匹配到会话表就不再去查安全策略了。到了路由这一层,还是得靠路由表做转发。

而且如果照你文中这样的机制的话,就不是路径不一致慢的问题了。回包的出口转换源IP都不一样了,与远端主机的TCP连接都无法建立啊

回包的源IP是配置NAT Server后服务器发布的公网IP,不会因为出口不同有变化。

 

 

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2015-1-5 11:41:57 已赞(0) 赞(0)

回复 34 楼

这个得看下您的配置了。

双机热备有没有建立,接口的vrrp备份组id和nat server里的id是否一致,master和slave是否一致?

如果配置没问题的话,应该是不会出现您说的这种问题的。

  • x
  • 常规:

点评 回复

wzyinting
wzyinting   发表于 2015-1-5 11:48:49 已赞(0) 赞(0)

回复 37 楼

双机热备,主备关系肯定是没问题,不然也不会吧配置自动同步过去。

然后nat和vrrp 都是直接使用master的。

不知道是不是设备自身的问题,有多条nat server,但是有arp冲突的一般都是最后配置的那2个nat server中的地址。

  • x
  • 常规:

点评 回复

weissyang
weissyang   发表于 2015-1-6 10:34:37 已赞(0) 赞(0)

Quote 36 #

首先,我们来看下会话表里面记录了些什么

<sysname> display firewall session table verbose
Current Total Sessions : 2  
  PPLive  VPN:public --> public  ID: a38f36333beb0f5654453374
  Zone: trust--> untrust  TTL: 00:02:00  Left: 00:00:35  User: 10.1.17.16
  Output-interface: GigabitEthernet0/0/1  NextHop: 10.2.206.129  MAC: 00-0f-e2-25-db-4f
  <--packets:16 bytes:784   -->packets:16 bytes:1648
  10.1.17.16:5041[10.1.206.132:2053]-->10.1.44.48:18006 PolicyName: policy_sec_internetaccess 

会话表里会有出接口和下一跳,但是并没有记录报文入接口。所以,内网服务器回应的报文,从哪个接口返回到公网,是没办法直接从会话表里获悉的。而是会去查路由表决定从哪个接口出去。多出口,配置等价路由的情况下,有可能回应的报文会被hash到另一个接口出去了。

之前的贴子里说的回应的报文根据会话表转发,是说回应的报文匹配到会话表就不再去查安全策略了。到了路由这一层,还是得靠路由表做转发。

而且如果照你文中这样的机制的话,就不是路径不一致慢的问题了。回包的出口转换源IP都不一样了,与远端主机的TCP连接都无法建立啊

回包的源IP是配置NAT Server后服务器发布的公网IP,不会因为出口不同有变化。

 

 

qiang_shu Post On 2015-01-05 11:34


----------------------

USG5000是这样处理流程么?我么就是这样的典型的多ISP地址端口映射。貌似我们也没有配置相应的命令。回包也OK啊

  • x
  • 常规:

点评 回复

xiezhiyongit
xiezhiyongit   发表于 2015-3-5 09:11:47 已赞(0) 赞(0)

帮忙看下我的说法对不对?

1、1.1.1.1对外发布的。
那么对于FW1来说会向外发送2种arp 
  1)虚拟IP地址1.1.1.1 对应的虚拟ip地址(vrrp协议要求)
  2)虚拟ip地址1.1.1.1 对应的真实ip地址(nat要求的,1.1.1.1既然和FW GE0/0/1的IP地址在同一个     网段,那么肯定和FW1 三层上行设备也在同一网段,那么三层上行设备在收到去往服务器的报文的     时候要做ARP请求的)
那么FW2会向外发布1
  1)虚拟ip地址1.1.1.1 对应的真实ip地址(nat要求的)

虚实变换的作用就是不让nat发送免费的arp



  • x
  • 常规:

点评 回复

weissyang
weissyang   发表于 2015-1-7 17:14:27 已赞(0) 赞(0)

墙叔。配了NAT SERVER后会有会话表生成。是否意味着回包的转换不用另外做了?只是路由查找还是要按流程来。?

  • x
  • 常规:

点评 回复

xiezhiyongit
xiezhiyongit   发表于 2015-3-5 09:36:09 已赞(0) 赞(0)

回复 34 楼

我没做实验,下面的东西是我想得:

是不是备用FW也需要配置一下,nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80 vrrp 1

你说配置完成之后还是出现arp冲突报文,你就不会抓包看一下,到底是那个设备在发送报文导致冲突?

  • x
  • 常规:

点评 回复

weissyang
weissyang   发表于 2015-1-8 09:26:57 已赞(0) 赞(0)

扩展提问:

 

NAT SERVER  命令里 既然不配no-reverse才会生成自反对称的地址端口转换。

那么只配该命令

[FW] nat server protocol tcp global1.1.1.1 9980 inside 10.1.1.2 80no-reverse

进来的数据包 目的地址 1.1.1.1 9980 转换成10.1.1.2 80

岂不是回包都无法正确进行地址端口转换?那么回包源地址10.1.1.2 80 就无法转换成1.1.1.1 9980。

对应的回包地址端口转换要怎么生成?要单独配对应的源NAT转换命令?如何保证源NAT转换刚好也是用的上述端口进行的转换?

  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录