最近工作的需要,详细地了解了一下CIDR的概念,这篇blog就想简单地解释一下CIDR和与其相关的VAT,以及IP地址的概念。

IP 地址

如果你本身就对IP地址的概念驾轻就熟那么这段内容可以直接跳过。首先,IP (Internet Protocol) 地址的概念衍生于互联网。在一个互联网中,一个个相互交流的计算器个体需要有一个名称或者地址来区别彼此,IP地址就是作为在这个网络中的一个个计算器的身份识别码而存在。

1981年互联网工程任务组 (英文:Internet Engineering Task Force,缩写:IETF),我们可以称之为“网络元老院”,他们公布了网络协议版本v4 (英语:Internet Protocol version 4,缩写:IPv4),从此IP地址的第四版本被固定为一个长为32位的二进制地址,如下图:

在计算机领域中我们统一把一位二进制称之为1位元 (bit),8个bits组成一个字节(byte),字节的概念很重要,因为大家常见到的IP地址是由4个字节组成,每一个字节在十进制中代表了0到255这256个数。因此,整个世界所共享的IP地址只有256的4次方个,也就是4294967296,大约42亿个地址。然而,目前全球人口总数已经达到76亿人,如果人手一个手机,这个IP地址就完全不够用了。因此,为了解决地址不够用的问题,网络元老院和聪明的计算机科学家们提出了几个解决方案:

  1. IPv6 即网络协议版本v6,这个是全新的IP地址结构,但不在这篇文章的讨论之中。
  2. NAT (英语:Network Address Translation,中文:网络地址转换)。
  3. CIDR(英语:Classless Inter-Domain Routing, 中文:无类别域间路由)。

NAT

互联网Internet是一个巨大的网状结构,每一个网络交叉的节点拥有一个独一无二的IP地址,如果我们扩展一个节点组成一个新的小网络,并且,把这个IP地址当作是这个小网络的对外标识,那么在这个小网络里我们便可以重复使用一部分IP地址,并且把这个小网络称为私人网络,如下图:

就如图里所看到的一样,中间的路由器就是互联网的IP地址的搭载者,右边末端的两个电脑可以作为私人网络中的计算机,他们各自都只拥有一个属于这个私人网络的IP地址,这也就是说一个互联网的IP地址,可以链接很多个独立的私人IP地址,这样就不需要每一个个人计算机都使用一个独一无二的IP地址了,这就节省了IP地址的使用率。

CIDR

互联网的IP地址有限,但在互联网蓬勃发展的初期,很多巨头互联网企业想要去购买固定的IP地址区间,这样他们就可以更好的利用这些互联网地址。谈到购买,就要谈到如何分割,CIDR是一种高效的分割方式,它既可以利用在互联网的IP地址分割上,也可以应用在私人网络的IP地址分割上。想要了解CIDR,还是要先从IP地址的结构说起,如下图所示:

从图中的例子上看,这个IP地址的前三个字节代表了Network ID,后一个字节代表了Host ID。Network ID 是网络中某一个区域网络的编号,比如说我们创建了一个新的公司叫Leon Wu Crop. 我们公司有200台电脑,我想他们每台电脑都需要一个新鲜的IP地址,那么我只需要买下任何一个独立的,由三个字节为先,组成的Network ID,那么这个Network ID下的256个独立的IP地址我就可以自由分配给我公司里面的200台电脑了。但如果我的公司只有3台需要独立IP地址的电脑,那我买一个三个字节的Network ID 就浪费了253个独立的IP地址了不是吗?为了解决资源浪费的问题,CIDR出现了,如下图:

CIDR除了老的IP地址结构,在右边又添加了新的一段数字我们统称为 “子网掩码” (subnet mask),子网掩码规定了Network ID的定义范围,如图中所示,在这一组32位的IP地址中,取前24位作为Network ID,后8位作Host ID,以此类推,如果我们把子网掩码写为2,那么IP地址的前30位就是Network ID,后2位为Host ID。由此一来,如果我们公司只有三台计算机需要独立的IP地址,那么我们可以去购买任意一个 XXX.XXX.XXX.XXX/3 标准的IP地址段落,这也就极大地减少了购买超于所需的IP地址数量的情况。