iptables之五iptables之nat (7)

    其实我们也可以仅做端口转换,而不转换目标地址,各位还需要注意的是,但客户端的请求经过路由层层发送到达FIP时,FIP这个主机假如说就是本机来接收的,那目标地址就不用变了,但如果本地主机不是在80端口上提供服务而是在8080端口提供服务,但你请求的就是80怎么办呢?此处只需要转换端口即可,怎么转呢?此前曾经讲过一个TAEGETREDIRECT即端口重定向,就是实现这个功能的,目标地址可以不用变你请求的是80但本机并没有在80上提供任何服务,于是给你转换成8080。只不过在这种场景中,通常不是由外而内而是由内而外的去实现。由内而外指的是通常当内网中的主机访问互联网时,内网主机访问Web服务,我们经过代理而不是用NAT。假如说主机访问的通常都是80,那通过代理服务器悄悄的改为代理服务器监听的端口就能实现了。

 

代理

    那什么是代理,什么是转换呢?

    以离婚官司为例,如果是NAT,离婚我们要去法院办理,法院假如说在20里之外的县城,那现在的问题是,如果你要到20里之外的县城去,我们怎么去呢?假如你自己没车怎么办?就有两种方式。第一种方式就是叫车,它将我们在到县城,但是打官司还是我们自己打的。但如果本人不想出庭,找一个代理律师,让那个人代理出庭,那个人负责所以事情,不光是走到县城。

    由于NAT非常底层,所以不管你的目的是什么,它都可以将你载过去,你自己负责任何一个任务,不管是打离婚官司还是逛庙会还是每一块画布。但是代理通常是帮你去实现某一种特定应用的,对方只是代理离婚的而不代理逛庙会或者买画布。所以代理在应用层,因此应用层它一定是某一种特定应用,而我们平时所说的Web上网代理,它通常只能代理像httphttpsftp等这些基本的场景的应用层协议,再多,比如你想实现一些更为复杂的其它应用,代理服务器将无法帮你完成,像smtp,一般来讲,如果你不是smtp代理而是web代理这是做不了的。所以代理必须是某一种确定代理,你想代理打离婚那就叫离婚律师,想代理经济纠纷,那就要找经济纠纷律师

    如果我们用TCP/IP协议栈的七层模型描述一下,就以内网客户端访问互联网为例:

    TCP/IP协议栈一共有七层,而NAT服务器工作在网络层和传输层,所以说这个过程如下:

iptables之五iptables之nat

    如果基于NAT的方式工作,其工作流程大致为,Client请求很显然要构建一个TCP/IP报文,自上而下要流出这个协议栈,通过我们的物理设备送给Gateway,如果这是NAT的话,于是它要拆第一层,接着拆网络层,我们要把网络层当中的源地址改为Gateway自己的外网地址刚才叫FIP,于是拆完并封装起来之后它就又发出去了,到此就送给Server端了。这是这么一个位置。所以我们说Gateway只是处理到第三层,必要时最多到第四层而已,如果要做端口映射,意味着还需要改端口,一般NAT很少改端口。这就是所谓的NAT的工作模式。如下图:

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

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