目录
1.NAT 技术
之前我们讨论了, IPv4 协议中, IP 地址数量不充足的问题
NAT 技术当前解决 IP 地址不够用的主要手段, 是路由器的一个重要功能;
- NAT 能够将私有 IP 对外通信时转为全局 IP. 也就是就是一种将私有 IP 和全局IP 相互转化的技术方法:
- 很多学校, 家庭, 公司内部采用每个终端设置私有 IP, 而在路由器或必要的服务器上设置全局 IP;
- 全局 IP 要求唯一, 但是私有 IP 不需要; 在不同的局域网中出现相同的私有 IP是完全不影响的;
NAT IP转换过程
- 子网内的主机需要和外网进行通信时, 路由器将 IP 首部中的 IP 地址进行替换(替换成 WAN 口 IP), 这样逐级替换, 最终数据包中的 IP 地址成为一个公网 IP. 这种技术称为 NAT(Network Address Translation, 网络地址转换).
- NAT技术例子:每台主机都有自己网络层,每台主机也知道自己的子网IP,(以上图为例)比如主机(src)IP:192.168.1.201 要向IP(dst):122.77.241.3的主机发送消息。该主机会通过CIDR得到网络号:122.77.241.0,发现不是自己网段的,这时就会交给家用路由器处理,家用路由器也有自己WAN口IP,路由器直连的网络号为:10.1.1.0,这是运营商构建的子网,家用路由器会将srcIP,替换成为自己的WAN口IP(NAT),家用路由器交给运营商路由器,运营商发现dstIP不属于自己构建的子网,只能将该报文交给出入口路由器接入公网,此时路由器会进一步将srcIP替换成自己的WAN口IP(NAT),直接通过公网交给目标服务器。这样目标服务器有了出入口路由器的公网IP,就能顺利的应答了。
• NAT 路由器将源地址从 10.0.0.10 替换成全局的 IP 202.244.174.37;
• NAT 路由器收到外部的数据时, 又会把目标 IP 从 202.244.174.37 替换回10.0.0.10;
• 在 NAT 路由器内部, 有一张自动生成的, 用于地址转换的表;
• 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;
2. NAPT(NAT转化表)
那么问题来了, 如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返
回的数据中, 目的 IP 都是相同的. 那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机?
这时候 NAPT 来解决这个问题了. 使用 IP+port 来建立这个关联关系左侧是发送主机的源IP:端口和目标主机的IP:端口,右侧则是转换过后的。左侧在内网中唯一的,右侧则是在公网中唯一,那么左侧和右侧是互为键值的,服务器做应答的时候就可以反向查表,发送给内网中的主机。
而且同一个网段的两个主机访问同一个服务器时,NAT不仅会转换IP还会变换端口,以确保NAPT映射的唯一性