Skip to content

第3章 IP地址规划技术

3.1 IP地址以及划分地址技术

网络地址转换技术(Network Address Translation,NAT)

NAT(网络地址转换)的基本思想是:为每个单位分配少量公网IP,同时为内部主机分配不能直接在公网上使用的私有IP地址。当内部主机需要访问外部网络时,NAT设备会将内部的私有IP地址转换为公网IP地址。

NAT工作流程

这张图展示了NAT的核心功能:让内部私有IP地址(如10.0.1.2)能通过一个公网IP地址(如213.0.1.1)访问互联网。

  1. 从内部到外部(数据流 ① 到 ②):

    • 内部主机 10.0.1.2 发送请求到外部服务器 153.3.1.1

    • 数据包到达 NAT设备,NAT查询或创建一条 转换表记录

    • NAT将数据包的 源地址 10.0.1.2 替换为自己的 公网地址 213.0.1.1,然后将数据包发到互联网。

  2. 从外部到内部(数据流 ③ 到 ④):

    • 外部服务器将响应发回给 213.0.1.1

    • 数据包到达 NAT设备,NAT查询 转换表

    • NAT根据表中的记录,将数据包的 目的地址 213.0.1.1 替换回 内部地址 10.0.1.2,然后将数据包发回给内部主机。

3.2 IP地址分类

  • A类: 1.0.0.0 ~ 127.255.255.255

  • B类: 128.0.0.0 ~ 191.255.255.255

  • C类: 192.0.0.0 ~ 223.255.255.255

3.3 子网划分

子网划分的基本思想是:通过划分子网可以将一个网络划分成若干个小网络以满足内部不同部门的需要,而从外部来看仍然像一个网络一样。

子网掩码是一种32位的二进制数字,它将IP地址分为两部分:网络ID主机ID。网络ID用于标识设备所在的网络,而主机ID则用于标识该网络中的特定设备。

子网掩码的规则是:

  • 连续的“1”代表网络ID。
  • 连续的“0”代表主机ID。
  • “1”和“0”之间不能有间断。

IP地址192.168.1.51/27的子网掩码

斜线后面的数字/27代表IP地址的网络ID有27位。

这意味着:

  • 前3个8位(24位)全部是“1”。
  • 第四个8位中的前3位是“1”。

所以二进制表示为:

  • 11111111 11111111 11111111 11100000

现在我们将它转换成十进制:255.255.255.224,就是我所要求的子网掩码

3.4 无类域间路由技术

核心思想: 废除A、B、C类地址的默认界限,使用一个可变长度的 前缀 来表示网络位,通常写在IP地址后面,用斜杠/隔开,比如 192.168.1.0/24。斜杠后面的数字就是 网络位 的总位数。

地址聚合与可用地址数

  1. 确定共同部分: 找出所有待聚合IP地址中,相同的前三段(八位组)。

  2. 二进制转换: 将最后一个不同的八位组及其CIDR前缀转换为二进制。

  3. 找最长前缀: 从左到右比较这些二进制数,找到它们最长的一串共同的“1”和“0”。

  4. 计算聚合地址:

    • 聚合后的IP地址:由共同的前三段和最后一个八位组的共同前缀组成,后续位全部补“0”。

    • 聚合后的前缀(CIDR):由前三段的24位加上共同前缀的位数。

  5. 转换回十进制: 将聚合后的二进制地址转换回点分十进制格式。


  1. 二进制分析: 将所有地址块的最后一段或需要比较的部分转换为二进制。
  2. 寻找汇聚点: 找出那些可以完美地聚合在一起的地址块(通常是两个,因为两个可以合并成一个更大的、CIDR前缀减1的地址块)。

    只有当一组IP地址块是 连续的、且大小相同 的子网时,它们才能完美聚合。两个子网完美聚合后,会形成一个 两倍大小 的新子网,其CIDR前缀会减1。

  3. 分别计算: 计算每个聚合后的地址块和每个无法聚合的独立地址块的可用地址数。可用地址数公式: 2^(32 - 新前缀位数) - 2【IPv6不用减2】
  4. 汇总相加: 将所有计算出的可用地址数相加,得出最终答案。

3.5 IPv6 地址

  • 用二进制格式表示128位的一个IPv6地址
  • 按每16位为一个位段,划分为8个位段
  • 每个位段转化为16进制(最多4位),并用冒号隔开
  • 可压缩前导的零
  • 双冒号压缩,省略连续位段的0,但是在一个地址中只能使用一次

    确定“::”之间到底被压缩了多少位0,可以用8减掉地址中剩余的位段数再将结果,乘以16即可

  • IPv6不支持子网掩码,只支持前缀长度表示法。前缀是IPv6地址的一部分,用作IPv6路由或子网标识。前缀的表示方法与IPv4中的CIDR表示方法基本类似。IPv6前缀可以用“地址/前缀长度”来表示。例如,FABC::/27、0:8/48、3CFA:2B:0:91:43::/64。

  • Pv6地址主要分为:单播地址、组播地址和多播地址基本三类。