Answers:
CIDR(无类域间路由,发音为“ kidder”或“ cider”-在注释中添加您自己的本地变体!)是定义IP地址的网络部分的系统(通常人们将其视为子网掩码) 。它是“无类别的”,原因是它提供了一种比其基础类更灵活地分解IP网络的方法。
首次定义IP网络时,IP具有基于其二进制前缀的类:
Class Binary Prefix Range Network Bits
A 0* 0.0.0.0-127.255.255.255 8
B 10* 128.0.0.0-191.255.255.255 16
C 110* 192.0.0.0-223.255.255.255 24
D 1110* 224.0.0.0-239.255.255.255
E 1111* 240.0.0.0-255.255.255.255
(请注意,这是人们将/ 24称为“ C类”的来源,尽管严格来说这并不是真正的比较,因为C类需要具有特定的前缀)
这些二进制前缀用于路由大块IP空间。这是低效率的,因为这导致将大的块分配给不一定需要它们的组织,并且还因为只能以24位为增量分配C类,这意味着当将多个C类路由到时,路由表可能会不必要地变大相同的位置。
CIDR被定义为允许将可变长度子网掩码(VLSM)应用于网络。顾名思义,地址组或网络可以分为与它们所属的自然“类”没有直接关系的组。
VLSM的基本前提是提供网络中网络位数的计数。由于IPv4地址是32位整数,因此VLSM将始终在0到32之间(尽管我不确定在哪种情况下您可能具有0长度的掩码)。
在您的头脑中开始计算VLSM / CIDR的最简单方法是了解“自然的” 8位边界:
CIDR Dotted Quad
/8 255.0.0.0
/16 255.255.0.0
/24 255.255.255.0
/32 255.255.255.255
(顺便说一句,使用/ 32掩码是完全合法的,并且在ACL中相当普遍。这仅表示您引用的是单个IP)
一旦掌握了这些,就可以通过简单的二进制算法上下移动来获取主机数量。例如,如果/ 24具有256个IP(现在让我们离开网络和广播地址,那是另一个网络理论问题),则将子网增加一位(至/ 25)将使主机空间减少一位(至7),表示将有128个IP。
这是最后一个八位位组的表格。可以将该表移至任何八位字节,以获取点分四边形。
CIDR Dotted Quad
/24 255.255.255.0
/25 255.255.255.128
/26 255.255.255.192
/27 255.255.255.224
/28 255.255.255.240
/29 255.255.255.248
/30 255.255.255.252
/31 255.255.255.254
/32 255.255.255.255
作为将这些移位到另一个八位位组的一个示例,/ 18(即/ 26减去8位,因此移位了一个八位位组)将为255.255.192.0。
每个八位字节价值8。
因此,您可以快速缩小子网范围,然后只担心最后8位。
128, 192, 224, 240, 248, 252, 254, 255
+1 , +2 , +3 , +4 , +5 , +6 , +7 , +8
希望这足够清楚
一天(原文如此)晚了,希望不要缺一美元。CIDR是IPv4掩码中从最高有效位开始的连续一位的数目(32位)。
10000000 00000000 00000000 00000000其中1 =最高有效位
通用掩码是/ 8,/ 16,/ 24,它们都落在8位(八位位组)边界上。
11111111 00000000 00000000 00000000 = / 8 = 255.0.0.0
11111111 11111111 00000000 00000000 = / 16 = 255.255.0.0
11111111 11111111 11111111 00000000 = / 24 = 255.255.255.0
如果未对齐八位字节,这并不难,但是它确实需要一些简单的数学运算并了解八位字节是什么。
11111111 11111111 11100000 00000000 = / 19
掩码的前两个八位位组是255.255(/ 16小于/ 19)。最后一个八位位组是0(/ 19小于/ 24)。到目前为止,我们知道
11111111 11111111 11100000 00000000 = / 19 = 255.255.?.0
查看每个八位位组时,请记住它是一个8位值,0-255。
0 0 0 0 0 0 0 0
1
2 6 3 1
8 4 2 6 8 4 2 1
因此,第三个八位位组(?)11100000为128 + 64 + 32 =224。这意味着
11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0
手工计算非平凡网络非常容易出错。请尝试使用CIDR计算器。
ipcalc
并且sipcalc
是更好的选择,但是无论如何+1
相反,我认为完全理解CIDR并能够在您的大脑中进行计算是很好的……但是有时候您想仔细检查一下计算。我喜欢使用PHP子网计算器:http : //share-foo.com/SubnetCalc.php
如果只需要桌面参考,那么另一个不错的文档是RFC 1878- IPv4的可变长度子网表。