你是人间的四月天

参考文章:
1. http://www.jianshu.com/p/62028875d53e
2. http://www.cnblogs.com/gaojing/archive/2009/10/09/1579455.html

NAT : Network Address Translation 地址转换协议

  • 使用场景: 使内网电脑可以访问外网资源
  • 优点:
    • 用于实现私有网络访问公共网络的功能。
    • 使用少量的公网IP地址代表较多的私网IP地址,有助于减缓可用IP地址空间的枯竭。
    • 避免来自网络外部的攻击,隐藏并保护网络内部的计算机
  • NAT简介:
    • 借助于NAT,私有(保留)地址的”内部”网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
    • NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成(对于ICMP,NAT也自动完成地址转换)。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据都分别嵌入IP地址的应用程序就不能正常工作。

工作原理

  • 当一台内网计算机用户连接Internet资源时,该用户的 TCP/IP 协议产生一个 IP 数据包,该数据包包含以下值,这些值位于 IP 和 TCP 或 UDP 标头中:(粗体内容表示受 NAT 影响的项目):
    • 目标 IP 地址:Internet 资源 IP 地址
    • 源 IP 地址:私有 IP 地址
    • 目标端口:Internet 资源 TCP 或 UDP 端口
    • 源端口:源应用程序 TCP 或 UDP 端口
  • 请求源主机或者其它路由器将此 IP 数据包发送给 NAT, 然后由 NAT 将向外发送的数据包的地址解析如下:
    • 目标IP地址:Internet 资源 IP 地址
    • 源IP 地址:ISP 分配的公用地址
    • 目标端口:Internet 资源 TCP 或 UDP 端口
    • 源端口:重新映射的源应用程序TCP 或 UDP 端口
  • NAT 将重新映射的 IP 数据包发送到 Internet 。响应计算机将向 NAT 返回一个响应。当 NAT 接收到此响应时,该数据包将包含以下地址信息:
    • 目标IP 地址:ISP 分配的公用地址
    • 源IP地址:Internet 资源 IP 地址
    • 目标端口:重新映射的源应用程序 TCP 或 UDP 端口
    • 源端口:Internet 资源的 TCP 或者 UDP 端口
  • 当 NAT 完成映射和解析地址后,将向 Internet 客户端发送数据包,此数据包包含以下地址信息:
    • 目标 IP 地址:私有 IP 地址
    • 源 IP 地址:Internet 资源 IP 地址
    • 目标端口:源应用程序TCP 或者 UDP 端口
    • 源端口:Internet 资源 TCP 或 UDP 端口

工作模式(三种,优缺点)

  • NAT使用基于session的转换规则
    • TCP/UDP :私有Host的Ipv4 + port <======> NAT公网的Ipv4 + port
    • ICMP :私有Host的Ipv4 + sessionID <======> NAT公网的Ipv4 + sessionID
  • 静态NAT

    • 静态NAT就是一对一映射,内部有多少私有地址需要和外部通信,就要配置多少外网IP地址与其对应,并不节省外网IP,所以一般不用

    • 静态NAT

  • 动态NAT

    • 动态NAT是在路由器上配置一个外网IP地址池,当内部有计算机需要和外部通信时,就从地址池里动态的取出一个外网IP,并将他们的对应关系绑定到NAT表中,通信结束后,这个外网IP才被释放,可供其他内部IP地址转换使用,这个DHCP租约IP有相似之处。

    • 动态NAT

  • PAT(port address Translation,端口地址转换,也叫端口地址复用)

    • 这是最常用的NAT技术,也是IPv4能够维持到今天的最重要的原因之一,它提供了一种多对一的方式,对多个内网IP地址,边界路由可以给他们分配一个外网IP,利用这个外网IP的不同端口和外部进行通信。

    • PAT