iptables之五iptables之nat (5)

  所以这是一种我们在Windows Server通常称为叫服务器发布的技术,将内网中的一个私有地址的服务器能发布到外网中去或者称为叫映射到外网中去从而让外网主机跟内网主机可以访问了。那通过这种技术还有一个好处,如果用户此时请求的是FIP22号端口,看我们的需求决定它是否需要向SIP端发送。刚才我们说过我们只是把SIP所在的主机作为一个Web服务器向外转发的,也就意味着只有来自互联网上请求FIP80端口时,我们才转给内网中的SIP所在的这个主机,如果对方请求的22端口我们是否需要转发呢?假如说我们仅仅是把SIP的主机作为Web服务发布的话,22号端口不需要转发,也就意味着如果客户端请求的是FIP22号端口,那对方结果仍然是送给当前服务器及网关自身响应了。所以我们想公网发布时,很有可能只发布内网主机的单个应用或者是有限个应用。

  PNAT

  那说到这,我们是否可以这样做呢?比如我们请求80时转给SIP1,请求22时我们转给SIP2,都是请求FIP的只不过有的请求的是80转给第一个主机了有的请求的是22转给第二个主机了有的请求的是23转给第三个主机了。那我们可以把内网中的多个主机通过单个FIP分别都映射到外网中去但是它们提供的是不同的服务,所以一个IP可以对应于让n个主机提供n个不同的应用。所以DNAT能实现这种效果的,那现在我们要考虑两种特殊情形了,第一种特殊情形指的是如果说用户请求时我们告诉别人我们这里是Web服务,而互联网上Web服务默认都是请求80端口的,但是内网中的这个主机SIP1它没有监听80端口,而是监听在8080上,怎么办?客户端请求时一定请求的都是80,我们能不能将地址转换刚才转换的是目标地址,从FIP转换成为了SIP,但对方请求的目标端口是80呢?如果不动的话,扔回里边去后目标端口仍然是80,而我们内网也没有监听80怎么办呢?端口还可以做映射,你请求的是80,与此同时把目标地址改为SIP的同时,把目标端口从80改为8080。那问题是,当响应时,源地址是SIP源端口是8080,那对方请求的是FIP80,那于是我们在真正构建响应报文响应时,其实除了源地址需要转发之外,源端口也得转发,源端口还得从8080换回80。这种就叫做端口转换或端口映射。这是第一种特殊情形。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfgsz.html