内网PC通过NAT server公网地址访问内部服务器时TCP三次握手不成功
公网地址访问内部服务器时TCP三次握手不成功
一、 背景
在上图所示的网络中,PC 及Server属不同LAN,都是zone trust。为了让Internet用户能够访问到Server,FW上部署了NatServer:nat server global A.B.C.D inside 192.168.51.M也就是将公网地址A.B.C.D映射到192.168.51.M。完成上述配置后,Internet用户能够通过A.B.C.D这个公网IP访问Server。但是内网的PC在访问Server的时候,却存在一点问题:PC通过私有IP地址192.168.51.M能够访问Server的Web服务,但是当PC使用该服务器映射的公网地址A.B.C.D试图访问Server的时候,却发现始终无法成功。
二、 PC使用公网地址访问Server的过程
PC使用公网地址A.B.C.D试图访问Server,首先要建立TCP三次握手,报文的源IP地址为10.1.2.X,目的地址为A.B.C.D,数据包被送到网关防火墙。
防火墙由于部署了NAT server,因此将数据包的目的地址A.B.C.D转换成192.168.51.M,然后查路由表,发现网络吓一跳出口GE0/0/1。
防火墙将地址转换后的数据包发向Server。
Server收到数据包后,得回包吧,由于Server收到的这个数据包源地址为10.1.2.x,因此它在产生回程数据包的时候,回程数据包的目的地址就是10.1.2.x,而10.1.2.x又是本地网络内的节点,因此Server直接将这个源为192.168.51.M,目的地址为10.1.2.x的数据包发送给了PC,而不用再绕回防火墙。
PC在收到这个数据包的时候,发现数据包的源地址是192.168.51.M,这个地址是哪里冒出来的?它等候的是A.B.C.D的回程报文,可是现在却收到了192.168.51.M的数据包,它将该报文丢弃。
三、 原因
数据包没有绕回防火墙,导致PC收到的回程数据包源地址没有被正确的转换,从而TCP三次握手不成功。要解决这个问题,就需要让回程的流量能够回到防火墙,然后让防火墙将源地址转换成A.B.C.D再发给PC。
四、 解决方法
回程的流量能够回到防火墙,然后让防火墙将源地址转换成A.B.C.D再发给PC。
可以通过在防火墙上为PC创建一个NAT地址池,然后部署trust安全域内的源地址转换即可:
[FW] nat address-group 110.199.254.x
[FW] nat-policy zone trust
[FW-nat-policy-zone-trust] poliyc 10
[FW-nat-policy-zone-trust-10] policy source any
[FW-nat-policy-zone-trust-10] policy destination 192.168.51.M 0
[FW-nat-policy-zone-trust-10] action source-nat
[FW-nat-policy-zone-trust-10] address-group 1
五、 数据包交互的过程
PC使用公网地址A.B.C.D访问Server,首先要建立TCP三次握手,报文的源IP地址为10.1.2.x,目的地址为A.B.C.D,数据包被送到网关防火墙。
防火墙由于部署了nat server,于是首先将数据包的目的地址A.B.C.D转换成192.168.51.M,随后又发现还部署了源地址转换,要把源地址为10.1.2.x、目的地址为192.168.51.M的数据包进行源地址转换,将源地址转换成10.199.254.x。
防火墙将地址转换后的数据包发向Server:
服务器收到数据包后要发回程报文,回程报文的源地址为192.168.51.M,目的地址为10.199.254.x,这个数据包被发向了Server的网关192.168.5.1.254,最终到达防火墙。
防火墙收到这个数据包后,由于本地已经有了NAT的映射条目,因此将数据包的源地址192.168.51.M替换成A.B.C.D,将目的地址10.199.254.x替换成10.1.2.x。
防火墙将数据包转发给PC。
PC收到这个数据包后,发现正是自己期待的A.B.C.D的回包,因此TCP三次握手成功。
转载于:https://blog.51cto.com/692344/1867247
内网PC通过NAT server公网地址访问内部服务器时TCP三次握手不成功相关推荐
- 内网用户通过域名或公网IP访问内部服务器的解决办法
内网用户通过域名或公网IP访问内部服务器的解决办法 原因-路由回流 组网图 解决方案 内部NAT方案 内网用户与服务器不同网段 E0/0和E0/2都需要做nat server 内网用户与服务器相同网段 ...
- 内网服务器防火墙作用,防火墙内网用户通过公网域名或公网IP访问内部服务器 - 华为技术论坛 - 51CTO技术论坛_中国领先的IT技术社区...
发表于 2010-10-12 21:59 | 来自 51CTO网页 内网使用公网地址访问内部服务器需求的实现 产品型号:100V 方法一.R002版本支持. 方法二.使用下面的配置进行规避: 100V ...
- 内网服务器防火墙作用,防火墙内网用户通过公网域名访问内部服务器典型配置案例集...
1)防火墙开启ALG DNS功能. 核心交换机配置: 核心交换机上配置PC和服务器的网关,缺省路由指向防火墙,具体配置略. 防火墙配置: 1.在接口G0/0.G0/1.G0/2上配置相应的地址,正确配 ...
- 内网通过映射后的公网IP访问内网服务测试--ASA8.0 hairpin NAT测试
一.测试拓扑: 参考链接:http://blog.csdn.net/boblxs/article/details/8063814 二.基本思路: A.通过配置hairpin NAT使得内网通过映射后的 ...
- NAT环境下,内网用户使用公网地址访问内网服务器
一.环境 1.单位内部有一台服务器,提供web.ftp.ssh等服务,ip地址为私网地址. 2.出口使用cisco路由器,做端口映射,使服务器对外提供服务. 3.内部用户可以通过私网地址访问服务器,外 ...
- USG防火墙------内外网用户通过外网IP访问内部服务器(NAT)
实现需求:用户通过内外网用户通过公网IP访问内部服务器. 一.局域网配置:交换机(SW7).防火墙(FW3).服务器(Server1).客户端(Client1) 二.配置思路 1.配置防火墙接口和 ...
- 【Linux云计算架构:第三阶段-Linux高级运维架构】第26章——tcp三次握手四次挥手及在局域网中使用 awl伪装MAC地址进行多线程SYN攻击
25.1 tcp三次握手及tcp连接状态(含tcpdum抓包分析) 25.2 tcp四次挥手及tcp连接状态 25.3 实战:在局域网中使用 awl伪装MAC地址进行多线程SYN攻击 ssh 客户端: ...
- AR路由器通过web及代码实现公网用户使用公网地址访问内网服务器,同时内网用户实现通过公网地址访问内外那个服务器
** AR 实现 公网用户使用公网地址访问内网服务器,同时内网用户实现通过公网地址访问内外那个服务器 ** 1.web实现 配置前提:设备已实现,基本的上网业务,需要映射服务器,实现内外网的访问. ( ...
- 内网多个DHCP Server无法获取到地址上网的解决办法
问题: 用户反映,经常有人自带路由器上网,通常内网会存在多个 dhcp服务器,内网用户自动获取ip地址,由于dhcp发的是广播包,时常会获取到其他路由器上的地址,造成无法上网. 解决方案: 1.路由器 ...
最新文章
- 半导体与智能汽车行业解决方案
- java反射field和method的顺序问题
- Reporting Services 安装的备份和还原操作
- vscode快捷键大全
- Vue——Windows 10下Vue项目启动步骤[vue-cli-service启动版本]
- 安装icephp 记
- jdbc增删改查有哪些步骤_用Mybatis如何实现对数据库的增删改查步骤
- CPU的高速缓存存储器知识整理
- 《推荐系统笔记(四)》svd的python计算实例
- CoreData的数据迁移
- url中向后台传递中文乱码解决方法
- C盘总是满了,不想重装系统,不想扩充,C盘瘦身彻底解决
- 蒙特卡罗方法与马尔科夫链
- 毕业论文概念界定要怎么写?
- TrueNAS静态IP设置
- 秘笈大公开 | 魏泓手把手教你利用无菌动物,提高国自然中标率!
- mac执行java死卡_MacOS应用程序有时卡死,怎么办?2种方法轻松搞定
- Codeforces Round #703 (Div. 2)C1C2	 Guessing the Greatest(二分)
- 基于STM32 HAL库的遥控小车
- ThinkPHP校园后勤在线报修系统