IP子网的划分

概述

为了便于寻址以及层次化构造网络,每个 IP 地址可被看作是分为两部分,即 网络号 和 主机号 。同一个区域的所有主机有相同的
网络号(即 IP 地址的前半部分相同),区域内的每个主机(包括路由器)都有一个主机号与其对应。

IP地址的分类

IP 地址被分为 A、B、C、D、E 五类:

  1. A 类给大型网络或政府机构等
  2. B 类分配给中型网络、跨国企业等
  3. C 类分配给小型网络
  4. D 类用于多播
  5. E 类用于实验

各类可容纳的地址数目不同,其中我们最常见的为 A、B、C 这三类。

IP 地址用 32 位二进制数字表示的时候,A、B、C 类 IP 的网络号长度分别为 8 位、16 位、24 位:

IP地址分类

A 类地址:

  • A 类地址网络号范围:1.0.0.0—127.0.0.0
  • A 类 IP 地址范围:1.0.0.0—127.255.255.255
  • A 类 IP 的私有地址范围:10.0.0.0—10.255.255.255 (所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)
  • 127.X.X.X 是保留地址,用做循环测试用的
  • 因为主机号有 24 位,所以一个 A 类网络号可以容纳 2^24-2=16777214 个主机号

B 类地址:

  • B 类地址网络号范围:128.0.0.0—191.255.0.0
  • B 类 IP 地址范围:128.0.0.0—191.255.255.255
  • B 类 IP 的私有地址范围:172.16.0.0—172.31.255.255
  • 169.254.X.X 是保留地址;191.255.255.255 是广播地址
  • 因为主机号有 16 位,所以一个 B 类网络号可以容纳 2^16-2=65534 个主机号

C 类地址:

  • C 类地址网络号范围:192.0.0.0—223.255.255.0
  • C 类 IP 地址范围:192.0.0.0—223.255.255.255
  • C 类 IP 的私有地址范围:192.168.0.0—192.168.255.255
  • 因为主机号有 8 位,所以一个 C 类网络号可以容纳 2^8-2=254 个主机号

子网划分

IP 地址如果只使用 ABCDE 类来划分,会造成大量的浪费:一个有 500 台主机的网络,无法使用 C 类地址。
但如果使用一个 B 类地址,6 万多个主机地址只有 500 个被使用,造成 IP 地址的大量浪费.

因此,可以在 ABC 类网络的基础上,进一步划分子网:占用主机号的前几个位,用于表示子网号.

这样 IP 地址就可看作 IP = 网络号 + 子网号 + 主机号.

子网号的位数没有硬性规定,于是我们用 子网掩码 来确定一个 IP 地址中哪几位是主机号,具体使用方法如图:

子网划分

子网掩码中的 1 标识了 IP 地址中相应的网络号和子网号,0 标识了主机号。将 IP 地址和子网掩码进行 逻辑与运算 ,结果就能区分网络号和子网号.

在Linux系统上可以使用 ifconfig 命令来查看本机 ip 和 子网掩码.

当你用 ifconfig 查看 IP 地址时,有时你会发现自己的 IP 地址是这样的———192.168.X.X 或 172.16.X.X。
这是 C 类网和 B 类网的私有地址,就是俗称的内网 IP。这是因为你的路由器采用了 NAT 技术.

NAT(Network Address Translation,网络地址转换)是 1994 年提出的。当在专用网内部的一些主机本来已经分配到了内网 IP 地址,
但现在又想和因特网上的主机通信时,NAT 技术将其内网 IP 地址转换成全球 IP 地址,然后与因特网连接,也就是说,内网的数台主机
使用了同一个全球 IP 地址在上网.

NAT 技术实现了宽带共享,而且有助于缓解 IP 地址空间枯竭的问题。