公司有台华为USG-6350,可以说是我修改得最多的网络设备,我刚进公司的时候它就只拉了一条100M对等长宽,为商场公共wifi提供网络出口。乖乖~~,这可不是便宜货,保守估计三年前搭机房的时候花了2万,居然和我屋企200蚊的Netgear一样待遇,所以我有事无事都会折腾一下。
4月底公司其中一个移动的网络出口需要降速,原来100M对等专线,带5个IP的,换成1:5单IP的,有点可惜,我都未真正体验过上传100M的速度。狠下心来找个时间把这篇文章敲定了。
USG现状
原来的长宽已经换成 “移动100M”、“移动50M”和“电信10M”,直接上图(以后这张图就叫“现状图”了)。
图左,终端数大的都走移动100M ,微信Server单独走电信10M,其余的类似服务器和商场联网设备走移动50M。路由表长这样⇓
第一条是临时的,大家可以忽略。第二条用于“IP回流”,下面会讲。各走到网络出口后要NAT,NAT表长这样⇓
同样第一、二条用于“IP回流”,先略过。作为防火墙,需要在策略中放行外出的数据包,安全策略长这样⇓
同样第一条用于“IP回流”。数据包溜达完回家后也需要一条路由,回程路由长这样⇓
回程路由最好写成静态路由,唔洗烦。这样就完成了“现状图”中的“内网访问外网”的过程;另一个“外网访问内网”需要用到NAT-Server,就是经常说的映射,涉及公司服务器的安全,就不上图了。
IP回流
IP回流其实并不常见,我以前就无碰过,这种现象和服务器映射有关,现在很多傻瓜设备都支持IP回流功能,不过USG-6350只在手册中给出了简例,我觉得需要详细记录下。
未做IP回流前,USG拉了两条专线,微信Server 192.168.0.200映射公网IP(120.130.14.11)发布服务,商场访客sec 192.168.0.2经由公网IP(120.130.14.10)的NAT上网。
以TCP三次握手为例,当普通用户使用公网IP访问服务器时出现下面的过程。
数据包在经过USG时,匹配映射表,目的地址D:120.130.14.11被转成D:192.168.0.200,并安全到达服务器,服务器根据这个请求包写了一份回复(就是把原来的S与D对调),回复包经过USG时目的地址为内网,直接就本地转发了,根本不会查NAT的缓存表把S转回来。回复包虽然安全到达用户电脑,但请求包与回复包不能匹配(S与D不对应),用户继续等待,直到两边都超时…连接失败。
#这里延伸一下:
SNAT,源地址转换,就是平时 内网访问外网的NAT
DNAT,目的地址转换,就是NAT-Server,俗称映射,发布服务用的
SNAT/DNAT我们都有了,但上面的过程明显只触发了DNAT,那是因为SNAT只配置在所有内对外的路径上(移动100M、移动50M、电信10M都是内网访问外网),内对内的,无论是安全策略、路由还是NAT,我们一样都未配置。
理想情况是这样的⇓
现在情况就很明朗了。
α:安全策略放行trust to trust;
β:策略路由指定内网到内网怎么走
γ:内对内的对应NAT
#其实微信Server与访客sec可以走同一条专线,用同一个公网IP,因为NAT的时候是用端口号作为区分的,保存到NAT的缓存表中,SNAT与DNAT每次都使用不同端口,复原的时候也不会乱。