拓扑
拓扑可以保存到本地,然后扩大查看,这样才能看的更清楚。(拖动到新窗口打开即可)
NAT Server测试
说明:之前部署了NAT Server功能,并且转换了2个地址,提供了对应WWW服务与FTP服务。目前用外网进行测试。
内网测试是否能正常访问
说明:可以看到2个服务都已经正常了。
外网PC访问对应服务【电信】
防火墙是有对应的NAT会话信息了,
WEB正常 FTP访问不了
外网PC访问对应服务【网通】
还是以公网地址充当外网访问的角色。
一样无法打开。
问题:为什么HTTP可以访问,而FTP却访问失败。
说明:因为HTTP是单信道协议,而FTP则是多信道协议,而分为主动与被动模式,它会根据不同的模式在应用层动态的协商一个端口号与地址,所以导致NAT后,地址变化了,但是应用层的地址防火墙没有感知到,导致访问失败。
解决办法:【开启应用层网关功能 ALG】
[USG-GW]firewall interzone trust isp_dx
[USG-GW-interzone-trust-isp_dx]detect ftp
[USG-GW]firewall interzone trust isp_lt
[USG-GW-interzone-trust-isp_lt]detect ftp
说明:该配置就是开启了应用层网关功能,在trust到2个ISP之间。注意这个不区分方向的 双向开启。
可以看到开启后,2个地址都可以正常访问了。
扩展:如果映射了PPTP服务器的话,也会出现问题。
说明:PPTP服务器除了映射端口号以外,它还会封装GRE,如果不是一对一的转换,则会出现问题,所以解决办法还是跟上面一样,在里面监控PPTP即可。
工程中常见问题:如何使用公网IP或者域名访问内部服务器。
说明:在工作当中,往往需要访问服务器,并且又对外提供了服务,这样的话,会让客户记住2个IP,一个内网访问的,一个外网访问的,这样非常不方便,也对于不懂IT技术的人来说不可行。所以我们希望的是,通过外网IP或者域名直接访问。
默认情况下用内网地址访问是没任何问题的。
解决办法【域内NAT】
1、定义地址池
[USG-GW]nat address-group 5 200.1.1.1 200.1.1.1
2、定义域内NAT
[USG-GW]nat-policy zone trust
说明:地址池的地址可以随意定义的,然后调用在域内NAT里面。如果是平时的话这里就可以结束了,可以正常访问了,但是在这个环境中还不行。
3、在双ISP+策略路由的情况下特别需要注意的地方。
(1)问题:双ISP绑定了Zone
说明:上面那2个配置只适合没有绑定Zone的,也就是在输入时没有加入对应的Zone参数,没加的话属于任何一个Zone都可以,如果加了则只处理该Zone的数据包转换,而之前定义的都是绑定了出口ISP的,所以只能转换从2个ISP来的流量,而内部来的则不能正常转换。这样会导致失效。
解决办法:no-reverse
加了两条绑定Trust Zone的,这样的话就可以处理Trust来的转换了,实际就是在域内直接转换了。这里只给出了WWW的,FTP的就不演示了,注意同一个Zone是需要加no-reverse参数的,否则配置不上。
4、策略路由影响
分析:如果在平时的话,上面3个配置绝对可以解决问题了,但是,在这个环境下,我们还部署了一个策略路由,策略路由是优先于NAT转换的,也就是说,它会按照策略路由指定的下一跳转发,那么导致的情况是,本来已经转换成功了访问,但是策略路由交给的下一跳是丢给ISP的,而不是服务器。
解决办法:
1、定义新的ACL
[USG-GW]acl number 3001
[USG-GW-acl-adv-3001]rule deny ip source 192.168.0.0 0.0.255.255 destination 192.168.88.251 0
[USG-GW-acl-adv-3001]rule permit ip source 192.168.19.0 0.0.0.255
[USG-GW-acl-adv-3001]rule permit ip source 192.16.21.0 0.0.0.255
[USG-GW]acl number 3002
[USG-GW-acl-adv-3002]rule deny ip source 192.168.0.0 0.0.255.255 destination 192.168.88.251 0
[USG-GW-acl-adv-3002]rule permit ip source 192.168.20.0 0.0.0.255
说明:ACL从标准的变为了扩展的,可以看到先是deny掉了,当192.168.0.0访问服务器的时候做转换,平时肯定是直接通过三层交换机进行转换了,没经过防火墙,但是做域内NAT的话,其实就是在防火墙的入接口上面做了一下转换,但是在入接口上面又调用了策略路由,之前的话是匹配了直接交给ISP,这样的话导致本来正常转换了的数据包,想发送给服务器,但是由于策略路由的存在,就强行的发送给ISP了,所以这里deny掉,就是让它正常按路由表转发,而不受策略路由的控制。
2、策略路由改动【把ACL调用为修改后的】
3、应用到入接口(不在演示)
4、FTP的需要注意的地方。
除了之前的NAT Server在Trust定义以外,还需要调用一个应用层监控,因为之前是在域间转换的,所以在域间调用了ALG功能,但是这次是域内转换,所以需要再次 监控。
[USG-GW]firewall zone trust
[USG-GW-zone-trust]detect ftp
结果测试
可以看到通过IP地址可以正常访问了,当然通过域名的方式也是可以的,这里只是不搭建环境测试了。
总结【策略、NAT、双ISP部署】
可以看到策略、NAT 双ISP的情况出现,需要考虑的因素会非常多,比如策略需要考虑需求,要结合NAT、时间策略等因素进行部署,达到效果,源NAT没什么需要太多注意的地方,但是NAT Server的需要注意几点,如果是同一个zone的话,必须加no-resver参数,不同Zone可以不加。而双ISP的存在,需要考虑到路由的切换,检测机制,跟策略路由的部署,这里策略路由的ACL强烈建议用扩展ACL,因为可以看到如果需求有变化的话,标准ACL立马显得无奈,只有扩展的才能更好的匹配。 最后是如果部署需要通过公网IP或者域名访问公司内部服务器的话,则必须部署域内NAT。但是有绑定Zone跟策略路由的情况下,需要非常注意。最后就是NAT的ALG功能,对于多信道的协议必须开启应用层监控功能,否则NAT识别不了,常见的比如FTP、PPTP、QQ等都有,如果发现该应用工作不正常,则加入ALG功能即可。
如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog(其他平台同名),版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注、转发、点赞支持下!~。