这一刻我终于明白了IP地址的分类!

2021-05-17 15:52:32 浏览数 (1)

IP 编址的概念

编址是IP协议的关键。在 TCP/IP协议栈中,有一个通向底层(物理层和数据链路层)的网络接口层, IP协议的介质无关性就仰仗于该层。IP 协议之所以能被人们广泛接受,介质无关性可能是重要原因之一。IP有自己的一套编址方案,独立于用来互连网络设备的局域网(LAN)或广域网(WAN)介质,这也暗合其介质无关性的架构。因此, IP可成功地运行在由各种各样的介质所组成的网络基础设施之上。IP协议栈的这种灵活性,兼之其简单性,也是促使该协议得到广泛使用的主要原因。

IP 编址的原理是,为网络设备的每个网络接口(网卡)分配地址(即基于链路的地址分配方法),并不是为整台设备分配单一地址(即基于主机的地址分配方法)。设备的各个接口与名为子网络(或子网)的网络链路相连,并设有子网地址。接口的 IP 地址从其直连链路的子网地址空间中分配。基于链路的地址分配方法的优点是,路由器只需跟踪 IP 路由表中的 IP 子网,就能够汇总路由信息,而无需追踪到网络中的每台主机。这在诸如以太网之类的广播链路网络环境中会非常高效,在此类网络环境中,会同时连接多台设备。在运行 IP 的以太网络中,还会利用地址解析协议(Address Resolution Protocol, ARP)将直连主机的 IP 地址解析为相应的数据链路层地址。

目前,IP地址分为两类:IPv4地址和IPv6地址。在IPv6未得到正式启用之前,目前在用的IPv4地址用32位来表示。确切说来,32位编址方案可提供多达232(4 294 967 295)个独一无二的主机地址。随着全球Internet规模的不断扩张,32位的IPv4编址方案已不能满足未来的发展,于是,128位的IPv6编址方案应运而生。

下面我们将介绍IPv4编制有关的主题:

· IPv4 地址类别;

· 私有 IPv4 地址空间;

· IPv4 子网划分和可变长子网掩码;

· 无类别域间路由。

01

IPv4 地址类别

如前所述, IPv4地址的32位编址方案可容纳大量的主机地址。但是,IP编址方案基于链路,要求网络链路与一组 IP 地址相关联,而与链路直连的主机则设有具体的IP地址。这组IP地址称为地址前缀,俗称IP网络号(IP network number)。

起初,定义IP网络号时,可以说是壁垒森严——有严格的类别之分。对IP地址进行分类,其目的是要“划分”出能够支持各种数量级主机的 IP地址组,从而提高IP地址空间的分配效率。这样一来,IP地址就可以根据链路上的主机数量“专类专用”。对 IP 地址进行分类的另外一项好处是,可使地址分配过程更为简单,更容易控制。IP 地址分为A、B、C、D、E等 5 大类,由IP地址第一字节的几个最高位来定义和区分。

每类地址都含若干 IPv4 地址子网,每个子网均可容纳一定数量的主机。表1-1所列为5类IPv4地址。

由表1-1可知,IP地址首字节的置位方式不同,与之相对应的地址类别以及地址范围也有所不同。

在这5类地址中, A、B、C三类属于单播地址,用来实现单一信源与单一信宿之间的通信。D类地址专为IP多播应用而预留,多播是指单一信源与多个信宿之间的通信。E类地址则是出于实验目的而做预留。为了使各类单播地址(A、B、C 类)所能容纳的主机尽可能的多,人们把32位 IP 地址进一步划分为了网络标识符(网络 ID)和主机标识符(主机 ID)两个大块,如下所示。

· A 类地址: 8位网络 ID, 24位主机ID。

· B 类地址:16位网络 ID,16位主机ID。

· C 类地址:24位网络 ID, 8位主机ID。

图1-2所示为32位A类地址的划分情况。其首字节中的最高位固定为 0,用整个首字节来表示网络ID,随后的3字节表示主机ID。

这一按严格的界限给IP地址分类的理念也称为有类IP地址划分。人们用掩码来“圈定”IP地址中的主机ID和网络ID。IP 地址的结构经过多次改进,才进化成了现在这个样子,这些改进也使得 IP 地址分配在实战中更加高效。

为了易于识别,IP地址使用点分十进制的形式来表示。用点分十进制来表示时,32位IP地址以8位编为一组,每组之间用点号分开。然后,再将每个字节(八位组)转换为等值的十进制数。表 1-1 中的最后一列所示为各类 IP 地址类所属地址范围的点分十进制表示。

虽然有类编址的引入使得 IPv4 地址空间得到了较为充分的利用,但是地址分类界限太过严格也导致了 IP 地址空间使用效率低下。有鉴于此,有类编址逐渐被更为高效和更加灵活的无类编址取代。

使用无类编址时,任何 IP 网络号都可以用特定长度的前缀来表示。这一前缀表示法除了更加灵活以外,还可以使得 IPv4 地址空间得到更为充分的利用。以 A 类地址这一巨大的有类地址块为例,使用有类编址方案时,一个 A 类地址块只能分配给一个组织,而采用无类编址方案,则可将其剖成多个小地址块,分配给多个组织;与此相反,无类编址方案还允许对多个 C类地址块做聚合处理,而无需“分别对待”。为节省资源, Internet 路由器都会对路由表中的路

由做地址聚合,这种路由聚合方式称为无类别域间路由(CIDR)。

02

IPv4 私有地址空间

人们对 IPv4 单播地址空间的某些地址块进行了预留,并将其指定为私有地址。私有地址空间专为不与公网(Internet)相连的网络而预留。RFC1918将下列地址块定义为 IPv4 私有地址:

· 10.0.0.0~10.255.255.255;

· 172.16.0.0~172.31.255.255;

· 192.168.0.0~192.168.255.255。

RFC1700载有已预留及已分配(Internet相关)参数的通用信息,包括已预留的IP地址信息

03

子网划分和可变长子网掩码

使用网络地址转换(Network Address Translation, NAT)技术,启用了IPv4 私有地址空间的私有网络仍然可以连接到公网(Internet)。

CIDR 诞生之前,每个有类网络只能分配给一个组织。在组织内部,可用子网划分技术将有类地址块分割为多个小地址块,供同一网域内的不同网段使用。

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地址块的使用效率极低,而且还导致全球Internet路由表的有类路由条数迅猛增长。如此一来, IP地址很快将会消耗殆尽,于是无类别域间路由(Classless InterDomain Routing, CIDR)技术应运而生。

CIDR支持任意长度的IP网络号,完全摒弃了有类网络中网络号与主机号“界限分明”的概念。图1-6列举了CIDR的两大优点。打破了地址类别这一概念之后,就可以很方便地用192.168.0.0/16来表示从192.168.0.0到192.168.255.0这样一个个零散的C类地址块。再说具体一点,这就意味着上述 256 个“老式 ”的 C 类地址块可聚合为单一地址块,此类地址块也称为CIDR 地址块或超网(supernet)。

CIDR还能非常灵活地支持对(IP 地址中的)网络号进行子网划分,划分出来的子网可分配给不同的组织,以实现域间路由信息的交换。比如,可将地址块 131.108.0.0/16 划分为 4 个“二级”地址块(131.108.0.0/18、131.108.64.0/18、131.108.128.0/18和 131.108.192.0/18),然后,再分配给4个不同的组织。

0 人点赞