无类别域间路由(,簡稱CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。
在域名系统出现之后的第一个十年里,基于分类网络进行地址分配和路由IP数据包的设计就已明显显得可扩充性不足(参见RFC 1517)。为了解决这个问题,互联网工程工作小组在1993年发布了一新系列的标准——RFC 1518和RFC 1519——以定义新的分配IP地址块和路由IPv4数据包的方法。
无类别域间路由是基于可变长子网掩码(VLSM)来进行任意长度的前缀的分配的。在RFC 950(1985)中有关于可变长子网掩码的说明。CIDR包括:
- 指定任意长度的前缀的可变长子网掩码技术。遵从CIDR规则的地址有一个后缀说明前缀的位数,例如:192.168.0.0/16。这使得对日益缺乏的IPv4地址的使用更加有效。
- 将多个连续的前缀聚合成;在互联网中,只要有可能,就显示为一个聚合的网络,因此在总体上可以减少路由表的表项数目。聚合使得互联网的路由表不用分为多级,并通过VLSM逆转“划分子网”的过程。
- 根据机构的实际需要和短期预期需要而不是分类网络中所限定的过大或过小的地址块来管理IP地址的分配的过程。
历史背景
IP地址最初被描述为包含两部分:网络地址和主机地址。这种区分用於IP网络之間的流量路由。
在历史上,IP地址空间被分为三个分类网络,这些类别有着固定长度的网络地址。一個网络的类别以及网络地址,还有该网络上的主机数目都可以从地址的最高位得出。由於分类路由协议不指定子网的掩码或前缀长度,路由器必须使用路由通告中的地址类别去得出子网掩码以建立路由表。
在分类网络中,IP地址的分配把IP地址的32位按每8位为一段分开。这使得前缀必须为8,16或者24位。因此,可分配的最小的地址块有256(24位前缀,8位主机地址,28=256)个地址,而这对大多数企业来说太少了。大一点的地址块包含65536(16位前缀,16位主机,216=65536)个地址,而这对大公司来说都太多了。这导致不能充分使用IP地址和在路由上的不便,因为大量的需要单独路由的小型网络(C类网络)因在地域上分得很开而很难进行聚合路由,于是给路由设备增加了很多负担。
随着原为实验性的TCP/IP网络在80年代转变为互联网,对更灵活的寻址方法的需求日益迫切。这就导致了子网和CIDR的相继发展。因为原来的类别已被忽略,所以现在的系统被叫做无类别路由。它为当今的路由协议所支持,例如RIP-2,EIGRP,IS-IS和OSPF等,而相对的,原来的系统被叫做分类路由。
1993年,網際網路工程任務組發布了一套新的標準和,以定義分配IP位址區塊和路由IPv4資料包的新原則。更新版本於2006年發佈。
CIDR块
CIDR主要是一个按位的、基于前缀的,用于解释IP地址的标准。它通过把多个地址块组合到一个路由表表项而使得路由更加方便。这些地址块叫做CIDR地址块、CIDR块、CIDR区块或IP段。当用二进制表示这些地址时,它们有着在开头部分的一系列相同的位。IPv4的CIDR地址块的表示方法和IPv4地址的表示方法是相似的:由四部分组成的点分十进制地址,后跟一个斜线,最后是范围在0到32之间的一个数字:A.B.C.D/N。点分十进制的部分和IPv4地址一样是一个被分成四个八位位组的32位二进制数。斜線后面的数字就是前缀长度,也就是从左到右,被地址块裡的地址所共享的位的数目。当只需说明大概时,十进制部分有时会被省略,因此,/20就表示一个前缀长度是20的CIDR地址块。如果一个IP地址的前N位与一个CIDR地址块的前缀是相同的话,那么就说这个地址属于这个CIDR地址块,也可以说是与CIDR地址块的前缀匹配。所以,要理解CIDR,就要把地址写成二进制的形式。因为IPv4地址的长度总是32位,N位长的CIDR前缀就意味着地址裡前N位匹配,后32-N位不匹配。这些位有2^{(32-N)}种不同的组合,即2^{(32-N)}个IPv4地址与CIDR地址块的前缀匹配。前缀越短就能匹配越多的地址,越长就匹配得越少。一个地址可能与多个长度不同的CIDR前缀匹配。CIDR也用在IPv6中。因为位数的非常多,所以在IPv6中,前缀长度的范围是从0到128。这里也用同样的方法来表示一个地址:前缀写作一个IPv6的地址,後跟一个斜線,最后是前缀的位数。
CIDR块的分配
互联网地址指派机构(IANA)向区域互联网注册管理机构(RIRs)分配数量多,前缀短的CIDR地址块。例如,包含有一千六百多万个地址的地址块由RIPE NCC(欧洲的RIR)管理。这些RIR各自负责管理一个单一区域(例如欧洲或者北美),然后它们把这些地址块分成小一些的地址块再分配给公众。这个细分的操作可能会由不同层次的团体进行多次。大型网络服务供应商(ISP)一般会从RIR申请CIDR地址块,然后再向根据它们客户的网络大小而分配更小的地址块。互联网工程工作小组鼓励由单一ISP服务的网络直接向ISP申请地址。而由多个ISP提供服务的,则经常会向适当的RIR申请独立的CIDR地址块。
例如,在90年代末,IP地址是被[http://www.freesoft.org/ www.freesoft.org] 使用的。后来,分配发生了变化。,这个包含两百万地址的块被ARIN(北美的RIR)分配给了。MCI又将分配给了从MCI租用互联网连接的Automation Research Systems。ARS则用了这个地址块,其中就包含这个地址。这些CIDR前缀会在不同的地方使用。在MCI的网络之外,这个前缀会用于路由MCI的数据流。这些数据流不仅会去到,也会去到其他那些前11位相同的近两百万的地址裡。在MCI的网络裡,则会被用于路由到属于ARS租用的连接。最后,只有在ARS自己的网络内这个前缀才会被使用。
子网掩码
可变长子网掩码(VLSM)和CIDR並非相同的概念。1985年8月,RFC 950首次提及VLSM,當時仍然採用分類網絡。最早期的網絡是「兩層架構」,頂層是互聯網整體,底層是個別網絡。VLSM容許企業自行建立子網,擴展為「三層架構」。
子网掩码把前缀编成一种与IP地址相似的形式的掩码。網路遮罩在中曾允許指定非連續的位元,直到
创建了一个例外,將网络僅有的2個地址直接分配到2台主機,以供点对点链接使用。地址(单主机网络)必须通过明确的路由规则访问,因为在这种网络中没有网关的空间。
在大于或的子网中,可用的主机地址数目通常减少2个,即保留作为广播地址的最大地址和标识网络本身的最小地址。
最初,IETF在中提出建议,所有终端站点都应得到一个地址分配。但对实际需要和做法的批评和重新评价导致在中提出了更灵活的分配建议,即建议一些站点的分配要小得多,例如用于家庭网络的块。
不同类型的网络线路可能需要不同的子网大小。子网掩码将网络标识符前缀的位数与接口标识符的位数分开。如果选择较小的前缀,所覆盖的网络数量就会减少,但每个网络中的地址会变的更多。
2001:0db8:0123:4567:89ab:cdef:1234:5678
|||| |||| |||| |||| |||| |||| |||| ||||
|||| |||| |||| |||| |||| |||| |||| |||128 单端口和回环
|||| |||| |||| |||| |||| |||| |||| |||127 路由器间点对点链接
|||| |||| |||| |||| |||| |||| |||| ||124
|||| |||| |||| |||| |||| |||| |||| |120
|||| |||| |||| |||| |||| |||| |||| 116
|||| |||| |||| |||| |||| |||| |||112
|||| |||| |||| |||| |||| |||| ||108
|||| |||| |||| |||| |||| |||| |104
|||| |||| |||| |||| |||| |||| 100
|||| |||| |||| |||| |||| |||96
|||| |||| |||| |||| |||| ||92
|||| |||| |||| |||| |||| |88
|||| |||| |||| |||| |||| 84
|||| |||| |||| |||| |||80
|||| |||| |||| |||| ||76
|||| |||| |||| |||| |72
|||| |||| |||| |||| 68
|||| |||| |||| |||64 单个LAN;SLAAC的默认前缀大小
|||| |||| |||| ||60 非常有限的6rd部署(/60 = 16 /64块)
|||| |||| |||| |56 最小的端口分配
|8
4
參見
- 網際網路協議套組
- 可變長度子網絡遮罩
参考文献
外部链接
- RFC 1518 - An Architecture for IP Address Allocation with CIDR
- RFC 4632 - Classless Inter-domain Routing (CIDR): The Internet Address Assignment and
评论 (0)