NAT (Network Address Translation)即网络地址转换,最初的目的是在路由器上,修改IP报文头中的源地址(source address)或目标地址(destination address),以转发报文。通过NAT,实现了私有子网中与公共网络的连接,也间接延续了IPv4的生命,推迟了IPv6的到来。
1. NAT可以分为如下几类
1) Source NAT (SNAT),也被称为Port Address Translation (PAT)
原始请求的源地址与目标地址是不可直达的,进行SNAT转换的路由器的地址与目标地址是可达的。
SNAT改变IP报文头中的源地址为当前路由器的地址,目标地址不变。而应答的目标地址就是被转换以后的源地址,也非原始请求的源地址。
对内部私有IP的服务器,SNAT使之能够访问外部公共IP的服务器(Internet)。
2) Destination NAT (DNAT)
原始请求的源地址与目标地址是不可直达的,进行DNAT转换的路由器的地址与目标地址是可达的。
DNAT改变IP报文头中的目标地址为当前路由器的地址,源地址不变。而应答的源地址就是被转换以后的目标地址,也非原始请求的目标地址。
对内部私有IP的服务器,DNAT使之能够被外部公共IP的服务器(Internet)访问。
3) one-to-one NAT
只是跨不同类型网络的桥接转换。
与之相对,SNAT和DNAT都被称为one-to-many NAT。
2. Linux通过iptables/ip6tables扩展模块实现NAT
ipta