1、下载第二部分 命名和寻址本部分内容包括: IP网络中的命字和地址 ARP和 RARP DNS :名字服务器 WINS 地址发现协议(BOOTP和DHCP)第4章 IP网络中的名字和地址作者:Mark A. Sportack本章内容包括: IP寻址 子网的出现 无类域间路由(CIDR)网络互连的一个重要前提条件是要有一个有效的地址结构,并且所有的互联网络用户都应遵守这个地址结构。地址结构可以有许多不同的形式、网络地址总是数字式的,但这些数字可以用二进制表示、十进制表示,甚至用十六进制表示。它们能方便所有的人理解和实现。地址结构能够高度可扩展,或者专门为一小部分用户团体而设计。本章考查由 IP协议
2、实现的地址结构。在过去 20年中,随着 IP的重大发展,IP地址结构亦发生了重大变化。本章描述了 IP地址结构的演化,解释了一些重要概念,包括分类的 IP地址、无类域间路由,子网地址和掩码以及可变长度子网掩码 (VLSM)。4.1 IP寻址Internet工程任务组 (IETF)Internet和IP的设计师 选择了适合于机器表示的数值来标识IP网络和主机。因此 Internet中的每一个网络具有自己独一无二的数值地址它的网络地址。网络管理人员要确信网络中的每一台主机有与之对应的惟一的主机编号。IP的原始版本 IPv4,使用 32位的二进制地址,每个地址组织成由点分隔的 8位数,每个 8位数称
3、为 8位位组,二进制数表示对机器很友好,但却不易被用户所理解。因此要提供更直观的使用十进制表示的地址。应该很好地理解二进制与十进制数值系统之间的关系,因为整个IP地址结构是基于二进制和十进制的。二进制与十进制数之间的关系将在 4.1.1节中讨论。32位的IPv4地址意味着 Internet能支持 4 294 967 296个可能的 IPv4地址这个数量曾经被认为绰绰有余。但是,这些地址被浪费掉许多,包括分配但没被使用的地址、分配不合适30使用 第二部分 命名和寻址 下载的子网掩码等。其中许多原因及其所带来的影响,会随着读者对 IPv4地址的深入理解而更加清楚。注意 IP的新版本即将完成。这个版
4、本是 IPv6,它有非常不同的地址结构。 IPv6地址有128位,使用全新的分类,以使地址的使用效率最大化。考虑到 IP的新版本广泛使用还需要一些时间,因此本书所举的例子均是IPv4地址结构,若要获得IPv6的更多信息可以阅读第10章。4.1.1 二进制和十进制数以2为基数的数值系统称为二进制数,某一位的 1表示的值大小由其位置决定,这非常类似于十进制系统。最右边的数代表 1,次右边的数代表 10,再次右边的数表示 100,依此类推。每一个数位表示的值是其右边数位表示数值的 10倍。然而,10进制数系统提供了 10个数字表示不同的值 (09),而二进制数系统仅支持两个有效数字: 0和1。数值所
5、在位置决定了数的大小。最右位置,在 10进制中表示1,在二进制中亦是如此。次右的数位代表 2,下一个位置代表 4,再下一个代表 8等等。每一个位置上的数表示的值是其右边数位表示数值大小的 2倍。一个二进制数对应的十进制数为:把二进制数中为 1的位对应的数值相加起来即可获得。从数学上讲, IPv4地址的每个 8位位组(共有4个)能表示的最大值为 10进制255,若要一个 8位的二进制数等于255,需要其中的每一位均为 1。表4-1表示出了二进制与十进制数之间的关系。表4-1 二进制数( 11111111)和十进制数( 255)数 字二进制十进制81128716461325116418314212
6、111正如读者所看到的,二进制地址中每位的值均为 1。因此计算这个二进制数对应的十进制数可以把各位所表示的数值相加即可,即: 128+64+32+16+8+4+2+1=255。表4-2是另一个二进制与十进制数转化的例子。在这个例子中,从右边数第五位上是 0,这个位置表示的十进制数为 16;因此,这个二进制数对应的十进制数应比 255少16,即:128+64+32+8+4+2+1=239表4-2 二进制数( 11101111)和十进制数(239)数 字二进制十进制81128716461325016418314212111二进制与十进制数值之间的这个关系是整个 IP地址结构的基石。记住在每个 IP
7、v4地址中有4个二进制8位位组。IP地址结构的其他方面如子网掩码、 VLSM以及CIDR均基于这些数值系统。在读者理解各种 IP地址实现方式之前,必须明白这些基本的数值系统及其之间的转化。4.1.2 IPv4地址格式IPv4地址在 1981年9月实现标准化。人们考虑到当时的计算情况,尽量使其具有前瞻性。基本的IP地址是分成 8位一个单元 (称为8位位组)的32位二进制数。下载 第 4章 IP网络中的名字和地址 使用31为了方便人们的使用,对机器友好的二进制地址转变为人们更熟悉的十进制地址。 IP地址中的每一个 8位位组用0255之间的一个十进制数表示。这些数之间用点 (.)隔开,这是所谓的点-
8、十进制格式。因此,最小的 IPv4地址值为 0.0.0.0,最大的地址值为 255.255.255.255,然而这两个值是保留的,没有分配给私人的端系统。要想知道其中的原因需要考查 IETF实现这个基本地址结构的方式。点-十进制数表示的 IPv4地址分成几类,以适应大型、中型、小型的网络。这些类的不同之处在于用于表示网络的位数与用于表示主机的位数之间的差别。 IP地址分成五类,用字母表示: A类地址 B类地址 C类地址 D类地址 E类地址每一个 IP地址包括两部分:网络地址和主机地址,上面五类地址对所支持的网络数和主机数有不同的组合。1. A类地址设计IPv4 A 类地址的目的是支持巨型网络,
9、因为对规模巨大网络的需求很小,因此开发了这种结构使主机地址数很大,而严格限制可被定义为 A类网络的数量。一个A类IP地址仅使用第一个 8位位组表示网络地址。剩下的 3个8位位组表示主机地址。A 类地址的第一个位总为 0 ,这一点在数学上限制了 A 类地址的范围小于 1 2 7 , 1 2 7 是64+32+16+8+4+2+1的和。最左边位表示 128,在这里空缺。因此仅有 127个可能的 A类网络。A类地址后面的 2 4 位( 3 个点 -十进制数 ) 表示可能的主机地址, A 类网络地址的范围从1.0.0.0到126.0.0.0。注意只有第一个 8位位组表示网络地址,剩余的 3个8位位组用
10、于表示第一个 8位位组所表示网络中惟一的主机地址,当用于描述网络时这些位置为 0。注意 技术上讲,127.0.0.0也是一个A类地址,但是它已被保留作闭环(look back)测试之用而不能分配给一个网络。每一个A类地址能支持 16 777 214个不同的主机地址,这个数是由 2的24次方再减去 2得到的。减 2是必要的,因为 IP把全 0保留为表示网络而全 1表示网络内的广播地址。网络与主机 8位位组的比例关系如表 4-3所示。表4-3 A类地址结构8位位组2. B类地址网络部分1 2主机部分3 4设计B类地址的目的是支持中到大型的网络。 B类网络地址范围从 128.1.0.0到191.25
11、4.0.0。B类地址蕴含的数学逻辑是相当简单的。一个 B类IP地址使用两个 8位位组表示网络号,另外两个8位位组表示主机号。 B类地址的第 1个8位位组的前两位总置为 10,剩下的 6位既可以是0也可以是1,这样就限制其范围小于等于 191,由128+32+16+8+4+2+1得到。32使用 第二部分 命名和寻址 下载最后的16位(2个8位位组 )标识可能的主机地址。每一个 B类地址能支持 64 534个惟一的主机地址,这个数由 2的16次方减2得到。B类网络仅有 16 382个。网络与主机 8位位组的比例如表 4-4所示。表4-4 B类地址结构8位位组3. C类地址1网络部分2 3主机部分4
12、C类地址用于支持大量的小型网络。这类地址可以认为与 A类地址正好相反。 A类地址使用第一个 8位位组表示网络号,剩下的 3个表示主机号,而 C类地址使用三个 8位位组表示网络地址,仅用一个8位位组表示主机号。C类地址的前3位数为110,前两位和为 192(128+64),这形成了 C类地址空间的下界。第三位等于十进制数 32,这一位为 0限制了地址空间的上界。不能使用第三位限制了此 8位位组的最大值为255-32等于223。因此C类网络地址范围从 192.0.1.0至223.255.254.0。最后一个 8位位组用于主机寻址。每一个 C类地址理论上可支持最大 256个主机地址 (0255),但
13、是仅有 254个可用,因为 0和255不是有效的主机地址。可以有 2 097 150个不同的 C类网络地址。注意 在IP地址中,0和255是保留的主机地址。IP地址中所有的主机地址为 0用于标识局域网。同样,全为1表示在此网段中的广播地址。网络和主机 8位位组的比例如表 4-5所示。表4-5 C类地址结构8位位组4. D类地址1网络部分2 3主机部分4D类地址用于在 IP网络中的组播 (multicasting,又称为多目广播 )。D类组播地址机制仅有有限的用处。一个组播地址是一个惟一的网络地址。它能指导报文到达预定义的 IP地址组。因此,一台机器可以把数据流同时发送到多个接收端,这比为每个接
14、收端创建一个不同的流有效得多。组播长期以来被认为是 IP网络最理想的特性,因为它有效地减小了网络流量。D类地址空间,和其他地址空间一样,有其数学限制, D类地址的前 4位恒为 1110,预置前3位为 1意味着 D类地址开始于 128+64+32等于 224。第 4位为 0意味着 D类地址的最大值为128+64+32+8+4+2+1为239,因此D类地址空间的范围从 224.0.0.0到239.255.255.254。这个范围看起来有些奇怪,因为上界需要 4个8位位组确定。通常情况下,这意味着用于表示主机和网络的 8位位组用来表示一个网络号。这其中是有原因的!因为 D类地址不是用于互联单独的端系
15、统或网络。D类地址用于在一个私有网中传输组播报文至 IP地址定义的端系统组中。因此没有必要把地址中的 8位位组或地址位分开表示网络和主机。相反,整个地址空间用于识别一个 IP地址组(A、B或C类)。现在,提出了许多其他的建议:不需要 D类地址空间的复杂性,就可以进行 IP组播。下载网络和主机 8位位组的比例如表 4-6所示。第 4章 IP网络中的名字和地址 使用 338位位组5. E类地址1表4-6 D类地址结构主机部分2 3 4E类地址虽被定义但却为 IETF所保留作研究之用。因此 Internet上没有可用的 E类地址。 E类地址的前4位恒为1,因此有效的地址范围从 240.0.0.0至2
16、55.255.255.255,考虑到 E类地址作研究之用且仅在IETF内部使用,因此,在这里没有必要作进一步讨论了。6. 系统的低效历史上,不同类 IP地址之间巨大的差异已经浪费了大量的地址。举例来说,一个中等规模的公司需要 300个IP地址。一个 C类地址 (254个地址 )不够用。使用两个 C类地址,提供的地址有富余,但是这样一来,一个公司就有两个不同的域,增加了路由表的尺寸 每一个地址空间需要一个路由表项(即使它们属于同一个组织)。另一种选择是, B类地址提供了所有需要的地址,而且在一个域中。但是这样却浪费了65 234个地址,当一个网络有多于 254个主机时就提供一个 B类地址,这种情
17、况太常见了。因此,B类地址比其他地址更容易耗尽。或许最浪费的是分配的地址比所需的地址多。任何组织只希望一个地址空间。这些组织不会验证需求量,因此他们会把大部分不用的地址保留,以备将来之用。幸运的是,这种情况不会再发生了。因为大量的 IP扩充工作主要用于改进 32位地址空间的使用效率,三个重要的扩充是: 子网掩码 可变长子网掩码 无类域间路由 (CIDR)这三个扩充用于解决不同的问题,是非常不同的机制。子网掩码,无论是固定长度还是可变长度,用于在一个物理网络中分成多个逻辑网络。掩码问题会在本章 4.2.2节讨论。CIDR用于解决原先分类地址策略的低效性。这样可以使路由器更有效地汇聚不同网络地址成
18、单一的路由表项。值得注意的一点是这两种机制不是互斥的;二者可以,也应该结合使用。管理地址空间Internet的稳定性和公共使用的网络地址的惟一性直接相关。因此,需要一些机制来保证地址的惟一性。以前这个工作交给 InternetNIC完成。这个组织现在已失去此功能。由Internet编号管理局( IANA)接替。 IANA后来也已解体,由 ICANN来完成号码和名字分配工作。 ICANN制定了一套富有竞争性的注册机构,允许商业团体互相竞争注册IP名字和号码。最重要的目标是要保证公共使用的地址不能重复。若出现重复会导致 Internet不稳定,使传送到重复地址的报文能力受到损害。虽然一名网络管理员
19、极有可能选择任意没被注册的地址,但是不应该允许这样做。具有这样地址的计算机只能在其域内正常工作。具有这样地址的互连网络会与34使用 第二部分 命名和寻址 下载其他合法注册此地址的组织发生冲突。重复的地址会导致路由问题,会破坏 Internet正确转发报文的能力。4.2 子网的出现Internet最初使用两层结构 (包括网络地址和主机地址 )。图4-1 示例的是相当小的简单二级网络,这个层次假设每个点只有一个网络。因此,每个点只需一个到 Internet的连接。最初,这种假设是正确的。然而,随着时间的推移,网络计算逐渐成熟和发展。至 1985年,上面的假设不再成立,因为一个组织可能会有多个网络,
20、并且单一的 Internet连接不能满足其要求。Internet以太网路由器 A.1 路由器B.1以太网服务器A.2 服务器A.3 服务器B.2 服务器B.3图4-1 Internet最初认为是一个两层结构随着许多地方开始拥有多个网络,很显然 IETF需要开发某种机制来区别同一个地点内的多个逻辑网络,作为 Internet的另一个层次。否则,将没有有效的方法在多个网络之间传送数据到特定的端系统,这一点可参考图 4-2中示例。Internet路由器A.1以太网路由器B.1以太网令牌环服务器C.4服务器A.2 服务器A.3 服务器B.2 服务器B.3服务器C.2服务器C.3图4-2 同一地点内多个
21、网络的出现破坏了 Internet的双层结构下载 第 4章 IP网络中的名字和地址 使用35一种解决方法是分配给每一个逻辑网络 (或称为子网)自己的 IP地址范围,这种方法可以工作,但使 IP地址的使用相当低效。不用多久,这种方法就会消耗掉所有未分配的地址。并且路由器中的路由表会扩大,每个网络需要自己的路由表项。可见,需要一种更好的方法。解决方法是分层地组织这些逻辑网络,并在它们之间路由。从 Internet的角度看具有多个逻辑网络的地方应该被看作一个网络。因此,它们应该共享一个共同的 IP地址范围。然而,它们可以有自己惟一的子网号。4.2.1 分子网在80年代中期,发布了 RFC917和RF
22、C950,这两个文档针对由于相对比较简单的两层结构IP地址带来的日趋严峻的问题提出了解决方法。这个方法称为分子网 (subnetting)。分子网的设想为:基于 Internet的层次结构需要一个第三层。随着互联网络技术的成熟,接受和使用这种方法的人数急剧增加。结果是,大中型组织有多个网络已经很普遍。通常情况是,这些网络是局域网,每个局域网被看作子网。在这样多网络的环境中,每个子网通过一个至 Internet的公共点路由器互联。实际的网络环境细节对 Internet没有影响。它们由私有网络组成,能够转发自己内部的报文。因此 Internet只需要知道哪个网络连接至 Internet的路由器,也
23、就是哪个网络的网关。在私有网内部, IP地址的主机部分能被细分用作标识子网。RFC950中规范的分子网方法能使任何一类 (A、B、C)IP地址再细分为更小的网络号。一个被子网化的IP地址实际包含三部分: 网络号 子网号 主机号子网和主机地址是由原先 IP地址的主机地址部分分割成两部分得到。因此,用户分子网的能力依赖于被子网化的 IP地址类型。 IP地址中主机地址位数越多,就能分得更多的子网和主机。然而,子网减少了能被寻址主机的数量。实际上,是把主机地址的一部分拿走用于识别子网号。子网由伪 IP地址,也称为子网掩码标识。子网掩码是可用点 -十进制数格式表示的 32位二进制数,掩码告诉网络中的端系
24、统 (包括路由器和其他主机 )IP地址的多少位用于识别网络和子网。这些位被称为扩展的网络前缀。剩下的位标识子网内的主机,掩码中用于标识网络号的位置为 1,主机位置为0。举例来说,掩码 11111111.11111111.11111111.11000000(255.255.255.192)能在子网产生 64个可能的主机地址。因此,可以在子网内惟一地标识 64个设备。实际上只有 62个地址是可用的,另两个主机地址是保留的,第一个主机号总保留为识别子网自身,另一个主机号保留作为子网的广播地址。因此当得到子网内最大可用的主机数时总要减去 2,才能得到可用的主机数。从数学上讲,可以得到的子网数依赖于被子
25、网化的 IP地址所属的类别。每一类地址使用不同的位数识别网络,因此,每一类地址用于子网化的位数也不同。表 4-7例示了一个 B类IP地址子网和子网内主机数的情况。当读者仔细阅读表 4-7时,会注意到最少可用作网络分配的位数是 2,最多是 14。其中的原因很简单,网络前缀 1位只允许定义两个网络: 0和1。子网化的规则不允许使用全 0或者全1的子网地址。这些地址是保留的,因此 1位的前缀不能得到可用36使用 第二部分 命名和寻址的子网地址。下载同样原因,2位的网络前缀只会得到 2个可用的子网地址。 2位的二进制子网地址、域,数学上的组合为 00.01.10和11,第一种和最后一种组合是无效的,只
26、剩下 01和10可用于识别子网。表4-7 B类地址空间的子网化网络前缀中的位数234567891011121314子 网 掩 码255.255.192.0255.255.224.0255.255.240.0255.255.248.0255.255.252.0255.255.254.0255.255.255.0255.255.255.128255.255.255.192255.255.255.224255.255.255.240255.255.255.248255.255.255.252可用的子网地址数261430621262545101 0222 0464 0948 19016 382每个子网
27、内可用的主机地址数16 3828 1904 0942 0461 02251025412662301462显然,用于标识子网的位数越多,剩下标识主机的位数就越少,反之亦然。C类地址也能分子网。因为 C类地址中 24位用于网络寻址,因此,只剩下 8位用于子网和主机寻址。 C类网络中子网和主机寻址之间的关系如表 4-8所示。表4-8 C 类地址空间的子网化网络前缀中的位数23456子网掩码255.255.255.192255.255.255.224255.255.255.240255.255.255.248255.255.255.252可用的子网地址数1 0222 0464 0948 19016 3
28、82每个子网内可用的主机地址数62301462虽然表4-7和表4-8例示了可能的子网数和子网内主机数之间的关系,但是它们并没有显示出子网是如何工作的。说明子网如何工作的最好方式是对实际的一个 IP地址进行分子网。这正是下面要讨论的内容。一个分子网的例子子网化或许是 IP地址结构中最难理解的部分,这主要是因为用二进制数最能说清楚,但这样却不直观。举例来说,用户要对一个 C类地址 193.168.125.0分子网。这个地址是基地址,这也是 Internet用于计算路由的地址。用户需要把这一地址切分成 6个子网,那么至少需要 8位主机地址中的 3位用来建造 6个惟一的扩展网络前缀。这些地址是 001
29、.010.011.100.101和110。最后一个 8位位组被分成: 3位加到网络号中形成扩展的网络前缀,剩下的 5位用于识别主机,表4-9例示了子网是如何形成的。在表4-9中,扩展的网络前缀 (包括 IP网络地址和子网地址 )用黑体表示。子网地址用斜黑体表示。主机地址用正常字体表示,用一个减号和网络前缀分隔开。这样容易明白一个基本的IP地址如何被分成子网。下载 第 4章 IP网络中的名字和地址 使用37表4-9 子网形成网号#基子网0子网1子网2子网3子网4子网5子网6子网7二进制地址11000000.101010001.01111101.0000000011000000.101010001
30、.01111101.000-0000011000000.101010001.01111101.001-0000011000000.101010001.01111101.010-0000011000000.101010001.01111101.011-0000011000000.101010001.01111101.100-0000011000000.101010001.01111101.101-0000011000000.101010001.01111101.110-0000011000000.101010001.01111101.111-00000十进制地址193.168.125.0193.
31、168.125.0193.168.125.32193.168.125.64193.168.125.96193.168.125.128193.168.125.160193.168.125.192193.168.125.224每一个子网号用最后一个 8位位组的前三位定义。十进制数为 128、64和32。每一个子网的起始IP地址(十进制)在第三列中列出。毫无疑问,这些数以 32递增(子网号中最右边的位 )。注意 子网0和7,虽然在数学上存在,即使在路由器上定义了,在正常环境下也不能使用,它们的子网地址分别是000和111。包含所有0或1的地址应视为保留地址不能用作特定子网地址。全0的地址(无论有少0
32、)保留为识别子网自身,全1的子网地址用于在子网内的广播。表4-9中的子网地址只是按子网地址域从小到大递增地表示。每个子网内的主机应该按剩下 5位递增的顺序定义。有 3 2 种 0、 1组合。具有 I P 地址193.168.125.193的设备是子网 6中的第一个主机,剩下的主机地址最高到 193.168.125.223。至此,子网就被主机填满,不能再加入主机了。4.2.2 可变长子网掩码(VLSM)虽然分子网方法是对 IP地址结构有价值的扩充,但是它还要受到一个基本的限制:整个网络只能有一个子网掩码。因此,当用户选择了一个子网掩码 (也就意味着每个子网内的主机数确定了)之后,就不能支持不同尺
33、寸的子网了。任何对更大尺寸子网的要求意味着必须改变整个网络的子网掩码。毫无疑问,这将是复杂和耗时的工作。1987年针对这一问题提出了解决方法。 IETF发布了 RFC 1009。这个文档规范了如何使用多个子网掩码分子网。表面上,每个子网可以有不同的大小;否则,它们应该有相同的掩码它们的网络前缀应相同。因此,新的子网化技术称为 VLSM。VLSM使一个组织的 IP地址空间被更有效的使用,使网络管理员能够按子网的特殊需要定制子网掩码。为了说明这一点,假设一个 IP基地址为172.16.9.0,这是一个 B类地址。使用 16位的网络号。使用 6位扩展网络前缀会得到 22位的扩展网络前缀。从数学上讲,
34、有 62个可用的子网地址,每个子网内有 1 022个可用的主机地址。这种子网化策略对需要超过 30个子网和每个子网内超过 500个主机的组织是合适的。但是,如果这个组织由一个超过 500个主机的稍大分部,和许多小的只有 40 50个主机设备的分部组成,那么,地址的大部分就被浪费了。每个组织即使不需要,也被分配一个有 1 022个主机地址的子网。小的分部大约浪费 950个主机地址。因为子网化的网络只能用单一的掩码,且这个掩码是预定义的固定长度,所以这种地址浪费就不可避免。子网化是对于“有限地址快速耗尽”这一棘手问题的理想解决办法。使私有网络能够对38使用 第二部分 命名和寻址 下载主机地址部分重
35、定义为子网和主机,将极大地减少 IP地址的浪费。不幸的是,在现实世界中,对子网的要求是不一样的,希望一个组织或网络把其分成相同大小的子部分很不现实。因此,使用固定长度的子网掩码会导致子网内 IP主机地址的浪费,这一点在前面的例子中已经看到。注意 扩展网络前缀的大小能用斜杠( /)后跟一个网络或子网位数的值表示。因此,193.168.125.0/27标识一个C类地址,其中27位用于扩展网络前缀。解决这个矛盾的方法是允许使用不同大小的子网掩码,对 IP地址空间进行灵活的子网化。使用前面的例子,网络管理员能把基地址切分成不同的子网掩码。少数的大组织可以继续使用22位的扩展网络前缀。然而小的组织可以分
36、给 25或26位的扩展网络前缀, 25位的前缀能包含126个主机子网,26位的前缀允许每个子网有 62个主机,这种方法就是VLSM。4.3 无类域前路由(CIDR)CIDR是对IP 地址结构最新的扩充。它是随着 90年代初Internet的飞速发展带来的危机而产生的。早在1992年,IETF就针对Internet的需要和使用开始考虑 Internet继续扩展的能力。主要考虑: 剩下未分配IPv4地址的耗尽问题。 B类地址的耗尽尤其严重。 随着Internet的成长,路由表迅速扩大。所有的迹象表明 I n t e r n e t 会快速发展且这种势头必将持续,因为更多的商业组织连到Interne
37、t上。实际上, IETF的一些成员甚至预言了“毁灭之日”,是1994年3月的某一天,这一天被认为是 B类地址耗尽的时间。缺少任何寻址机制, Internet的可扩展性将受到削弱。更坏的预测是: Internet会在“ 毁灭之日”前路由表将大到使路由机制崩溃。Internet成为自己成功的牺牲品。 IETF决定为了避免 Internet的崩溃,制定了短期和长期的解决方案。从长远考虑,惟一可靠的解决方案是开发全新的 IP协议,这种协议应具有极大扩充的地址空间结构。最后,这个方案被称为 IPng(IP协议:下一代 )或更正式一些称为 IP版本6(IPv6)。更紧迫、短期的要求是减慢未分配地址的耗尽速
38、度。答案是削除地址分类带来的低效率,依靠更灵活的地址结构。其结果促成了 CIDR计划。1993年9月,CIDR计划在RFC 1517、1518、1519和1520中形成。CIDR的几个关键特性对挽救 IPv4地址空间的耗尽问题是非常有价值的。这些特性包括: 消除地址分类 强化的路由汇聚 超网化这些革新对网络产生的效果是削除了基本分类的地址。基于分类的地址可能仍被使用,但是无类地址(当然,它也有负面影响 )更有效。4.3.1 无类地址数学上讲, IPv4地址空间仍保留了大量可获得的地址。不幸的是,这些潜在地址的大部分被浪费在已分配的地址块中,或称为已分配的有类地址中。消除类别并不需要从那些已分配
39、的地址空间中把浪费的地址恢复。但它能使剩下将被使用的地址被更有效地使用,表面上下载看来,这种努力会为 Ipv6的开发赢得所需的时间。4.3.2 强化路由汇聚第 4章 IP网络中的名字和地址 使用 39CIDR使Internet路由器 (任何符合 CIDR规范的路由器 )更有效地汇聚路由信息。换句话说,路由表中一个表项能够表示许多网络地址空间。这就大大减小了在任何互联网络中所需路由表的大小,能使网络具有更好的可扩展性。在19941995年期间, CIDR在Internet上被实现,在防止路由表扩大方面马上见效。如果没有CIDR的实现,Internet是否能继续成长将是很令人怀疑的。4.3.3 超
40、网化CIDR的另一个优点是超网。超网化就是把一块连续的 C类地址空间模拟成一个单一的更大一些的地址空间。如果得到足够多的连续 C类地址,就能够重新定义网络和主机识别域中位数的分配情况,模拟一个 B类地址。设计超网化的目的是消除由于 B类地址快速消耗所带来的压力,为其提供更灵活的方案。以前基于分类的地址结构带来问题,主要是因为 B类和 C类地址的巨大差异。需要多于 254个主机的网络可以有两个选择,任何一个选择都不是所希望的,它们是: 使用多个C 类地址 (在网络域之间进行必要的路由 )。 上升到一个 B类地址,有65 534个主机地址可用。简单的方法是使用 B类地址,虽然这种方法浪费了大量 I
41、P地址。4.3.4 CIDR怎样工作CIDR是传统地址分配策略的重大突破,它完全抛弃了有类地址,以前的有类地址用 8位表示一个 A类网络号,16位表示一个B类网络号,24位表示一个 C类网络号。CIDR用网络前缀代替了这些类。前缀可以任意长度,而不仅仅是 8位, 16位或 24位。这允许 CIDR根据网络大小分配网络地址空间,而不是在预定义的网络地址空间中作裁剪。每一个 CIDR网络地址和一个相关位的掩码一起广播,这个掩码识别了网络前缀的长度。举例来说, 192.125.61.8/20标识一个CIDR地址,此地址有 20位网络地址。 IP地址可以是任何有效的地址,不管那个地址以前是 A类、 B
42、类还是 C类。 CIDR路由器看“ /”后的数以决定网络号。因此,以前的 C类地址192.125.61.8的网络号是 192.125.61,主机号是 8。一个 C类地址。最多可提供254个主机地址,使用 CIDR地址,8位边界的结构限制就不存在了。为了更好地理解它的工作,有必要把十进制数变成二进制数。用二进制表示,网络地址部分是 11000000.0111101.00111101。前面 20位标识网络号,表4-10例示了这个地址被网络号和主机号分割的情况。表4-10 一个20位的CIDR网络号二进制地址网 络 号11000000.1111101.0011主 机 号1101.00001000注意
43、网络和主机部分的地址分割落在第三个 8位位组的中间,没有分配给网络号的位用于标识主机,因此一个有 20位网络前缀的 IPv4地址剩下 12位用于主机识别。数学上讲,可翻40使用 第二部分 命名和寻址 下载译4 094个可用的主机地址,因为没有一个最左预置的位 (以前用于分类之用 ),实际上整个地址范围可用作 CIDR网络。因此,一个 20位的网络前缀能分配一个以前保留给 A类或 B或C类网络的值。4.3.5 公共地址空间假如用户的广域网没有和 Internet或任何其他网络互联,那么互联地址可以任意选择。通常,任意选择互联网络地址是短视的和不负责任的行为。1993年RFC 1597发布,提出了
44、一个解决冲突的计划。4.3.6 RFC 1597和19181996年9月RFC1918发布,RFC1597作废。然而,新的 RFC只对以前的规范作了很小的改动。最重要的改动是抛弃了 A、B、C类。相反,RFC1918提出使用新的 CIDR寻址。如上一节所述, CIDR不使用基于分类的地址。相反,保留作网络号的位由跟在斜杠 (/)后的位数标识。因此,一个A类地址 10标识为10/18,因为只有8位用于识别网络号。更有意义的是与以前分类地址中主机地址为 8位的整数倍表示不同,CIDR允许主机地址在任何位边界。 只有三个网络地址范围保留为内部网络使用。这三个范围分别包括在 IPv4的A、B、C 类地
45、址内,它们是:10.0.0.0-10.255.255.255172.16.0.0-172.31.255.255192.168.0.0-192.168.255.255这些范围由 IANA保留作私有网使用,RFC1597的一个规定是不能用这些地址访问 Internet。使用这些地址范围的公司将来会发现要访问 Internet时将面临艰难的选择。它们应该对其所有设备重新编号,和 IANA保持一致,或者使用代理服务器或网络地址转译器 (network addresstranslator,NAT)作为Intranet 与Internet的中介。使用这样的设备可以使这些公司保持和 Internet上的地址
46、不互相冲突。假如用户选择RFC1597的保留地址作为Intranet的实现,就必须考虑这个决定的长期影响。随着时间的推移,用户可能需要通过 Extranet或Internet 和公司的其他网络互联。无论哪种情况,都不能保证组成地址的惟一性。最后,如果实现 RFC 1918为私有网保留的地址,就必须保证私有网络内每个设备地址的惟一性,地址不必全局惟一,但必须局部惟一。4.4 小结很好地理解 IP地址结构是理解使用 IP互联网络的前提条件,本章介绍的基础知识能让读者更好地理解用 IP互联网络的机制。本章列出的结构设备,包括 CIDR、子网掩码和 VLSM,正被广泛使用,不能理解它们将削弱支持和设计互联网络的能力。在本部分的后续章中,将对 IP网的命名和寻址的其他方面作进一步讨论。这些方面包括IP地址如何与局域网的硬件地址相联系,以及用户友好的名字如何解析成 IP地址等。