题目
IPV4 地址不够如何解决(CIDR、NAT)
答案
@[toc] --- 以下这些方案仅仅是解决燃煤之急,相对缓解了 IPV4 地址不够用的问题,但是 IPV4 地址的数量本身有限的事实无法改变,最根本的解决办法还是使用 128 比特的 IPV6 地址 ### 无分类 IP 地址(CIDR) 无分类 IP 地址(CIDR)就是**放弃 IP 地址的分类,采用任意长度分割 IP 地址的网络号和主机号** CIDR 的表现形式为 `a.b.c.d/x`,其中 `/x` 表示前 x 位属于网络号(网络前缀),网络号的长度可以根据需要变化。例如 `128.14.35.7/20` 表示该 IP 地址的前 20 位为网络号,剩余 12 位是主机号。 **CIDR 的核心就是把网络号(这里用前缀可能更好理解)都相同的连续 IP 地址组成一个 CIDR 地址块**。这样,我们就可以把原来的多个 IP 地址合并成同一个网络,更有效的利用 IPV4 地址。举个例子,应用 CIDR 技术将 `203.183.224.1` 到 `203.183.225.254` 的地址合并为同一个网络(它们本来是 2 个 C 类地址): ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210115130435.png) 上例中,合并该区间的地址后,主机数为 $2^9 - 2 = 510$ 个,也就是说从 `203.183.224.1` 到 `203.183.225.254` 的这个网络内允许接入 510 台主机: ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210115144042.png) ### 网络地址转换(NAT) > IP 地址并不是根据主机台数来配置的,而是根据网卡(网络适配器)来的。像服务器、路由器等设备都是有 2 个以上的网卡,也就是它们会有 2 个以上的 IP 地址。32 位的 IPV4 地址最多给大约 43 亿台接入互联网的设备配置其独一无二的 IP 地址。 > > 现在家家户户连入互联网远不止一台电脑,再加上若干部手机、若干部平板......,如果这些设备都被分配了全球独一无二的 IP 地址,43 亿的 IP 地址容量显然是不够的,尽管我们采用了无分类 IP 地址(CIDR)的方法来减缓 IPV4 地址的消耗速度,但是互联网的用户增速是非常惊人的,所以 IPv4 地址依然有被耗尽的危险。 > > 于是就诞生了一种可以更换 IP 地址的技术: `NAT`,使得可连接的计算机数能够远远超过 43 亿台。 NAT(Network Address Translator 网络地址转换):用于**在本地网络中使用私有地址,在连接互联网时使转而使用全局 IP 地址**的技术。 通俗来说就是很多个私有 IP(内网 IP)公用一个全局 IP(公网 IP),仅通过内网 IP 是无法上网的 NAT 的工作机制如下图所示: ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210114194127.png) 以 10.0.0.10 主机与 163.221.120.9 主机的通信为例。利用 NAT,途中的 **NAT 路由器**将发送源 IP 地址 10.0.0.10 转化为全局唯一的 IP 地址 202.244.174.37 后,再发送数据。反过来,当数据包从地址 163.221.120.9 发送过来时,目标 IP 地址 202.244.174.37 先被转换成私有 IP 地址 10.0.0.10 后,再被转发。 很显然,实现网络地址转换的关键就在于 NAT 路由器。**在 NAT 路由器的内部,有一张自动生成的用来转换地址的表**,当 10.0.0.10 主机向 163.221.120.9 主机发送第一个数据包的时候生成这张表,并按照表中的映射关系进行处理。