《IP路由协议疑难解析》一1.1 IP编址的概念-阿里云开发者社区

开发者社区> 云计算> 正文

《IP路由协议疑难解析》一1.1 IP编址的概念

简介:

本节书摘来自异步社区《IP路由协议疑难解析》一书中的第1章,第1.1节,作者 【美】Zaheer Aziz, CCIE #4127 , Johnson Liu, CCIE #2637 , Abe Martey, CCIE #2373 , Faraz Shamim, CCIE #4131,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.1 IP编址的概念

IP路由协议疑难解析
编址是IP协议的关键。在图1-1所示的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网络环境中排除IP路由协议故障是本书的主要内容。因此,本章只讨论IPv4编址结构及相关概念,但其中的大多数内容仍适用于IPv6。稍后几节将讨论下列与IPv4编址有关的主题:

IPv4地址类别;

私有IPv4地址空间;

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

无类别域间路由。

1.1.1 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地址。


29534bc598fc4baae8cc4f5754704aca4db9d07d

由表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。

image

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

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

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

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

1.1.2 IPv4私有地址空间

人们对IPv4单播地址空间的某些地址块进行了预留,并将其指定为私有地址。私有地址空间专为不与公网(Internet)相连的网络而预留。RFC 1918将下列地址块定义为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。

RFC 1700载有已预留及已分配(Internet相关)参数的通用信息,包括已预留的IP地址信息1。使用网络地址转换(Network Address Translation,NAT)技术,启用了IPv4私有地址空间的私有网络仍然可以连接到公网(Internet)。

1原文是“RFC 1700 provides general information on reserved or allocated parameters, including reserved addresses.”——译者注

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

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

IP子网划分是指把有类IP地址的某些主机位“并入”网络ID,从而在IP地址类别中引入了另一层级。这一经过扩展的网络ID称为子网号或IP子网。试举一例,可“借用”B类网络地址主机ID字段两字节中的一个,来创建出255个子网,用剩下的那个字节来表示每个子网的主机ID,如图1-3所示。

image

执行IP子网划分时,会对有待分配的有类网络的掩码进行调整,以反映出新创建子网的网络号和主机号。图1-4所示为划分B类地址时,新创建的子网及与之相对应的掩码。掩码中一连串的1和0分别表示网络位和主机位。通常,书写IP地址时,也可以用前缀长度表示法,即指明子网掩码中1的个数。比如,可把172.16.1.0 255.255.255.0写为172.16.1.0/24。

image

虽然有类编址方案支持子网划分,能够满足地址块之内的高效地址分配需求,但在有类网络环境中,要求所使用的子网掩码一致,这属于硬性规定。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实施子网划分。

image

1.1.4 无类别域间路由

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)。

image

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个不同的组织。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章