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

内网PC通过NAT server公网地址访问内部服务器时TCP三次握手不成功,第1张

内网PC通过NATserver公网地址访问内部服务器时TCP三次握手不成功

公共网络地址无法浏览内部远程服务器TCP三次握手

一、情况

在图中所示的互联网中,PC和服务器属于不同的局域网,都是区域信任。为了更好的让上网客户浏览服务器,FW在192.168.51.M内部部署了NATServer:NATServerGlobalA.B.C.D,即将公网地址A.B.C.D投影到192.168.51.M,有了上述设备,上网客户就可以根据A.b.c.d,公网IP,浏览服务器。但是当内网PC浏览服务器时,就出现了一个问题:PC可以根据192.168.51.M的独占IP地址浏览服务器的Web服务,但是当PC尝试使用网络服务器投射的公网地址A.B.C.D浏览服务器时,发现自始至终都无法成功。

二。PC使用公网地址浏览服务器的全过程

要尝试使用PC的公共地址A.B.C.D.来浏览服务器,首先要做的就是创建一个TCP三次握手。报文格式的源ip地址为10.1.2.X,详细目的地址为A.B.C.D,数据包发送到网关IP防火墙。

因为防火墙部署了NAT服务器,把数据包的详细目的地址A.B.C.D翻译成192.168.51.M,然后查路由表,发现上网被网关GE0/0/1吓了一跳。

将防火墙地址转换后的数据包发送到服务器。

服务器收到包后要返回,因为服务器收到的这个包的源地址是10.1.2.x,所以当它引起一个往返包时,这个往返包的详细目的地址是10.1.2.x,10.1.2.x也是本地连接中的连接点,所以服务器马上把这个源作为192.168.51.M

当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详细地址池,然后在信任网络虚拟化中部署源地址转换:

[FW]NATaddress-group110.199.254.x
[FW]NAT-policyzonetrust
[FW-NAT-policy-zone-trust-10]策略源any
[FW-NAT-policy-zone-trust-10]策略目标192.168.51.m0
[FW-NAT-trust

五.数据包交互的全过程

使用PC的公网地址A.B.C.D.浏览服务器,首先要做的就是创建TCP三次握手。报文格式的源ip地址为10.1.2.x,详细目的地址为A.B.C.D,数据包发送到网关IP防火墙。

因为防火墙部署了nat服务器,先把数据包的详细目的地址A.B.C.D翻译成192.168.51.M,然后发现源地址翻译也部署了,这样源地址为10.199.254.x,详细目的地址为192.168.51.M的数据包就会被翻译成10..

将防火墙地址转换后的数据包发送到服务器:

网络收到数据包后,要发送一个往返报文格式,源地址为192.168.51.M,详细目的地址为10.199.254.x这个数据包被发送到服务器的网关ip192.168.5.1.254,最终到达防火墙。

收到此数据包后,防火墙将数据包的源地址从192.168.51.M更改为A.B.C.D,并将详细的目的地址从10.199.254.x更改为10.1.2.x,因为本地区域已经有NAT的投影内容。

将防火墙数据包发送到PC。

PC收到这个数据包后发现是自己想要的A.B.C.D回复包,于是TCP三次握手成功。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/778195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-03
下一篇2022-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存