category
“CIDR”重定向到此处。有关其他用途,请参阅CIDR(消除歧义)。
无类别域间路由是一种为IP路由分配IP地址的方法。互联网工程任务组于1993年引入CIDR,以取代以前在互联网上的经典网络寻址架构。其目标是减缓互联网路由器上路由表的增长,并帮助减缓IPv4地址的快速耗尽。[1][2]
IP地址被描述为由地址中的两组比特组成:最高有效比特是网络前缀,它标识整个网络或子网,最低有效集形成主机标识符,它指定网络上主机的特定接口。这种划分被用作IP网络之间流量路由和地址分配策略的基础。
尽管IPv4的分类网络设计将网络前缀大小定为一个或多个8位组,从而产生A类、B类或C类地址的块,但在CIDR下,地址空间在任何地址位边界上分配给互联网服务提供商和最终用户。然而,在IPv6中,接口标识符按照惯例具有64位的固定大小,并且较小的子网从不分配给最终用户。
CIDR基于可变长度子网掩码(VLSM),其中网络前缀具有可变长度(与之前的类网络设计的固定长度前缀相反)。这样做的主要好处是,它可以更好地控制分配给组织的子网的大小,从而减缓IPv4地址因分配比所需更大的子网而耗尽的速度。CIDR产生了一种新的书写IP地址的方式,称为CIDR表示法,其中IP地址后面跟着一个后缀,表示前缀的位数。CIDR表示法的一些示例是IPv4的地址192.0.2/24和IPv6的地址2001:db8::/32。具有连续前缀的地址块可以被聚合为超网,从而减少全局路由表中的条目数量。
背景
每个IP地址由一个网络前缀和一个主机标识符组成。在IPv4的分类网络架构中,32位IP地址的三个最高有效位定义了单播网络的网络前缀的大小,并确定了网络类别A、B或C。[3]
Class |
Most-significant bits |
Network prefix size (bits) |
Host identifier size (bits) |
Address range |
---|---|---|---|---|
A | 0 | 8 | 24 | 0.0.0.0–127.255.255.255 |
B | 10 | 16 | 16 | 128.0.0.0–191.255.255.255 |
C | 110 | 24 | 8 | 192.0.0.0–223.255.255.255 |
D(multicast) E(reserved) |
1110 1111 |
– | – | 224.0.0.0–255.255.255.255 |
该系统的优点在于,可以在没有任何进一步信息的情况下为任何IP地址确定网络前缀。缺点是,对于大多数组织来说,网络通常太大或太小,无法使用,因为只有三种尺寸可用。最小的分配和路由块包含28=256个地址,比个人或部门网络所需的地址大,但对大多数企业来说太小了。下一个较大的块包含216=65536个地址,太大了,即使是大型组织也无法有效使用。但对于需要超过65536个地址的网络用户来说,唯一的其他大小(224个)提供了太多,超过1600万个。这导致了地址使用的低效率和路由的低效率,因为它需要大量分配的具有单独路由公告的C类网络,地理位置分散,几乎没有路由聚合的机会。
在域名系统(DNS)发明后的十年内,人们发现分类网络方法是不可扩展的。[4] 这导致了子网和CIDR的发展。以前基于最高有效地址位的有意义的类区分被放弃了,新系统被描述为无类,而旧系统后来被称为有类。路由协议被修改为不仅携带IP地址,还携带其子网掩码。实施CIDR需要对互联网上的每一台主机和路由器进行小规模的重新编程——在互联网进入快速增长时期时,这是一项不小的壮举。1993年,互联网工程任务组发布了一组新的标准,RFC 1518和RFC 1519,以定义分配IP地址块和路由IPv4数据包的新原则。更新版本RFC 4632于2006年发布。[5]
经过一段时间对各种替代方案的实验,无类别域间路由是基于可变长度子网掩码(VLSM)的,它允许将每个网络划分为两种大小的不同功率的子网络,从而可以根据本地需求适当调整每个子网络的大小。RFC 950中提到了可变长度子网掩码作为一种替代方案。[6]对地址进行分组以进行公共操作的技术基于Carl Herbert Rokitansky首次提出的集群寻址概念。[7][8]
CIDR表示法
CIDR表示法是IP地址及其相关网络掩码的紧凑表示。这种记谱法是由菲尔·卡恩在20世纪80年代发明的。[9] [10]CIDR表示法指定IP地址、斜线('/')字符和十进制数。十进制数是网络掩码中连续前导1位(从左到右)的计数。每个1比特表示地址范围的一个比特,该比特必须与给定的IP地址保持相同。CIDR表示法中的IP地址总是根据IPv4或IPv6的标准来表示。
该地址可以表示特定的接口地址(包括主机标识符,例如10.0.0.1/8),或者它可以是整个网络的起始地址(使用主机标识符0,如10.0.0.0/8或其等效10/8)。CIDR表示法甚至可以在根本没有IP地址的情况下使用,例如,当将/24作为具有24位前缀和8位主机号的IPv4网络的通用描述时。
例如
- 198.51.100.14/24表示IPv4地址198.51.10.14及其相关联的网络前缀198.51.100.0,或者等效地,其子网掩码255.255.255.0,其具有24个前导1比特。
- IPv4块198.51.100.0/22表示从198.51.100.0到198.51.103.255的1024个IPv4地址。
- IPv6块2001:db8::/48表示从2001:db8:0:0:0:0:0:0到2001:db8:00的IPv6地址块。
-
::1/128表示IPv6环回地址。它的前缀长度是128,这是地址中的位数。
在IPv4中,CIDR表示法只有在该方法实现后才被广泛使用,该方法使用斜线后的点十进制子网掩码规范进行了记录,例如192.24.12.0/255.25.25.0[2]将网络前缀宽度描述为单个数字(192.24.120.0/22)更易于网络管理员进行概念化和计算。它逐渐被纳入后来的标准文件[11][12]和网络配置接口中。
网络的地址数量可以计算为2地址长度−前缀长度,其中IPv6的地址长度为128,IPv4的地址长度是32。例如,在IPv4中,前缀长度/29给出:232−29=23=8个地址。
子网掩码
子网掩码是一种位掩码,它以四点符号对与IPv4地址或网络相关的前缀长度进行编码:32位,从等于前缀长度的1位开始,以0位结束,并以四部分点式十进制格式进行编码:255.255.255.0。子网掩码编码的信息与前缀长度相同,但早于CIDR的出现。在CIDR表示法中,前缀位总是连续的。RFC 950[6]允许子网掩码指定非连续位,直到RFC 4632[5]: 第5.1节 声明掩码必须保持连续。给定这个约束条件,子网掩码和CIDR表示法提供完全相同的功能。
CIDR块
CIDR主要是一种用于表示IP地址及其路由特性的基于前缀的比特标准。它允许将地址块分组为单个路由表条目,从而方便了路由。这些组,通常称为CIDR块,在其IP地址的二进制表示中共享一个初始比特序列。IPv4 CIDR块使用与IPv4地址类似的语法进行识别:点式十进制地址,后面跟着斜线,然后是0到32之间的数字,即a.b.c.d/n。点式十进制部分是IPv4地址。斜杠后面的数字是前缀长度,即共享初始位的数量,从地址的最高有效位开始计数。当只强调网络的大小时,通常会省略注释的地址部分。因此,/20块是具有未指定的20比特前缀的CIDR块。
IP地址是CIDR块的一部分,并且如果地址的初始n位和CIDR前缀相同,则称其与CIDR前缀匹配。IPv4地址是32位,因此n位CIDR前缀会使32−n位不匹配,这意味着232−n个IPv4地址与给定的n位CIDR前缀匹配。较短的CIDR前缀与更多的地址匹配,而较长的前缀与更少的地址匹配。在重叠CIDR块的情况下,一个地址可以匹配不同长度的多个CIDR前缀。
CIDR也用于IPv6地址,语法语义相同。由于地址中的位数较多,前缀长度可以在0到128之间。然而,按照惯例,广播MAC层网络上的子网总是具有64位主机标识符。[13] 出于安全和策略原因,较大的前缀(/127)仅用于路由器之间的一些点对点链路。[14]
CIDR块的分配
互联网号码分配机构(IANA)向区域互联网登记处(RIR)发布大的、短前缀的CIDR块。然而,a/8(超过1600万个地址)是IANA将分配的最大块。例如,62.0.0.0/8由欧洲RIR RIPE NCC管理。每个RIR负责一个单一的、大的地理区域,如欧洲或北美,对这些块进行细分,并将子网分配给本地互联网注册中心(LIR)。类似的细分可以在较低级别的授权中重复多次。最终用户网络接收的子网大小根据其预计的短期需求而定。IETF建议鼓励由单个ISP服务的网络直接从其ISP获得IP地址空间。另一方面,由多个ISP服务的网络可以直接从适当的RIR获得独立于提供商的地址空间。
例如,在20世纪90年代末,www.freesoft.org使用了IP地址208.130.29.33(自重新分配后)。对该地址的分析确定了三个CIDR前缀。208.128.0.0/11,一个包含200多万个地址的大型CIDR块,已由ARIN(北美RIR)分配给MCI。弗吉尼亚VAR自动化研究系统公司(ARS)从MCI租赁了一个互联网连接,并被分配到208.130.28.0/22块,能够寻址1000多个设备。ARS的公共访问服务器使用了/24块,其中208.130.29.33是其中之一。所有这些CIDR前缀都将在网络中的不同位置使用。在MCI的网络之外,208.128.0.0/11前缀将用于定向到MCI流量,不仅针对208.130.29.33,而且针对大约200万个具有相同初始11位的IP地址中的任何一个。在MCI的网络中,208.130.28.0/22将变得可见,将业务引导到为ARS服务的租赁线路。只有在ARS公司网络中才会使用208.130.29.0/24前缀。
IPv4 CIDR块
Address format |
Difference to last address |
Mask | Addresses | Relative to class A, B, C |
Restrictions on a, b, c and d (0..255 unless noted) |
Typical use | |
---|---|---|---|---|---|---|---|
Decimal | 2n | ||||||
a.b.c.d/32 | +0.0.0.0 | 255.255.255.255 | 1 | 20 | 1⁄256 C | Host route | |
a.b.c.d/31 | +0.0.0.1 | 255.255.255.254 | 2 | 21 | 1⁄128 C | d = 0 ... (2n) ... 254 |
Point-to-point |
a.b.c.d/30 | +0.0.0.3 | 255.255.255.252 | 4 | 22 | 1⁄64 C | d = 0 ... (4n) ... 252 |
Point-to-point links (glue network) |
a.b.c.d/29 | +0.0.0.7 | 255.255.255.248 | 8 | 23 | 1⁄32 C | d = 0 ... (8n) ... 248 |
Smallest multi-host network |
a.b.c.d/28 | +0.0.0.15 | 255.255.255.240 | 16 | 24 | 1⁄16 C | d = 0 ... (16n) ... 240 | Small LAN |
a.b.c.d/27 | +0.0.0.31 | 255.255.255.224 | 32 | 25 | 1⁄8 C | d = 0 ... (32n) ... 224 | |
a.b.c.d/26 | +0.0.0.63 | 255.255.255.192 | 64 | 26 | 1⁄4 C | d = 0, 64, 128, 192 | |
a.b.c.d/25 | +0.0.0.127 | 255.255.255.128 | 128 | 27 | 1⁄2 C | d = 0, 128 | Large LAN |
a.b.c.0/24 | +0.0.0.255 | 255.255.255.0 | 256 | 28 | 1 C | ||
a.b.c.0/23 | +0.0.1.255 | 255.255.254.0 | 512 | 29 | 2 C | c = 0 ... (2n) ... 254 | |
a.b.c.0/22 | +0.0.3.255 | 255.255.252.0 | 1,024 | 210 | 4 C | c = 0 ... (4n) ... 252 | Small business |
a.b.c.0/21 | +0.0.7.255 | 255.255.248.0 | 2,048 | 211 | 8 C | c = 0 ... (8n) ... 248 |
Small ISP/ large business |
a.b.c.0/20 | +0.0.15.255 | 255.255.240.0 | 4,096 | 212 | 16 C | c = 0 ... (16n) ... 240 | |
a.b.c.0/19 | +0.0.31.255 | 255.255.224.0 | 8,192 | 213 | 32 C | c = 0 ... (32n) ... 224 |
ISP/ large business |
a.b.c.0/18 | +0.0.63.255 | 255.255.192.0 | 16,384 | 214 | 64 C | c = 0, 64, 128, 192 | |
a.b.c.0/17 | +0.0.127.255 | 255.255.128.0 | 32,768 | 215 | 128 C | c = 0, 128 | |
a.b.0.0/16 | +0.0.255.255 | 255.255.0.0 | 65,536 | 216 | 256 C = B | ||
a.b.0.0/15 | +0.1.255.255 | 255.254.0.0 | 131,072 | 217 | 2 B | b = 0 ... (2n) ... 254 | |
a.b.0.0/14 | +0.3.255.255 | 255.252.0.0 | 262,144 | 218 | 4 B | b = 0 ... (4n) ... 252 | |
a.b.0.0/13 | +0.7.255.255 | 255.248.0.0 | 524,288 | 219 | 8 B | b = 0 ... (8n) ... 248 | |
a.b.0.0/12 | +0.15.255.255 | 255.240.0.0 | 1,048,576 | 220 | 16 B | b = 0 ... (16n) ... 240 | |
a.b.0.0/11 | +0.31.255.255 | 255.224.0.0 | 2,097,152 | 221 | 32 B | b = 0 ... (32n) ... 224 | |
a.b.0.0/10 | +0.63.255.255 | 255.192.0.0 | 4,194,304 | 222 | 64 B | b = 0, 64, 128, 192 | |
a.b.0.0/9 | +0.127.255.255 | 255.128.0.0 | 8,388,608 | 223 | 128 B | b = 0, 128 | |
a.0.0.0/8 | +0.255.255.255 | 255.0.0.0 | 16,777,216 | 224 | 256 B = A |
Largest IANA block allocation |
|
a.0.0.0/7 | +1.255.255.255 | 254.0.0.0 | 33,554,432 | 225 | 2 A | a = 0 ... (2n) ... 254 | |
a.0.0.0/6 | +3.255.255.255 | 252.0.0.0 | 67,108,864 | 226 | 4 A | a = 0 ... (4n) ... 252 | |
a.0.0.0/5 | +7.255.255.255 | 248.0.0.0 | 134,217,728 | 227 | 8 A | a = 0 ... (8n) ... 248 | |
a.0.0.0/4 | +15.255.255.255 | 240.0.0.0 | 268,435,456 | 228 | 16 A | a = 0 ... (16n) ... 240 | |
a.0.0.0/3 | +31.255.255.255 | 224.0.0.0 | 536,870,912 | 229 | 32 A | a = 0 ... (32n) ... 224 | |
a.0.0.0/2 | +63.255.255.255 | 192.0.0.0 | 1,073,741,824 | 230 | 64 A | a = 0, 64, 128, 192 | |
a.0.0.0/1 | +127.255.255.255 | 128.0.0.0 | 2,147,483,648 | 231 | 128 A | a = 0, 128 | |
0.0.0.0/0 | +255.255.255.255 | 0.0.0.0 | 4,294,967,296 | 232 | 256 A |
Entire IPv4 Internet, |
在常见用法中,子网中的第一个地址,即主机标识符中的全部二进制零,被保留用于指代网络本身,而最后一个地址,主机标识符中全部二进制一,被用作网络的广播地址;这将主机可用的地址数量减少了2个。因此,主机标识符中有一个二进制数字的/31网络将不可用,因为这样的子网在减少后将不提供可用的主机地址。RFC 3021为“主机全一”和“主机全零”规则创建了一个例外,以使/31网络可用于点对点链路/32个地址(单主机网络)必须通过明确的路由规则访问,因为在这样的网络中没有网关的空间。
在大于/31或/32的路由子网中,可用主机地址的数量通常减少两个,即保留为广播地址的最大地址和标识网络本身的最小地址。[15][16]
IPv6 CIDR块
Prefix size | Number of equivalent subnets | Interface ID bits | ||
---|---|---|---|---|
/48 | /56 | /64 | ||
/24 | 16M | 4G | 1T | 104 |
/25 | 8M | 2G | 512G | 103 |
/26 | 4M | 1G | 256G | 102 |
/27 | 2M | 512M | 128G | 101 |
/28 | 1M | 256M | 64G | 100 |
/29 | 512K | 128M | 32G | 99 |
/30 | 256K | 64M | 16G | 98 |
/31 | 128K | 32M | 8G | 97 |
/32 | 64K | 16M | 4G | 96 |
/33 | 32K | 8M | 2G | 95 |
/34 | 16K | 4M | 1G | 94 |
/35 | 8K | 2M | 512M | 93 |
/36 | 4K | 1M | 256M | 92 |
/37 | 2K | 512K | 128M | 91 |
/38 | 1K | 256K | 64M | 90 |
/39 | 512 | 128K | 32M | 89 |
/40 | 256 | 64K | 16M | 88 |
/41 | 128 | 32K | 8M | 87 |
/42 | 64 | 16K | 4M | 86 |
/43 | 32 | 8K | 2M | 85 |
/44 | 16 | 4K | 1M | 84 |
/45 | 8 | 2K | 512K | 83 |
/46 | 4 | 1K | 256K | 82 |
/47 | 2 | 512 | 128K | 81 |
/48 | 1 | 256 | 64K | 80 |
/49 | 128 | 32K | 79 | |
/50 | 64 | 16K | 78 | |
/51 | 32 | 8K | 77 | |
/52 | 16 | 4K | 76 | |
/53 | 8 | 2K | 75 | |
/54 | 4 | 1K | 74 | |
/55 | 2 | 512 | 73 | |
/56 | 1 | 256 | 72 | |
/57 | 128 | 71 | ||
/58 | 64 | 70 | ||
/59 | 32 | 69 | ||
/60 | 16 | 68 | ||
/61 | 8 | 67 | ||
/62 | 4 | 66 | ||
/63 | 2 | 65 | ||
/64 | 1 | 64 | ||
K = 1,024 | ||||
M = 1,048,576 | ||||
G = 1,073,741,824 | ||||
T = 1,099,511,627,776 |
IPv6的大地址大小允许全球路由摘要,并保证每个站点都有足够的地址池。IPv6网络的标准子网大小是a/64块,这是无状态地址自动配置操作所必需的。[17] 起初,IETF在RFC 3177中建议将所有终端站点接收/48地址分配作为最佳实践[18],但对实际需求和实践的批评和重新评估导致了RFC 6177[19]中更灵活的分配建议,建议对一些站点进行明显较小的分配,如住宅网络的/56块。
此IPv6子网参考列出了IPv6子网的大小。不同类型的网络链路可能需要不同的子网大小。[20] 子网掩码将网络标识符前缀的比特与接口标识符的比特分离。选择较小的前缀大小会导致覆盖的网络数量较少,但每个网络中的地址较多。[21]
数值解释
Topologically, the set of subnets described by CIDR represent a cover of the corresponding address space. The interval described by the notation numerically corresponds to addresses of the form (for IPv4) , where has the lower bits set to 0. (For IPv6 substitute 128.) For a fixed , the set of all subnets constitute a partition, that is a cover of non-overlapping sets. Increasing yields finer and finer subpartitions. Thus two subnets and are either disjoint or one is a subnet of the other.
前缀聚合
CIDR提供细粒度的路由前缀聚合。例如,如果它们的网络前缀的前20个比特匹配,则可以将16个连续/24网络聚合并作为单个/20路由表条目通告到更大的网络。这减少了必须公布的路线数量。
- 登录 发表评论
- 8 次浏览
Tags
最新内容
- 2 days 9 hours ago
- 2 days 11 hours ago
- 2 days 11 hours ago
- 5 days 3 hours ago
- 5 days 10 hours ago
- 5 days 11 hours ago
- 5 days 11 hours ago
- 5 days 11 hours ago
- 1 week 2 days ago
- 1 week 2 days ago