一台服务器请求另一台时,用公网IP和内网IP访问时的区别?

来源:Leah 时间:2022-08-04 09:17:01阅读:0

假定服务器A的IP=10.1.1.2/24

服务器B的IP=10.1.1.3/24,内部服务10.1.1.3:80

对互联网提供的服务1.1.1.1:80

NAT设备LAN=10.1.1.1/24,WAN=1.1.1.1,NAT设备兼任局域网网关

一台服务器请求另一台时,用公网IP和内网IP访问时的区别?

内网IP访问

服务器A访问服务器B内网IP=10.1.1.3:80,直接通信,流量不通过NAT设备,真的没什么值得写的。

互联网用户访问服务器B公网IP

服务器B提供的服务在互联网呈现形式为1.1.1.1:80。

当互联网用户访问1.1.1.1:80流量到达NAT设备时,NAT设备需要提前完成NAT静态(static)映射表准备好了,应该是这样的:

StaticEntry1.1.1.1:80-10.1.1.3:80

既然有这个静态表项,那么NAT设备可以达到目的IP从1.1.1.1改写为10.1.1.3,然后依据DestinationIP=10.1.1.查找路由表,转发DestinationIP=10.1.1.3的IP报文,这是小菜一碟,服务器B收到该IP报文。

然后B当回复到达时,正常回复消息NAT设备时,NAT然后根据静态映射表SourceIP从10.1.1.3改写为1.1.1.1.改写完成IP查询查询路由表,将IP报文转发到互联网上去。这是一个标准的过程,相信大多数大家都能理解。

为了更好地回答下一个问题,我写了这长段。

服务器A访问服务器B公网IP

SourceIP=10.1.1.2

DestinationIP=1.1.1.1

1.A要访问1.1.1.1:80,查询路由表,发现要发给网关10.1.1.1

2.网关10.1.1.1发现A发给自己的IP报文需要NAT,源IP=10.1.1.2需要做动态NAT映射,A使用随机端口56012,动态生成一个NAT表项:

DynamicEntry1.1.1.1:56012-10.1.1.2:56012

3.NAT设备将IP报文的SourceIP做了以上修改,SourceIP=1.1.1.1

SourceIP=1.1.1.1

DestinationIP=1.1.1.1

4.NAT发现目的IP=1.1.1.实际上与上述静态表项相匹配,毫不犹豫地将目的IP替换,替换后IP报文:

SourceIP=1.1.1.1

DestinationIP=10.1.1.3

5.继续查询路由表IP报文转发给服务器B

6.返程流量处理方法与1-4相似,也经过两次NAT地址变更(源IP、目的IP),最终到达服务器A

Hairpin技术

上文的两次NAT转换使用了Hairpin技术。

一般情况下,从LAN接口收到的流量只会转发到WAN而不是转发到界面上LAN界面,这种限制是为了避免流量环路的可能性。

但是服务器A与服务器B都处于LAN接口上,A使用公网IP访问服务器B,必然先将流量通过LAN接口发给NAT设备,NAT做了两次设备NAT变化后,流量必须从LAN为了实现这种访问,这里打破了上述限制,称这种技术为Hairpin,分叉技术。

如果服务器完成了这个答案,给大家留下一个问题B主动访问互联网上一台服务器2.2.2.2:443,NAT只有静态设备NAT表项:StaticEntry1.1.1.1:80-10.1.1.3:80

NAT设备上没有动态配置NAT,请问服务器B可以访问互联网吗?

服务器无法访问互联网,服务器只使用静态映射表B被动提供服务。

服务器B端口80可以用作源端口吗?

著名的80端口(well-known)对于被动响应端口,操作系统禁止应用程序使用80端口作为源端口,而应用程序使用49152-65535(privateport)随机端口在端口范围内。

如果应用程序使用49152-65535端口中的任何端口作为源端口,则不会与静态匹配NAT表项,加上NAT设备没有动态配置NAT,所以服务器B访问互联网的报文将以SourceIP=10.1.1.3被转发到互联网但是因为10.1.1.3是私有IP,即使到达互联网最后,服务器无法返回。

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/fwqjs/12321.html

TAG标签:NAT

相关推荐

返回顶部