内网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三次握手成功。

时间: 2024-10-05 23:21:52

内网PC通过NAT server公网地址访问内部服务器时TCP三次握手不成功的相关文章

局域网如何使用公网地址访问内部服务

局域网如何使用公网地址访问内部服务,布布扣,bubuko.com

解决为什么内网不能用公网地址访问内网服务器

NAT地址池和服务器地址要与出口IP不同网段,NAT地址池可以和服务器地址在同一网段,也可在不同网段. 对于下文中推论的回答:我认为不会成环,ping NAT地址池的没用到的地址,得不到回应,就没有回去的数据包,怎么会成环呢..... 以下参考下面这个文章,附上本文留存,原文引用链接为: http://www.2cto.com/net/201202/119693.html NAT网络回流现象解释,内网使用服务器的外网IP登陆 hi大家好,今天我们来讨论一个很多人都找不到答案得问题:究竟为什么内网

H3C防火墙——回环流量问题(内网终端通过外网IP访问内部服务器)

拓扑如下: 环境描述: 内网两个网段通过防火墙的NAT功能上网,内部WEB服务器:10.1.20.200 映射到公网80端口,配置信息如下: acl number 2000  description NAT_SOURCE  rule 5 permit source 10.1.20.0 0.0.0.255  rule 10 permit source 192.168.10.0 0.0.0.255 interface GigabitEthernet0/0  port link-mode route

用PAT技术实现不同网段内网PC访问外网服务器

写在最前边: ????????? PAT技术翻译成中文叫做地址复用技术,是基于NAT技术的一种衍生版,目的就是实现局域网中的多个私网IP对一个或者多个公网IP的复用,从而节省公网IP.我在刚开始学习PAT配置的时候,受一些教学视频的先入为主,认为在路由器上面配置好PAT后就可以实现外网地址访问内网私有地址,实际上这种思想是错误的. ????????? ???????? 我们熟知的私网地址有三类,A,B,C类地址分别留了一个地址段作为私网地址段,而这些私网地址是不允许出现在公网上面的,所以说互联网

外网訪问内网应用实现之无公网IP、多port、固定port、UDP等应用的实现方法

有公网IP时,能够通过路由映射来实现外网訪问内网.然,当没有公网IP时,怎样实现外网訪问内网应用? 硬件路由方法因为无公网不可行,能够使用软件port映射的方法.如开放的NAT123全port映射. 全port映射的原理是利用在内网软件将域名绑定server,外网通过域名的訪问实现.此方式不须要改变訪问port,但须要在訪问时,同一时候启用点到点的訪问端. 实现过程: 1,内网使用开放的NAT123port映射. 2,加入映射.选择全port映射. 3,外网地址能够使用自己的域名,也能够直接使用

访问内网中的sql server数据库的简便方法

前言: 有时候我们要访问局域网内的 sql server服务器,比如测试环境数据库在公司内网,回到家或在客户现场要连接内网中的数据库 第一步:假如可以连接局域网的数据库 192.168.150.129 ,在远程还要能连接它 第二步:在内网穿山甲中添加一个TCP端口,本机IP填局域网的IP,端口 1433,映射到外网端口 随便填 然后就可以用 yxnat.softdev.top,7777 访问内网中的sql server数据库了 数据库连接配置文件中也可以这填上端口号就可以连接 YXNAT.Sof

内网通过域名及公网IP访问WWW服务器情况汇总

一.网络环境及问题描述 网络环境: 1.内部网络办公网划分VLAN10 网段:192.168.1.0/24 网关位于核心SWA 2.DMZ网络划分至VLAN20 网段:192.168.2.0/24  网关位于核心SWA 3.管理网段划分VLAN100 网段:192.168.100.0/24 网关位于核心SWA 4.出口路由器RT:公网地址为111.111.111.2 ,E1口地址为192.168.100.2 5.web服务器www.abc.com,IP:192.168.2.2 并在出口RT上配置

局域网内计算机访问FTP服务器时,提示“无法访问服务器名称或地址

局域网内计算机访问FTP服务器时,提示“无法访问服务器名称或地址”,一般由三个原因造成:一.防火墙未关闭解决方法如下:1.单击屏幕左下角的”开始“菜单2.在弹出菜单中单击”控制面板“3.点击”系统和安全“4.点击”Winsows 防火墙“5.单击左侧的”打开或关闭Windows防火墙“6.在”家庭或工作网络位置设置“和”公用网络位置设置“两项里选择关闭防火墙,单击”确定“即可.二.设置有误,FTP被动模式没有禁止.解决方法如下:1.打开浏览器,点击”工具“2.在下拉菜单中点击”Internet选

通过IP地址访问Jboss服务器上的应用

环境介绍 Web项目中,在没有域名服务器的条件下,我们只想通过IP访问后台应用服务器,而不需要在IP地址后面加上项目名称.也就是这个意思,我们刚刚开发的pj系统发布后,需要这个访问: http://192.168.24.48:8380/gxpt_web_pj_login 这样,不仅暴露项目名称,而且也太长,大家输入的时候太容易出错.之前都是在通过文件服务器,把地址分享给大家,今天测试正赶上文件服务器坏掉了.本文就介绍通过IP地址,访问后台应用服务器. 思路介绍 我们安装好Jboss之后,访问:h