本文共 16133 字,大约阅读时间需要 53 分钟。
下载 本部分内容包括: • IP网络中的命字和地址 • ARP和R A R P • DNS:名字服务器 • WINS • 地址发现协议( B O O T P和D H C P ) 第4章IP网络中的名字和地址 作者:Mark A. Sportack 本章内容包括: • IP寻址 • 子网的出现 • 无类域间路由( C I D R ) 网络互连的一个重要前提条件是要有一个有效的地址结构,并且所有的互联网络用户都 应遵守这个地址结构。地址结构可以有许多不同的形式、网络地址总是数字式的,但这些数 字可以用二进制表示、十进制表示,甚至用十六进制表示。它们能方便所有的人理解和实现。 地址结构能够高度可扩展,或者专门为一小部分用户团体而设计。 本章考查由I P协议实现的地址结构。在过去2 0年中,随着I P的重大发展,I P地址结构亦发 生了重大变化。本章描述了I P地址结构的演化,解释了一些重要概念,包括分类的I P地址、 无类域间路由,子网地址和掩码以及可变长度子网掩码( V L S M )。 4.1 IP寻址 I n t e r n e t工程任务组( I E T F )—I n t e r n e t和I P的设计师—选择了适合于机器表示的数值来 标识I P网络和主机。因此I n t e r n e t中的每一个网络具有自己独一无二的数值地址—它的网络 地址。网络管理人员要确信网络中的每一台主机有与之对应的惟一的主机编号。 I P的原始版本I P v 4,使用3 2位的二进制地址,每个地址组织成由点分隔的8位数,每个8 位数称为8位位组,二进制数表示对机器很友好,但却不易被用户所理解。因此要提供更直观 的使用十进制表示的地址。应该很好地理解二进制与十进制数值系统之间的关系,因为整个 I P地址结构是基于二进制和十进制的。二进制与十进制数之间的关系将在4 . 1 . 1节中讨论。 3 2位的I P v 4地址意味着I n t e r n e t能支持4 294 967 296个可能的I P v 4地址—这个数量曾经 被认为绰绰有余。但是,这些地址被浪费掉许多,包括分配但没被使用的地址、分配不合适 第二部分命名和寻址 的子网掩码等。其中许多原因及其所带来的影响,会随着读者对I P v 4地址的深入理解而更加 清楚。 注意IP的新版本即将完成。这个版本是IPv6,它有非常不同的地址结构。IPv6地址有 1 2 8位,使用全新的分类,以使地址的使用效率最大化。考虑到I P的新版本广泛使用还 需要一些时间,因此本书所举的例子均是I P v 4地址结构,若要获得I P v 6的更多信息可以 阅读第10章。 4.1.1 二进制和十进制数 以2为基数的数值系统称为二进制数,某一位的1表示的值大小由其位置决定,这非常类 似于十进制系统。最右边的数代表1,次右边的数代表1 0,再次右边的数表示1 0 0,依此类推。 每一个数位表示的值是其右边数位表示数值的1 0倍。 然而,1 0进制数系统提供了1 0个数字表示不同的值( 0~9 ),而二进制数系统仅支持两个有 效数字: 0和1。数值所在位置决定了数的大小。最右位置,在1 0进制中表示1,在二进制中亦 是如此。次右的数位代表2,下一个位置代表4,再下一个代表8等等。每一个位置上的数表示 的值是其右边数位表示数值大小的2倍。 一个二进制数对应的十进制数为:把二进制数中为1的位对应的数值相加起来即可获得。 从数学上讲,I P v 4地址的每个8位位组(共有4个)能表示的最大值为1 0进制2 5 5,若要一个8位的 二进制数等于2 5 5,需要其中的每一位均为1。表4 - 1表示出了二进制与十进制数之间的关系。 表4-1 二进制数( 11111111)和十进制数(2 5 5) 数字8 7 6 5 4 3 2 1 二进制1 1 1 1 1 1 1 1 十进制1 2 8 6 4 3 2 1 6 8 4 2 1 正如读者所看到的,二进制地址中每位的值均为1。因此计算这个二进制数对应的十进制 数可以把各位所表示的数值相加即可,即: 1 2 8 + 6 4 + 3 2 + 1 6 + 8 + 4 + 2 + 1 = 2 5 5。 表4 - 2是另一个二进制与十进制数转化的例子。在这个例子中,从右边数第五位上是0, 这个位置表示的十进制数为1 6;因此,这个二进制数对应的十进制数应比2 5 5少1 6,即: 1 2 8 + 6 4 + 3 2 + 8 + 4 + 2 + 1 = 2 3 9 表4-2 二进制数(111 0 1111)和十进制数(2 3 9) 数字8 7 6 5 4 3 2 1 二进制1 1 1 0 1 1 1 1 十进制1 2 8 6 4 3 2 1 6 8 4 2 1 二进制与十进制数值之间的这个关系是整个I P地址结构的基石。记住在每个I P v 4地址中 有4个二进制8位位组。I P地址结构的其他方面如子网掩码、V L S M以及C I D R均基于这些数值 系统。在读者理解各种I P地址实现方式之前,必须明白这些基本的数值系统及其之间的转化。 4.1.2 IPv4地址格式 I P v 4地址在1 9 8 1年9月实现标准化。人们考虑到当时的计算情况,尽量使其具有前瞻性。 基本的I P地址是分成8位一个单元(称为8位位组)的3 2位二进制数。 30使用第二部分命名和寻址 下载 为了方便人们的使用,对机器友好的二进制地址转变为人们更熟悉的十进制地址。I P地 址中的每一个8位位组用0~2 5 5之间的一个十进制数表示。这些数之间用点( . )隔开,这是所谓 的点-十进制格式。因此,最小的I P v 4地址值为0 . 0 . 0 . 0,最大的地址值为2 5 5 . 2 5 5 . 2 5 5 . 2 5 5,然 而这两个值是保留的,没有分配给私人的端系统。要想知道其中的原因需要考查I E T F实现这 个基本地址结构的方式。 点-十进制数表示的I P v 4地址分成几类,以适应大型、中型、小型的网络。这些类的不同 之处在于用于表示网络的位数与用于表示主机的位数之间的差别。I P地址分成五类,用字母 表示: • A类地址 • B类地址 • C类地址 • D类地址 • E类地址 每一个I P地址包括两部分:网络地址和主机地址,上面五类地址对所支持的网络数和主 机数有不同的组合。 1. A类地址 设计IPv4 A类地址的目的是支持巨型网络,因为对规模巨大网络的需求很小,因此开发 了这种结构使主机地址数很大,而严格限制可被定义为A类网络的数量。 一个A类I P地址仅使用第一个8位位组表示网络地址。剩下的3个8位位组表示主机地址。 A类地址的第一个位总为0 ,这一点在数学上限制了A类地址的范围小于1 2 7 , 1 2 7 是 6 4 + 3 2 + 1 6 + 8 + 4 + 2 + 1的和。最左边位表示1 2 8,在这里空缺。因此仅有1 2 7个可能的A类网络。 A类地址后面的2 4位( 3个点-十进制数)表示可能的主机地址, A类网络地址的范围从 1 . 0 . 0 . 0到1 2 6 . 0 . 0 . 0。 注意只有第一个8位位组表示网络地址,剩余的3个8位位组用于表示第一个8位位组所表 示网络中惟一的主机地址,当用于描述网络时这些位置为0。 注意技术上讲,1 2 7 . 0 . 0 . 0也是一个A类地址,但是它已被保留作闭环(look back)测 试之用而不能分配给一个网络。 每一个A类地址能支持16 777 214个不同的主机地址,这个数是由2的2 4次方再减去2得到 的。减2是必要的,因为I P把全0保留为表示网络而全1表示网络内的广播地址。网络与主机8 位位组的比例关系如表4 - 3所示。 表4-3 A类地址结构 网络部分主机部分 8位位组1 2 3 4 2. B类地址 设计B类地址的目的是支持中到大型的网络。B类网络地址范围从1 2 8 . 1 . 0 . 0到1 9 1 . 2 5 4 . 0 . 0。 B类地址蕴含的数学逻辑是相当简单的。一个B类I P地址使用两个8位位组表示网络号,另 外两个8位位组表示主机号。B类地址的第1个8位位组的前两位总置为1 0,剩下的6位既可以是 0也可以是1,这样就限制其范围小于等于1 9 1,由1 2 8 + 3 2 + 1 6 + 8 + 4 + 2 + 1得到。 第4章IP网络中的名字和地址使用31 下载 最后的1 6位( 2个8位位组)标识可能的主机地址。每一个B类地址能支持64 534个惟一的主 机地址,这个数由2的1 6次方减2得到。B类网络仅有16 382个。 网络与主机8位位组的比例如表4 - 4所示。 表4-4 B类地址结构 网络部分主机部分 8位位组1 2 3 4 3. C类地址 C类地址用于支持大量的小型网络。这类地址可以认为与A类地址正好相反。A类地址使 用第一个8位位组表示网络号,剩下的3个表示主机号,而C类地址使用三个8位位组表示网络 地址,仅用一个8位位组表示主机号。 C类地址的前3位数为11 0,前两位和为1 9 2 ( 1 2 8 + 6 4 ),这形成了C类地址空间的下界。第三 位等于十进制数3 2,这一位为0限制了地址空间的上界。不能使用第三位限制了此8位位组的 最大值为2 5 5 - 3 2等于2 2 3。因此C类网络地址范围从1 9 2 . 0 . 1 . 0至2 2 3 . 2 5 5 . 2 5 4 . 0。 最后一个8位位组用于主机寻址。每一个C类地址理论上可支持最大2 5 6个主机地址( 0~ 2 5 5 ),但是仅有2 5 4个可用,因为0和2 5 5不是有效的主机地址。可以有2 097 150个不同的C类 网络地址。 注意在I P地址中,0和2 5 5是保留的主机地址。I P地址中所有的主机地址为0用于标识 局域网。同样,全为1表示在此网段中的广播地址。 网络和主机8位位组的比例如表4 - 5所示。 表4-5 C类地址结构 网络部分主机部分 8位位组1 2 3 4 4. D类地址 D类地址用于在I P网络中的组播( m u l t i c a s t i n g,又称为多目广播)。D类组播地址机制仅有 有限的用处。一个组播地址是一个惟一的网络地址。它能指导报文到达预定义的I P地址组。 因此,一台机器可以把数据流同时发送到多个接收端,这比为每个接收端创建一个不同的流 有效得多。组播长期以来被认为是I P网络最理想的特性,因为它有效地减小了网络流量。 D类地址空间,和其他地址空间一样,有其数学限制, D类地址的前4位恒为111 0,预置 前3位为1意味着D类地址开始于1 2 8 + 6 4 + 3 2等于2 2 4。第4位为0意味着D类地址的最大值为 1 2 8 + 6 4 + 3 2 + 8 + 4 + 2 + 1为2 3 9,因此D类地址空间的范围从2 2 4 . 0 . 0 . 0到2 3 9 . 2 5 5 . 2 5 5 . 2 5 4。 这个范围看起来有些奇怪,因为上界需要4个8位位组确定。通常情况下,这意味着用于 表示主机和网络的8位位组用来表示一个网络号。这其中是有原因的!因为D类地址不是用于 互联单独的端系统或网络。 D类地址用于在一个私有网中传输组播报文至I P地址定义的端系统组中。因此没有必要把 地址中的8位位组或地址位分开表示网络和主机。相反,整个地址空间用于识别一个I P地址组 ( A、B或C类)。现在,提出了许多其他的建议:不需要D类地址空间的复杂性,就可以进行I P 组播。 32使用第二部分命名和寻址 下载 网络和主机8位位组的比例如表4 - 6所示。 表4-6 D类地址结构 主机部分 8位位组1 2 3 4 5. E类地址 E类地址虽被定义但却为I E T F所保留作研究之用。因此I n t e r n e t上没有可用的E类地址。E 类地址的前4位恒为1,因此有效的地址范围从2 4 0 . 0 . 0 . 0至2 5 5 . 2 5 5 . 2 5 5 . 2 5 5,考虑到E类地址作 研究之用且仅在I E T F内部使用,因此,在这里没有必要作进一步讨论了。 6. 系统的低效 历史上,不同类I P地址之间巨大的差异已经浪费了大量的地址。举例来说,一个中等规 模的公司需要3 0 0个I P地址。一个C类地址( 2 5 4个地址)不够用。使用两个C类地址,提供的地 址有富余,但是这样一来,一个公司就有两个不同的域,增加了路由表的尺寸—每一个地 址空间需要一个路由表项(即使它们属于同一个组织)。 另一种选择是, B类地址提供了所有需要的地址,而且在一个域中。但是这样却浪费了 65 234个地址,当一个网络有多于2 5 4个主机时就提供一个B类地址,这种情况太常见了。因 此,B类地址比其他地址更容易耗尽。 或许最浪费的是分配的地址比所需的地址多。任何组织只希望一个地址空间。这些组织 不会验证需求量,因此他们会把大部分不用的地址保留,以备将来之用。 幸运的是,这种情况不会再发生了。因为大量的I P扩充工作主要用于改进3 2位地址空间 的使用效率,三个重要的扩充是: • 子网掩码 • 可变长子网掩码 • 无类域间路由( C I D R ) 这三个扩充用于解决不同的问题,是非常不同的机制。子网掩码,无论是固定长度还是 可变长度,用于在一个物理网络中分成多个逻辑网络。掩码问题会在本章4 . 2 . 2节讨论。 C I D R用于解决原先分类地址策略的低效性。这样可以使路由器更有效地汇聚不同网络地 址成单一的路由表项。 值得注意的一点是这两种机制不是互斥的;二者可以,也应该结合使用。 管理地址空间 I n t e r n e t的稳定性和公共使用的网络地址的惟一性直接相关。因此,需要一些机 制来保证地址的惟一性。以前这个工作交给I n t e r n e t N I C完成。这个组织现在已失去 此功能。由I n t e r n e t编号管理局( I A N A)接替。I A N A后来也已解体,由I C A N N来完 成号码和名字分配工作。I C A N N制定了一套富有竞争性的注册机构,允许商业团体 互相竞争注册I P名字和号码。 最重要的目标是要保证公共使用的地址不能重复。若出现重复会导致I n t e r n e t不 稳定,使传送到重复地址的报文能力受到损害。 虽然一名网络管理员极有可能选择任意没被注册的地址,但是不应该允许这样 做。具有这样地址的计算机只能在其域内正常工作。具有这样地址的互连网络会与 第4章IP网络中的名字和地址使用33 下载 其他合法注册此地址的组织发生冲突。重复的地址会导致路由问题,会破坏I n t e r n e t 正确转发报文的能力。 4.2 子网的出现 I n t e r n e t最初使用两层结构(包括网络地址和主机地址)。图4 - 1示例的是相当小的简单二级 网络,这个层次假设每个点只有一个网络。因此,每个点只需一个到I n t e r n e t的连接。最初, 这种假设是正确的。然而,随着时间的推移,网络计算逐渐成熟和发展。至1 9 8 5年,上面的 假设不再成立,因为一个组织可能会有多个网络,并且单一的I n t e r n e t连接不能满足其要求。 图4-1 Internet最初认为是一个两层结构 随着许多地方开始拥有多个网络,很显然I E T F需要开发某种机制来区别同一个地点内的 多个逻辑网络,作为I n t e r n e t的另一个层次。否则,将没有有效的方法在多个网络之间传送数 据到特定的端系统,这一点可参考图4 - 2中示例。 图4-2 同一地点内多个网络的出现破坏了Internet的双层结构 34使用第二部分命名和寻址 下载 I n t e r n e t 服务器A . 2 服务器A . 3 服务器B . 2 服务器B . 3 路由器B . 1 以太网以太网 路由器A . 1 I n t e r n e t 服务器A . 2 服务器A . 3 服务器B . 2 服务器C . 2 服务器C . 3 服务器C . 4 服务器B . 3 路由器B . 1 以太网以太网 路由器A . 1 令牌环 一种解决方法是分配给每一个逻辑网络(或称为子网)自己的I P地址范围,这种方法可以工 作,但使I P地址的使用相当低效。不用多久,这种方法就会消耗掉所有未分配的地址。并且 路由器中的路由表会扩大,每个网络需要自己的路由表项。可见,需要一种更好的方法。 解决方法是分层地组织这些逻辑网络,并在它们之间路由。从I n t e r n e t的角度看具有多个 逻辑网络的地方应该被看作一个网络。因此,它们应该共享一个共同的I P地址范围。然而, 它们可以有自己惟一的子网号。 4.2.1 分子网 在8 0年代中期,发布了R F C 9 1 7和R F C 9 5 0,这两个文档针对由于相对比较简单的两层结 构I P地址带来的日趋严峻的问题提出了解决方法。这个方法称为分子网( s u b n e t t i n g )。分子网 的设想为:基于I n t e r n e t的层次结构需要一个第三层。随着互联网络技术的成熟,接受和使用 这种方法的人数急剧增加。结果是,大中型组织有多个网络已经很普遍。通常情况是,这些 网络是局域网,每个局域网被看作子网。 在这样多网络的环境中,每个子网通过一个至I n t e r n e t的公共点路由器互联。实际的网络 环境细节对I n t e r n e t没有影响。它们由私有网络组成,能够转发自己内部的报文。因此I n t e r n e t 只需要知道哪个网络连接至I n t e r n e t的路由器,也就是哪个网络的网关。在私有网内部, I P地 址的主机部分能被细分用作标识子网。 R F C 9 5 0中规范的分子网方法能使任何一类( A、B、C ) I P地址再细分为更小的网络号。一 个被子网化的I P地址实际包含三部分: • 网络号 • 子网号 • 主机号 子网和主机地址是由原先I P地址的主机地址部分分割成两部分得到。因此,用户分子网 的能力依赖于被子网化的I P地址类型。I P地址中主机地址位数越多,就能分得更多的子网和 主机。然而,子网减少了能被寻址主机的数量。实际上,是把主机地址的一部分拿走用于识 别子网号。子网由伪I P地址,也称为子网掩码标识。 子网掩码是可用点-十进制数格式表示的3 2位二进制数,掩码告诉网络中的端系统(包括路 由器和其他主机) I P地址的多少位用于识别网络和子网。这些位被称为扩展的网络前缀。剩下 的位标识子网内的主机,掩码中用于标识网络号的位置为1,主机位置为0。 举例来说,掩码11111111 . 11111111 . 11111111 . 11 0 0 0 0 0 0 ( 2 5 5 . 2 5 5 . 2 5 5 . 1 9 2 )能在子网产生6 4 个可能的主机地址。因此,可以在子网内惟一地标识6 4个设备。实际上只有6 2个地址是可用 的,另两个主机地址是保留的,第一个主机号总保留为识别子网自身,另一个主机号保留作 为子网的广播地址。因此当得到子网内最大可用的主机数时总要减去2,才能得到可用的主机 数。 从数学上讲,可以得到的子网数依赖于被子网化的I P地址所属的类别。每一类地址使用 不同的位数识别网络,因此,每一类地址用于子网化的位数也不同。表4 - 7例示了一个B类I P 地址子网和子网内主机数的情况。当读者仔细阅读表4 - 7时,会注意到最少可用作网络分配的 位数是2,最多是1 4。其中的原因很简单,网络前缀1位只允许定义两个网络: 0和1。子网化 的规则不允许使用全0或者全1的子网地址。这些地址是保留的,因此1位的前缀不能得到可用 第4章IP网络中的名字和地址使用35 下载 的子网地址。 同样原因,2位的网络前缀只会得到2个可用的子网地址。2位的二进制子网地址、域,数 学上的组合为0 0 . 0 1 . 1 0和11,第一种和最后一种组合是无效的,只剩下0 1和1 0可用于识别子 网。 表4-7 B类地址空间的子网化 网络前缀中的位数子网掩码可用的子网地址数每个子网内可用的主机地址数 2 2 5 5 . 2 5 5 . 1 9 2 . 0 2 16 382 3 2 5 5 . 2 5 5 . 2 2 4 . 0 6 8 190 4 2 5 5 . 2 5 5 . 2 4 0 . 0 1 4 4 094 5 2 5 5 . 2 5 5 . 2 4 8 . 0 3 0 2 046 6 2 5 5 . 2 5 5 . 2 5 2 . 0 6 2 1 022 7 2 5 5 . 2 5 5 . 2 5 4 . 0 1 2 6 5 1 0 8 2 5 5 . 2 5 5 . 2 5 5 . 0 2 5 4 2 5 4 9 2 5 5 . 2 5 5 . 2 5 5 . 1 2 8 5 1 0 1 2 6 1 0 2 5 5 . 2 5 5 . 2 5 5 . 1 9 2 1 022 6 2 11 2 5 5 . 2 5 5 . 2 5 5 . 2 2 4 2 046 3 0 1 2 2 5 5 . 2 5 5 . 2 5 5 . 2 4 0 4 094 1 4 1 3 2 5 5 . 2 5 5 . 2 5 5 . 2 4 8 8 190 6 1 4 2 5 5 . 2 5 5 . 2 5 5 . 2 5 2 16 382 2 显然,用于标识子网的位数越多,剩下标识主机的位数就越少,反之亦然。 C类地址也能分子网。因为C类地址中2 4位用于网络寻址,因此,只剩下8位用于子网和 主机寻址。C类网络中子网和主机寻址之间的关系如表4 - 8所示。 表4-8 C类地址空间的子网化 网络前缀中的位数子网掩码可用的子网地址数每个子网内可用的主机地址数 2 2 5 5 . 2 5 5 . 2 5 5 . 1 9 2 1 022 6 2 3 2 5 5 . 2 5 5 . 2 5 5 . 2 2 4 2 046 3 0 4 2 5 5 . 2 5 5 . 2 5 5 . 2 4 0 4 094 1 4 5 2 5 5 . 2 5 5 . 2 5 5 . 2 4 8 8 190 6 6 2 5 5 . 2 5 5 . 2 5 5 . 2 5 2 16 382 2 虽然表4 - 7和表4 - 8例示了可能的子网数和子网内主机数之间的关系,但是它们并没有显示 出子网是如何工作的。说明子网如何工作的最好方式是对实际的一个I P地址进行分子网。这 正是下面要讨论的内容。 一个分子网的例子 子网化或许是I P地址结构中最难理解的部分,这主要是因为用二进制数最能说清楚,但 这样却不直观。举例来说,用户要对一个C类地址1 9 3 . 1 6 8 . 1 2 5 . 0分子网。这个地址是基地址, 这也是I n t e r n e t用于计算路由的地址。用户需要把这一地址切分成6个子网,那么至少需要8位 主机地址中的3位用来建造6个惟一的扩展网络前缀。这些地址是0 0 1 . 0 1 0 . 0 11 . 1 0 0 . 1 0 1和11 0。 最后一个8位位组被分成: 3位加到网络号中形成扩展的网络前缀,剩下的5位用于识别主机, 表4 - 9例示了子网是如何形成的。 在表4 - 9中,扩展的网络前缀(包括I P网络地址和子网地址)用黑体表示。子网地址用斜黑 体表示。主机地址用正常字体表示,用一个减号和网络前缀分隔开。这样容易明白一个基本 的I P地址如何被分成子网。 36使用第二部分命名和寻址 下载 表4-9 子网形成 网号# 二进制地址十进制地址 基11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1. 0 0 0 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 0 子网0 11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1 .0 0 0- 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 0 子网1 11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1 .0 0 1- 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 3 2 子网2 11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1 .0 1 0- 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 6 4 子网3 11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1 .0 11- 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 9 6 子网4 11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1 .1 0 0- 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 1 2 8 子网5 11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1 .1 0 1- 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 1 6 0 子网6 11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1 .11 0- 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 1 9 2 子网7 11 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 1 . 0 11111 0 1 .111- 0 0 0 0 0 1 9 3 . 1 6 8 . 1 2 5 . 2 2 4 每一个子网号用最后一个8位位组的前三位定义。十进制数为1 2 8、6 4和3 2。每一个子网 的起始I P地址(十进制)在第三列中列出。毫无疑问,这些数以3 2递增(子网号中最右边的位)。 注意子网0和7,虽然在数学上存在,即使在路由器上定义了,在正常环境下也不能使 用,它们的子网地址分别是0 0 0和111。包含所有0或1的地址应视为保留地址不能用作 特定子网地址。全0的地址(无论有少0)保留为识别子网自身,全1的子网地址用于在 子网内的广播。 表4 - 9中的子网地址只是按子网地址域从小到大递增地表示。 每个子网内的主机应该按剩下5位递增的顺序定义。有3 2 种0 、1组合。具有I P 地址 1 9 3 . 1 6 8 . 1 2 5 . 1 9 3的设备是子网6中的第一个主机,剩下的主机地址最高到1 9 3 . 1 6 8 . 1 2 5 . 2 2 3。至 此,子网就被主机填满,不能再加入主机了。 4.2.2 可变长子网掩码(VLSM) 虽然分子网方法是对I P地址结构有价值的扩充,但是它还要受到一个基本的限制:整个 网络只能有一个子网掩码。因此,当用户选择了一个子网掩码(也就意味着每个子网内的主机 数确定了)之后,就不能支持不同尺寸的子网了。任何对更大尺寸子网的要求意味着必须改变 整个网络的子网掩码。毫无疑问,这将是复杂和耗时的工作。 1 9 8 7年针对这一问题提出了解决方法。I E T F发布了RFC 1009。这个文档规范了如何使 用多个子网掩码分子网。表面上,每个子网可以有不同的大小;否则,它们应该有相同的掩 码—它们的网络前缀应相同。因此,新的子网化技术称为V L S M。 V L S M使一个组织的I P地址空间被更有效的使用,使网络管理员能够按子网的特殊需要定 制子网掩码。为了说明这一点,假设一个I P基地址为1 7 2 . 1 6 . 9 . 0,这是一个B类地址。使用1 6 位的网络号。使用6位扩展网络前缀会得到2 2位的扩展网络前缀。从数学上讲,有6 2个可用的 子网地址,每个子网内有1 022个可用的主机地址。 这种子网化策略对需要超过3 0个子网和每个子网内超过5 0 0个主机的组织是合适的。但是, 如果这个组织由一个超过5 0 0个主机的稍大分部,和许多小的只有4 0~5 0个主机设备的分部组 成,那么,地址的大部分就被浪费了。每个组织即使不需要,也被分配一个有1 022个主机地 址的子网。小的分部大约浪费9 5 0个主机地址。因为子网化的网络只能用单一的掩码,且这个 掩码是预定义的固定长度,所以这种地址浪费就不可避免。 子网化是对于“有限地址快速耗尽”这一棘手问题的理想解决办法。使私有网络能够对 第4章IP网络中的名字和地址使用37 下载 主机地址部分重定义为子网和主机,将极大地减少I P地址的浪费。不幸的是,在现实世界中, 对子网的要求是不一样的,希望一个组织或网络把其分成相同大小的子部分很不现实。因此, 使用固定长度的子网掩码会导致子网内I P主机地址的浪费,这一点在前面的例子中已经看到。 注意扩展网络前缀的大小能用斜杠( /)后跟一个网络或子网位数的值表示。因此, 193.168.125.0/27标识一个C类地址,其中27位用于扩展网络前缀。 解决这个矛盾的方法是允许使用不同大小的子网掩码,对I P地址空间进行灵活的子网化。 使用前面的例子,网络管理员能把基地址切分成不同的子网掩码。少数的大组织可以继续使 用2 2位的扩展网络前缀。然而小的组织可以分给2 5或2 6位的扩展网络前缀, 2 5位的前缀能包 含1 2 6个主机子网,2 6位的前缀允许每个子网有6 2个主机,这种方法就是V L S M。 4.3 无类域前路由(CIDR) C I D R是对I P地址结构最新的扩充。它是随着9 0年代初I n t e r n e t的飞速发展带来的危机而产 生的。 早在1 9 9 2年,I E T F就针对I n t e r n e t的需要和使用开始考虑I n t e r n e t继续扩展的能力。主要考 虑: • 剩下未分配I P v 4地址的耗尽问题。B类地址的耗尽尤其严重。 • 随着I n t e r n e t的成长,路由表迅速扩大。 所有的迹象表明I n t e r n e t会快速发展且这种势头必将持续,因为更多的商业组织连到 I n t e r n e t上。实际上,I E T F的一些成员甚至预言了“毁灭之日”,是1 9 9 4年3月的某一天,这一 天被认为是B类地址耗尽的时间。缺少任何寻址机制, I n t e r n e t的可扩展性将受到削弱。更坏 的预测是: I n t e r n e t会在“毁灭之日”前路由表将大到使路由机制崩溃。 I n t e r n e t成为自己成功的牺牲品。I E T F决定为了避免I n t e r n e t的崩溃,制定了短期和长期的 解决方案。从长远考虑,惟一可靠的解决方案是开发全新的I P协议,这种协议应具有极大扩 充的地址空间结构。最后,这个方案被称为I P n g ( I P协议:下一代)或更正式一些称为I P版本 6 ( I P v 6 )。 更紧迫、短期的要求是减慢未分配地址的耗尽速度。答案是削除地址分类带来的低效率, 依靠更灵活的地址结构。其结果促成了C I D R计划。1 9 9 3年9月,C I D R计划在RFC 1517、1 5 1 8、 1 5 1 9和1 5 2 0中形成。C I D R的几个关键特性对挽救I P v 4地址空间的耗尽问题是非常有价值的。 这些特性包括: • 消除地址分类 • 强化的路由汇聚 • 超网化 这些革新对网络产生的效果是削除了基本分类的地址。基于分类的地址可能仍被使用, 但是无类地址(当然,它也有负面影响)更有效。 4.3.1 无类地址 数学上讲, I P v 4地址空间仍保留了大量可获得的地址。不幸的是,这些潜在地址的大部 分被浪费在已分配的地址块中,或称为已分配的有类地址中。消除类别并不需要从那些已分 配的地址空间中把浪费的地址恢复。但它能使剩下将被使用的地址被更有效地使用,表面上 38使用第二部分命名和寻址 下载 看来,这种努力会为I p v 6的开发赢得所需的时间。 4.3.2 强化路由汇聚 C I D R使I n t e r n e t路由器(任何符合C I D R规范的路由器)更有效地汇聚路由信息。换句话说, 路由表中一个表项能够表示许多网络地址空间。这就大大减小了在任何互联网络中所需路由 表的大小,能使网络具有更好的可扩展性。 在1 9 9 4~1 9 9 5年期间,C I D R在I n t e r n e t上被实现,在防止路由表扩大方面马上见效。如果 没有C I D R的实现,I n t e r n e t是否能继续成长将是很令人怀疑的。 4.3.3 超网化 C I D R的另一个优点是超网。超网化就是把一块连续的C类地址空间模拟成一个单一的更 大一些的地址空间。如果得到足够多的连续C类地址,就能够重新定义网络和主机识别域中位 数的分配情况,模拟一个B类地址。 设计超网化的目的是消除由于B类地址快速消耗所带来的压力,为其提供更灵活的方案。 以前基于分类的地址结构带来问题,主要是因为B类和C类地址的巨大差异。需要多于2 5 4个 主机的网络可以有两个选择,任何一个选择都不是所希望的,它们是: • 使用多个C类地址(在网络域之间进行必要的路由)。 • 上升到一个B类地址,有65 534个主机地址可用。 简单的方法是使用B类地址,虽然这种方法浪费了大量I P地址。 4.3.4 CIDR怎样工作 C I D R是传统地址分配策略的重大突破,它完全抛弃了有类地址,以前的有类地址用8位 表示一个A类网络号,1 6位表示一个B类网络号,2 4位表示一个C类网络号。C I D R用网络前缀 代替了这些类。前缀可以任意长度,而不仅仅是8位,1 6位或2 4位。这允许C I D R根据网络大 小分配网络地址空间,而不是在预定义的网络地址空间中作裁剪。 每一个C I D R网络地址和一个相关位的掩码一起广播,这个掩码识别了网络前缀的长度。 举例来说, 1 9 2 . 1 2 5 . 6 1 . 8 / 2 0标识一个C I D R地址,此地址有2 0位网络地址。I P地址可以是任何 有效的地址,不管那个地址以前是A类、B类还是C类。C I D R路由器看“ /”后的数以决定网 络号。因此,以前的C类地址1 9 2 . 1 2 5 . 6 1 . 8的网络号是1 9 2 . 1 2 5 . 6 1,主机号是8。一个C类地址。 最多可提供2 5 4个主机地址,使用C I D R地址,8位边界的结构限制就不存在了。为了更好地理 解它的工作,有必要把十进制数变成二进制数。 用二进制表示,网络地址部分是11 0 0 0 0 0 0 . 0 1111 0 1 . 0 0 1111 0 1。前面2 0位标识网络号,表 4 - 1 0例示了这个地址被网络号和主机号分割的情况。 表4-10 一个2 0位的C I D R网络号 网络号主机号 二进制地址11 0 0 0 0 0 0 . 11111 0 1 . 0 0 11 11 0 1 . 0 0 0 0 1 0 0 0 注意网络和主机部分的地址分割落在第三个8位位组的中间,没有分配给网络号的位用 于标识主机,因此一个有2 0位网络前缀的I P v 4地址剩下1 2位用于主机识别。数学上讲,可翻 第4章IP网络中的名字和地址使用39 下载 译4 094个可用的主机地址,因为没有一个最左预置的位(以前用于分类之用),实际上整个地 址范围可用作C I D R网络。因此,一个2 0位的网络前缀能分配一个以前保留给A类或B或C类 网络的值。 4.3.5 公共地址空间 假如用户的广域网没有和I n t e r n e t或任何其他网络互联,那么互联地址可以任意选择。通 常,任意选择互联网络地址是短视的和不负责任的行为。 1 9 9 3年RFC 1597发布,提出了一个解决冲突的计划。 4.3.6 RFC 1597和1918 1 9 9 6年9月R F C 1 9 1 8发布,R F C 1 5 9 7作废。然而,新的R F C只对以前的规范作了很小的改 动。最重要的改动是抛弃了A、B、C类。相反,R F C 1 9 1 8提出使用新的C I D R寻址。如上一节 所述, C I D R不使用基于分类的地址。相反,保留作网络号的位由跟在斜杠( / )后的位数标识。 因此,一个A类地址1 0标识为1 0 / 1 8,因为只有8位用于识别网络号。更有意义的是与以前分类 地址中主机地址为8位的整数倍表示不同, C I D R允许主机地址在任何位边界。 • 只有三个网络地址范围保留为内部网络使用。这三个范围分别包括在I P v 4的A、B、C类 地址内,它们是: 1 0 . 0 . 0 . 0 - 1 0 . 2 5 5 . 2 5 5 . 2 5 5 1 7 2 . 1 6 . 0 . 0 - 1 7 2 . 3 1 . 2 5 5 . 2 5 5 1 9 2 . 1 6 8 . 0 . 0 - 1 9 2 . 1 6 8 . 2 5 5 . 2 5 5 这些范围由I A N A保留作私有网使用,R F C 1 5 9 7的一个规定是不能用这些地址访问I n t e r n e t。 使用这些地址范围的公司将来会发现要访问I n t e r n e t时将面临艰难的选择。它们应该对其所有 设备重新编号,和I A N A保持一致,或者使用代理服务器或网络地址转译器(network address t r a n s l a t o r, N AT )作为I n t r a n e t与I n t e r n e t的中介。使用这样的设备可以使这些公司保持和I n t e r n e t 上的地址不互相冲突。 假如用户选择R F C 1 5 9 7的保留地址作为I n t r a n e t的实现,就必须考虑这个决定的长期影响。 随着时间的推移,用户可能需要通过E x t r a n e t或I n t e r n e t和公司的其他网络互联。无论哪种情况, 都不能保证组成地址的惟一性。 最后,如果实现RFC 1918为私有网保留的地址,就必须保证私有网络内每个设备地址的 惟一性,地址不必全局惟一,但必须局部惟一。 4.4 小结 很好地理解I P地址结构是理解使用I P互联网络的前提条件,本章介绍的基础知识能让读 者更好地理解用I P互联网络的机制。本章列出的结构设备,包括C I D R、子网掩码和V L S M, 正被广泛使用,不能理解它们将削弱支持和设计互联网络的能力。 在本部分的后续章中,将对I P网的命名和寻址的其他方面作进一步讨论。这些方面包括 I P地址如何与局域网的硬件地址相联系,以及用户友好的名字如何解析成I P地址等。 40使用第二部分命名和寻址 下载转载地址:http://mdpoj.baihongyu.com/