在我们的防火墙场景(网络转换)中也有类似的效果,只不过我们是基于网络数据包的转发来实现的,这两种场景分别是:SNAT、DNAT和PANT

地址转换:这种环境和网络防火墙的基本区别在于,虽然内网和外网主机知道对方的路由器地址,但是彼此间是不能正常通信,他们是基于数据包的地址转换来实现通信的效果。

常用的两种场景:

1.内部客户端向外部服务端请求互联网服务                                                    2.内部客户服务端向外部用户提供的互联网服务                                                                               

 

ip 转地域 java api ip地址转移_内网

         

ip 转地域 java api ip地址转移_内网

 

ip 转地域 java api ip地址转移_ip 转地域 java api_03

SNAT:源地址转换,路由器接收到数据包后,经过路由决策后,才知道发往哪个网段,这个操作涉及到postrouting链的操作,我们称这个动作为SNAT。

DNAT:目标地址转换,路由器在接收到数据包后,经过路由决策钱,就知道发往哪个网段,这个操作涉及到了prerouting链的操作,我们称这个动作为DNAT。

PNAT:端口地址转换,一种特殊的DNAT,将多个内部地址服务器映射为同一个全局IP地址上的不同端口对应的服务,这种是以同一IP多端口的形式对外提供多种服务,我们称之为PNAT。

         场景一:内网的客户端,知道外网web服务器的地址,客户端通过公司路由器的外网ip地址来实现访问web服务器的效果。

路由器和两侧主机都可以进行正常通信,路由器为了实现内网主机(1.1.1.4)与外网web主机(10.10.10.2)主机的通信,它接收内网主机发送过来的数据包,然后将数据包的源IP地址(1.1.1.4)转换成路由器的外网IP地址(10.10.10.1)

然后就可以与外网web主机实现自由通信了。

        场景二:外网的客户端访问某公司的内网web服务器,虽然不知道内网web服务器的地址,但是知道某公司的所有web服务器都是以路由器的外网ip地址对外提供服务的。

客户端向外网路由器的外网IP地址(1.1.1.1)发起web请求,路由器接收到该信息后,转交给后端的真实的web主机处理,当web主机(10.10.10.2)响应报文的时候,由于不能和外网主机(1.1.1.4)进行通信,而且公司为了隐藏内网的主机(10.10.10.2)信息。

公司的路由器主机就将该数据包的源地址进行隐藏,以路由器的外网IP(1.1.1.1)发出去,这样客户端就可以收到响应报文了。

 

像个小学生一样努力学习