端口回流与dns-map与域内NAT
回流的概念:
端口回流&DNS-map&域内NAT
组网分析:
某企业内部一台主机建了个WEB服务站点端口80,然后在网关Router上映射80端口到Web Server的80端口,这样外网上上就能以公网地址202.38.1.1:80的地址访问到Web Server的站点了。
但是Host A通过公网地址却无法访问服务器,如果Router支持端口回流的话那么Host A就可以通过公网地址访问内部服务器。
原因分析:
如上图可以很明显的看出报文①发送到Router,Router根据NAT映射将目标地址改为10.110.10.1发送报文②。但是源地址不变仍为10.110.10.3。而后Web Server接收报文②后,发回③报文给Host A。注意此报文发送没有经过Router而是直接走二层。所以就导致了一个问题,Host A的请求目标为202.38.1.1,但是回应的源地址为10.110.10.1。所以导致会话不能建立。(但是ICMP是可以的,因为ICMP是基于进程号—sequence number)
解决方法:
1) 将Host A和Web Server的地址设置为不同网段,这一步可以通过划分vlan
解决,即服务器和主机在不同的网段。或者可以在路由器的内网接口下配置sub地址,也能解决此问题。只要数据流经过Router就可以正常访问。
2) 路由器支持端口回流,其原理如下:
当路由器收到Host A发送的向202.38.1.1发送的TCP请求报文时,路由器将目标地址改为NAT的映射后的私网地址(10.110.10.1),端口为80。同时也把请求报文的源地址改为内部网关的地址即10.110.10.10,端口1025。之后Web服务器收到此请求报文。并对其回应。因为报文的源地址为网关地址。所以此报文会再经过网关。从而再次转换。达到Host A可以正常访问服务器的目的。其实这一步也可以理解为基于源地址转换的NAT。即本文后面要说到的域内NAT。
…… …… 余下全文