1台服务器恳求另外一台时,用公网IP和内网IP浏览

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

服务器B的IP = 10.1.1.3/24,对内出示的服务 10.1.1.3:80

对Internet出示的服务 1.1.1.1:80

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

内网IP浏览

服务器A浏览服务器B内网IP=10.1.1.3:80,立即通讯,总流量不历经NAT机器设备,确实沒有甚么值得能够写的。

Internet客户浏览服务器B公网IP

服务器B出示的服务在Internet的展现方式是 1.1.1.1:80。

当Internet上的客户浏览1.1.1.1:80的总流量抵达NAT机器设备时,NAT机器设备必须提早将NAT静态数据(static)投射表提前准备好,应当相这个模样的:

Static Entry1.1.1.1:80 ------- 10.1.1.3:80

既然有了这个静态数据表项,那末NAT机器设备便可以将目地IP 从1.1.1.1改变为10.1.1.3,随后根据 Destination IP = 10.1.1.3来搜索路由器表,转发Destination IP = 10.1.1.3的IP报文格式,这个是小菜1碟,服务器B收到该IP报文格式。

随后B一切正常回应信息,当回应信息抵达NAT机器设备时,NAT再根据静态数据投射表将SourceIP从10.1.1.3改变为1.1.1.1,并对改变完的IP报文格式查寻路由器表,将IP报文格式转发到Internet上去。这是规范步骤,坚信大多数数读者能够了解。

写了这这长长的1段,是以便更好地问与答接下来的难题。

服务器A浏览服务器B公网IP

Source IP =10.1.1.2

Destination IP=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,因而就动态性转化成了1个NAT表项:

Dynamic Entry1.1.1.1:56012 --------- 10.1.1.2:56012

3.NAT机器设备将IP报文格式的Source IP做了以上的改动,Source IP =1.1.1.1

Source IP =1.1.1.1 

Destination IP=1.1.1.1

4.NAT发现目地IP =1.1.1.1 居然和上文的静态数据表项相配对,绝不迟疑地将目地IP 做了更换,更换后的IP报文格式:

Source IP =1.1.1.1

Destination IP=10.1.1.3

5.查寻路由器表再次将IP报文格式转发给服务器B

6.返程的总流量解决方式和1⑷相近,也是历经两次NAT详细地址转换(源IP、目地IP),最后做到服务器A

Hairpin技术性

上文的两次NAT变换应用了Hairpin技术性。

1般状况下,从LAN插口收到的总流量,只会转发到WAN插口上去,而不可以再转发到LAN插口,这类限定是以便防止总流量的环路将会。

可是服务器A与服务器B都处在LAN插口上,A应用公网IP浏览服务器B,必定先将总流量根据LAN插口发给NAT机器设备,NAT机器设备做了两次NAT转变以后,必定要把总流量从LAN插口送回来,以便完成这类浏览,这里摆脱了上文的限定,称这类技术性为Hairpin,分叉技术性。

写完这个回答,留给读者1个难题,假如服务器B积极浏览Internet上的1台服务器2.2.2.2:443,NAT机器设备上仅有静态数据NAT表项:StaticEntry 1.1.1.1:80 ------- 10.1.1.3:80

NAT机器设备上沒有配备动态性NAT,请问服务器B能够浏览Internet吗?

服务器没法浏览Internet,静态数据投射表只用于服务器B处于被动出示服务。

服务器B可使用端口号80做为源端口号吗?

80端口号做为著名(well-known)端口号,用于处于被动回应端口号,实际操作系统软件会严禁运用程序流程应用80端口号做为源端口号,而是让运用程序流程应用49152⑹5535(private port)端口号范畴内的任意端口号。

而运用程序流程假如应用49152⑹5535端口号内的随意端口号做为源端口号,当然不容易配对到静态数据NAT表项,再加NAT机器设备沒有配备动态性NAT,因此服务器B浏览Internet的报文格式将以SourceIP = 10.1.1.3被转发到Internet上去,但因为10.1.1.3是独享IP,即便抵达Internet上的服务器,最后也没法回到。