ip 地址存在有类和无类之分。有类的存在是为了便于进行分类管理,然而它存在着一个缺点,那就是利用率不高。无类具备 vlsm 技术,能够更好地提高利用率。
ip 包含网络标识符和主机标识符。网络标识符用于表示同一网络段类。主机标识符用于表示主机标识。
子网:
可用子网划分技术把有类地址块分割成多个小地址块,这些小地址块可供同一网域内的不同网段使用。
IP 子网划分意味着将有类 IP 地址的部分主机位与网络 ID 进行合并,这样就在 IP 地址类别里增添了另一个层级。这个被扩展后的网络 ID 被称作子网号或者 IP 子网。
IP 编址的概念
IP 协议的关键是编址。在 TCP/IP 协议栈中,存在一个通向底层(物理层和数据链路层)的网络接口层,IP 协议的介质无关性依靠的是该层。IP 协议能被人们广泛接受,其中介质无关性可能是重要原因之一。IP拥有一套编址方案,这套方案独立于用于互连网络设备的局域网(LAN)或广域网(WAN)介质。这表明它具有介质无关性的架构。所以,IP能够在由各种不同介质构成的网络基础设施上成功运行。IP 协议栈的这种灵活性以及其简单性,是促使该协议被广泛使用的主要原因。
IP 编址的原理在于,要为网络设备的每个网络接口(也就是网卡)分配地址,这采用的是基于链路的地址分配方法。而不是为整台设备分配单一地址,那是基于主机的地址分配方法。设备的各个接口是与名为子网络(或者子网)的网络链路相连接的,并且设有子网地址。接口的 IP 地址是从其直连链路的子网地址空间中进行分配的。基于链路的地址分配方法有一个优点,那就是路由器只要跟踪 IP 路由表中的 IP 子网,就可以汇总路由信息,并且不需要追踪到网络中的每一台主机。这种方法在像以太网这样的广播链路网络环境中会很高效,因为在这类网络环境中会同时连接多台设备。在以太网络中运行 IP 时,会借助地址解析协议(ARP),把直连主机的 IP 地址解析成相应的数据链路层地址。
如前所述,IPv4 地址的 32 位编址方案能够容纳大量的主机地址。然而,IP 编址方案是以链路为基础的,它要求网络链路与一组 IP 地址相联系,并且与链路直接相连的主机设有特定的 IP 地址。这组 IP 地址被称作地址前缀,通俗地称为 IP 网络号(IP )。
起初,在定义 IP 网络号时,情况可以说是界限分明的——有着严格的类别差异。将 IP 地址进行分类,其用意在于“划分”出能够适配各种数量级主机的 IP 地址群组,以此来提升 IP 地址空间的分配效率。如此一来,IP 地址就能依据链路上的主机数量而“专项专用”。对 IP 地址进行分类有另外一项好处。这项好处是能让地址分配过程变得更简单,也更容易控制。IP 地址分为 A、B、C、D、E 这 5 大类。这些类别是由 IP 地址第一字节的几个最高位来定义和区分的。
这一理念是按照严格的界限给 IP 地址分类,也被称为有类 IP 地址划分。人们利用掩码去“圈定”IP 地址里的主机 ID 和网络 ID。IP 地址的结构经过多次改进后,才演变成了现在的模样,并且这些改进让 IP 地址分配在实际战斗中更加高效。
IP 地址为了易于识别,采用点分十进制的形式来表示。在点分十进制表示中,32 位的 IP 地址按 8 位一组进行划分,每组之间用点号隔开。接着,把每个字节(八位组)转换为等值的十进制数。表 1 - 1 的最后一列显示的是各类 IP 地址类所对应的地址范围的点分十进制表示。
IPv4 地址空间因类编址的引入得到了一定程度的利用。然而,地址分类界限过于严格,这使得 IP 地址空间的使用效率较低。基于此情况,有类编址逐渐被无类编址所取代,无类编址更加高效且更加灵活。
使用无类编址时,某个 IP 网络号能够用特定长度的前缀来进行表示。这种前缀表示法不但更加灵活,而且还能让 IPv4 地址空间得到更充分的利用。以 A 类地址这一巨大的有类地址块作为例子。在使用有类编址方案时,一个 A 类地址块仅仅能分配给一个组织。然而,采用无类编址方案的话,就可以把它分割成多个小地址块,然后分配给多个组织。与之相反的是,无类编址方案还能够对多个 C 类地址块进行聚合处理,而不需要“分别对待”。为了节省资源,路由器都会对路由表中的路由进行相应处理。
IP 子网划分就是将有类 IP 地址的部分主机位与网络 ID 合并。这样就在 IP 地址类别中新增了一个层级。经过扩展后的网络 ID 被称作子网号或 IP 子网。例如,可以借用 B 类网络地址主机 ID 字段两字节中的一个字节,以此创建出 255 个子网,而用剩下的那个字节来表示每个子网的主机 ID,就像图 1-3 所展示的那样。
执行 IP 子网划分时,会对有待分配的有类网络的掩码进行调整。这样做是为了反映出新创建子网的网络号和主机号。图 1-4 显示了在划分 B 类地址时,新创建的子网以及与之相对应的掩码。在掩码中,一连串的 1 表示网络位,一连串的 0 表示主机位。通常,在书写 IP 地址时,可以使用前缀长度表示法,也就是指明子网掩码中 1 的个数。例如,可以将 172.16.1.0 255.255.255.0 写成 172.16.1.0 后面跟着 /24 。
类编址方案支持子网划分,能满足地址块内的高效地址分配需求。在有类网络环境中,要求所使用的子网掩码一致,这是硬性规定。VLSM 是更深层次的子网划分,它允许同一(主类)网络号“配搭”不同的子网掩码,从而可根据网域内不同网段的使用方式,更灵活地分配不同大小的 IP 地址块。例如,借助 VLSM ,能够将 B 类地址 172.16.0.0/16 划分成多个子网掩码为 24 位的“小型”子网。也就是说,把这个 B 类地址里的 8 位主机位当作了子网位。然后,可以对新生成的首个子网 172.16.1.0/24 进行进一步的子网划分。比如,可以再次利用其 8 位主机位中的 4 位作为子网位。这样,就划分出了更小的地址块,像 172.16.1.0/28、172.16.1.16/28、172.16.1.32/28 等。无类网络环境支持 VLSM。在无类网络环境中,运行于路由器上的路由协议以及相关路由软件都支持无类编址。图 1-5 演示了用 VLSM 实施子网划分的方式。
04
无类别域间路由
VLSM 有助于提升已分配地址块的 IP 地址使用效率。然而,它无法解决为各个组织有效分配 IP 地址的难题。许多组织被分配了多个 C 类网络,而非单个 B 类网络。这会使有类 IP 地址块的使用效率很低。同时,还会导致全球路由表的有类路由条数快速增长。这样一来,IP 地址会很快被用完。在这种情况下,无类别域间路由(CIDR)技术就产生了。
CIDR 能够支持任意长度的 IP 网络号,将有类网络中网络号与主机号“界限分明”的概念完全舍弃了。图 1 - 6 把 CIDR 的两大优点列举了出来。在打破地址类别这一概念之后,就能够很便捷地用 192.168.0.0/16 来表示从 192.168.0.0 一直到 192.168.255.0 这样一个个分散的 C 类地址块。具体而言,这意味着上述 256 个“老式”的 C 类地址块能够聚合为一个单一的地址块。这类地址块也被称作 CIDR 地址块或者超网。