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

[复制链接]
发表于 : 2014-5-14 12:58:13 最新回复:2018-03-11 23:53:00
40991 63
强叔侃墙
强叔侃墙 官方号

本期强叔将会给大家阐释三十二字真言的后半段:一分为二,源进源回;虚实变换,合二为一。

一分为二,源进源回

防火墙作为出口网关,双出口、双ISP接入公网时,配置NAT Server通常需要一分为二,让一个私网服务器向两个ISP发布两个不同的公网地址供访问。一分为二的方法有两种:

第一种是将接入不同ISP的公网接口规划在不同的安全区域中,配置NAT Server时,带上zone参数,使同一个服务器向不同安全区域发布不同的公网地址。

[FW] nat server zone untrust1 protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80            

[FW] nat server zone untrust2 protocol tcp global 2.2.2.2 9980 inside 10.1.1.2 80            


第二种是将接入不同ISP的公网接口规划在同一个安全区域中,配置NAT Server时,带上no-reverse参数,使同一个服务器向同一个安全区域发布两个不同的公网地址。

[FW] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80 no-reverse              

[FW] nat server protocol tcp global 2.2.2.2 9980 inside 10.1.1.2 80 no-reverse              


看到这里小伙伴们就要问了,强叔强叔,上一期中你不是讲过no-reverse参数是用来除去反向Server map表项自断出路的吗,这里怎么又用到了呢?莫急莫急,且听强叔给你慢慢道来。

首先,我们来看下不带no-reverse参数直接配置上面两条命令会发生什么?

答案是不带no-reverse参数这两条命令压根就不能同时下发。


我们再尝试着逆向思考下,假如这两条命令能同时下发,会发生什么?

将上面的两条命令分别在两台防火墙上配置,然后查看各自生成的Server map表项。



很容易看出来,一台防火墙上的反向Server map表项是将报文的源地址由10.1.1.2转换为1.1.1.1,另一台防火墙上的反向Server map表项是将报文的源地址由10.1.1.2转换为2.2.2.2。试想下,如果这两个反向Server map表项同时出现在一台防火墙上会发生什么?――防火墙既可以将报文的源地址由10.1.1.2转换为1.1.1.1,又可以转换为2.2.2.2。于是乎,防火墙凌乱了~这就是两条命令不带no-reverse参数同时下发会带来的问题。如果配置时带上no-reverse参数,就不会生成反向Server map表项。没有了反向Server map表项,上述的问题也就不复存在了。

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

为了避免这个问题,还需要在防火墙上增加一些的配置,保证报文的源进源回,即请求报文从某条路径进入,响应报文依然沿着同样的路径返回。


USG9000系列防火墙源进源回功能是通过在公网接口下配置redirect-reverse命令来实现的。例如上图中接入ISP1的公网接口GE1/0/1的源进源回功能配置如下:

[FW] interface GigabitEthernet 1/0/1                                                                        

[FW-GigabitEthernet1/0/1] redirect-reverse next-hop 1.1.1.254                          

配置完成后,如果请求报文从GE1/0/1进入,则响应报文也强制从GE1/0/1发出,而不再是通过查找路由表来确定出接口。

USG2000/5000系列防火墙源进源回功能配置思路与USG9000系列相同,配置命令为reverse-route next-hop next-hop-address

USG6000系列防火墙源进源回功能是通过reverse-route enable命令开启后,还需要在接口下使用gateway命令配置网关。

[FW] interface GigabitEthernet 1/0/1                                                                        

[FW-GigabitEthernet1/0/1] gateway 1.1.1.254                                                         

[FW-GigabitEthernet1/0/1] reverse-route enable                                                    


 

虚实变换,合二为一

为了让小伙伴们能明白“虚实”二字的含义,需要大家随着强叔穿越到未来的双机热备站,提前了解一点双机热备的知识。

如下图所示的双机热备组网中,两台防火墙并不是直接使用GE0/0/1接口的实IP地址与公网通信,而是将GE0/0/1接口加入一个VRRP备份组,使用VRRP备份组的虚拟IP地址与公网通信。配置虚拟IP地址的同时,防火墙会自动为其生成一个虚MAC地址。


让我们再回到NAT站,强叔这里所说的 “实”指的就是物理接口的实MAC地址,“虚”指的就是虚MAC地址。

明白“虚实”的含义后,接下来强叔就要讲讲“虚实”在对NAT Server配置的影响。

首先,小伙伴们需要知道这样一个结论:当NAT Server公网地址与公网接口的地址在同一个网段时,防火墙会发送NAT Server公网地址的免费ARP请求报文。我们使用如下组网进行演示:


NAT Server的配置如下:

[FW] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80                       

在图示处抓包,可以看到防火墙发送的NAT Server公网地址的免费ARP请求报文。报文中携带的1.1.1.1MAC地址为0000-00e0-bb01,正是公网接口GE0/0/1MAC地址。


我们在eNSP上模拟了前面的双机热备组网,并在FW1(主设备)上配置了NAT Server

[FW1] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80                     


命令一下发,设备就打印如下的IP地址冲突日志:

2014-05-11 10:02 FW1%%01ARP/4/DUP_IPADDR(l): Receive an ARP packet with        

duplicate ip address 1.1.1.1 from GigabitEthernet0/0/1, source MAC is 0000-003a-f701!    

日志中显示冲突源的MAC地址为0000-003a-f701,这个正是FW2GE0/0/1接口的MAC。稍作分析,就能明白为什么会发生IP地址冲突了。

FW1上配置了NAT Server后,由于公网地址为1.1.1.1,和GE0/0/1接口的地址(1.1.1.2/24)在同一个网段,FW1会发送1.1.1.1的免费ARP请求报文。报文中携带的1.1.1.1MAC地址为GE0/0/1接口的MAC 0000-0006-1901。同时,因为FW1FW2处于双机热备状态,FW1NAT Server的配置会同步到FW2上,而FW2 GE0/0/1接口的地址(1.1.1.3/24)和NAT Server公网地址也在同一个网段,这样FW2也会发送1.1.1.1的免费ARP请求报文。报文中携带的1.1.1.1MAC地址为GE0/0/1接口的MAC 0000-003a-f701。于是,同一广播域中有两个MAC地址对应着同一个IP地址1.1.1.1,产生了IP地址冲突。

同时,由于FW1FW2同时发送免费ARP请求报文,上行设备学习到的1.1.1.1MAC也会在0000-0006-19010000-003a-f701之间不停的切换。如下图就是Client上查看到的ARP表项。


这样,从Client***问1.1.1.1时,Client的网卡会时而用0000-0006-1901来封装报文,时而用0000-003a-f701来封装报文。如果用0000-0006-1901来封装报文,则报文会被发往FW1(主设备),业务访问正常。如果用0000-003a-f701来封装报文,则报文会被发往FW2(备设备)。由于FW2作为备设备时是不处理业务的,报文到达FW2后就会被丢弃。于是就会出现业务时通时不通的情况。

在配置命令中加上vrrp关键字就能解决这个问题。我们按如下命令重新配置:

[FW1] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80 vrrp 1                 

首先,设备上不再打印IP地址冲突日志了。在防火墙和上行交换机之间抓包我们会发现,只有主用防火墙会发送免费ARP报文,且报文中携带的1.1.1.1MAC地址变成了0000-5e00-0101VRRP备份组1的虚MAC地址。Client访问1.1.1.1时,网卡会使用0000-5e00-0101来封装报文。这样就能保证报文永远都是向主用设备转发了。是为虚实变换之间,合二为一也。


至此,NAT Server的三十二字真言阐释完毕。通过强叔的讲解,相信小伙伴们对NATServer的正反Server-map表项作用,配置命令中的两个重要的参数no-reversevrrp的使用方法,以及多出口NAT Server的配置等都有了更加全面和深入的了解了吧。

 

强叔提问:

为什么NAT Server的公网地址和公网接口地址在同一个网段时,防火墙会发免费ARP,而不在同一个网段时,防火墙不会发免费ARP

 

 

上一篇 NAT篇 NAT Server 三十二字真言(上篇)

下一篇 NAT篇 双剑合璧,无往不利――双向NAT

汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
周中斌
周中斌   发表于 2014-9-12 15:49:48 已赞(0) 赞(0)

当NAT Server公网地址与公网接口的地址在同一个网段时,我之前配置时只是知道必须要加VRRP的ID,今天终于明白了配置的真正含义!膜拜
  • x
  • 常规:

点评 回复

shadowboy
shadowboy   发表于 2014-5-14 13:31:39 已赞(0) 赞(0)

支持强叔来了,虽然有些东西高深,果断收藏。。。


图好像挂了。。。。显示不了图片。。

  • x
  • 常规:

点评 回复

water
water  精英 发表于 2014-5-14 13:41:47 已赞(0) 赞(0)

执行了源进源回命令,如果这条路上没有路由也能出去?那下一跳变化了呢?

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-14 13:48:24 已赞(0) 赞(0)

回复 2 楼

多谢提醒,已经重新编辑,您再看下~
  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-14 14:05:49 已赞(0) 赞(0)

引用 3 楼

执行了源进源回命令,如果这条路上没有路由也能出去?那下一跳变化了呢?

water 发表于 2014-05-14 13:41


嗯,不需要路由也能出去。

下一跳变化了,相应的源进源回中的next-hop-address也要改成新的下一跳。                                                                                                             

  • x
  • 常规:

点评 回复

jmdhhy
jmdhhy  新锐 发表于 2014-5-14 18:37:46 已赞(0) 赞(0)

配置完成后,如果请求报文从GE1/0/1进入,则响应报文也强制从GE1/0/1发出,而不再是通过查找路由表来确定出接口。

USG2000/5000/6000系列防火墙源进源回功能配置思路与USG9000系列相同,配置命令为reverse-route next-hop next-hop-address

    usg5320上没找到reverse-route next-hop next-hop-address这个,in买个命令。

软件版本Software Version: USG5300 V100R003C01SPC801 

  • x
  • 常规:

点评 回复

user_18761
user_18761   发表于 2014-5-14 20:53:25 已赞(0) 赞(0)

强叔的文章分析的很透彻,佩服。好像看精彩的网络小说一样,天天期待更新。希望多发些这类的技术文档。
  • x
  • 常规:

点评 回复

kmyd
kmyd  大师 发表于 2014-5-14 21:59:54 已赞(0) 赞(0)

精彩,谢谢强叔!!
  • x
  • 常规:

点评 回复

DoubleDong
DoubleDong   发表于 2014-5-14 22:56:57 已赞(0) 赞(0)

睡到半夜 起来撒尿 也要看完强叔的更新帖子
  • x
  • 常规:

点评 回复

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

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

登录参与交流分享

登录