热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

16、华为华三中小型企业网络架构搭建【防火墙篇之NAT存在的问题(通过公网地址或者域名方式访问)】

拓扑拓扑可以保存到本地,然后扩大查看,这样才能看的更清楚。(拖动到新窗口打开即可)NATServer测试说明࿱

拓扑

实战

拓扑可以保存到本地,然后扩大查看,这样才能看的更清楚。(拖动到新窗口打开即可)

NAT Server测试

说明:之前部署了NAT Server功能,并且转换了2个地址,提供了对应WWW服务与FTP服务。目前用外网进行测试。

内网测试是否能正常访问

image001.png
image002.png

说明:可以看到2个服务都已经正常了。

外网PC访问对应服务【电信】

image003.png

防火墙是有对应的NAT会话信息了,

image004.png
image005.png

WEB正常 FTP访问不了

image006.png

外网PC访问对应服务【网通】

image007.png

还是以公网地址充当外网访问的角色。

image008.png
image009.png

一样无法打开。

问题:为什么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之间。注意这个不区分方向的 双向开启。

image010.png

可以看到开启后,2个地址都可以正常访问了。

扩展:如果映射了PPTP服务器的话,也会出现问题。
说明:PPTP服务器除了映射端口号以外,它还会封装GRE,如果不是一对一的转换,则会出现问题,所以解决办法还是跟上面一样,在里面监控PPTP即可。

工程中常见问题:如何使用公网IP或者域名访问内部服务器。

说明:在工作当中,往往需要访问服务器,并且又对外提供了服务,这样的话,会让客户记住2个IP,一个内网访问的,一个外网访问的,这样非常不方便,也对于不懂IT技术的人来说不可行。所以我们希望的是,通过外网IP或者域名直接访问。

image011.png

默认情况下用内网地址访问是没任何问题的。

image012.png

解决办法【域内NAT】

1、定义地址池
[USG-GW]nat address-group 5 200.1.1.1 200.1.1.1

 

2、定义域内NAT
[USG-GW]nat-policy zone trust

image013.png

说明:地址池的地址可以随意定义的,然后调用在域内NAT里面。如果是平时的话这里就可以结束了,可以正常访问了,但是在这个环境中还不行。

3、在双ISP+策略路由的情况下特别需要注意的地方。
(1)问题:双ISP绑定了Zone
说明:上面那2个配置只适合没有绑定Zone的,也就是在输入时没有加入对应的Zone参数,没加的话属于任何一个Zone都可以,如果加了则只处理该Zone的数据包转换,而之前定义的都是绑定了出口ISP的,所以只能转换从2个ISP来的流量,而内部来的则不能正常转换。这样会导致失效。
解决办法:no-reverse

image014.png

加了两条绑定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调用为修改后的】

image015.png

3、应用到入接口(不在演示)

4、FTP的需要注意的地方。
除了之前的NAT Server在Trust定义以外,还需要调用一个应用层监控,因为之前是在域间转换的,所以在域间调用了ALG功能,但是这次是域内转换,所以需要再次 监控。
[USG-GW]firewall zone trust
[USG-GW-zone-trust]detect ftp

结果测试

image016.png
image017.png

可以看到通过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所有,原创不易,侵权必究,觉得有帮助的,关注、转发、点赞支持下!~。

 


推荐阅读
  • 如果程序使用Go语言编写并涉及单向或双向TLS认证,可能会遭受CPU拒绝服务攻击(DoS)。本文深入分析了CVE-2018-16875漏洞,探讨其成因、影响及防范措施,为开发者提供全面的安全指导。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 解决Parallels Desktop错误15265的方法
    本文详细介绍了在使用Parallels Desktop时遇到错误15265的多种解决方案,包括检查网络连接、关闭代理服务器和修改主机文件等步骤。 ... [详细]
  • 解决 Windows Server 2016 网络连接问题
    本文详细介绍了如何解决 Windows Server 2016 在使用无线网络 (WLAN) 和有线网络 (以太网) 时遇到的连接问题。包括添加必要的功能和安装正确的驱动程序。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 本文详细解析了神州数码DCRS5980交换机的基础配置流程和技术要点。首先,通过进入配置模式(`enable`),设置主机名(`hostname 5980`),并创建VLAN,逐步介绍了设备的初始设置步骤。此外,还涵盖了端口配置、IP地址分配及安全设置等关键环节,为用户提供了全面的配置指导。 ... [详细]
author-avatar
吴柏盈4477
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有