CIDR假人


46

我了解什么是CIDR,以及CIDR的用途是什么,但是我仍然不知道如何计算它。有人可以举例说明“假人”类型吗?


3
另请参阅此问题以获取详尽的子网划分问题。
Zoredache

Answers:


78

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。


2
奇怪的是,我通常听到它发音为“苹果酒”
sclarson

我确定这是地区性/组织性的。我不确定是否听到有人称CIDR为“孩子”,但是我知道几年前当我进行LISP编程时,CDR函数被我的教授称为“孩子”,也许我是从那里
接下来的

就像其他数据一样:我只听过“苹果酒”,而我被告知CDR是“尿液”。我猜对每个人来说。:-)
路加福音

感谢SaveTheRbtz,我将B类结束范围更改为191.255.255.255,将C类开始范围更改为192.255.255.255。奇怪,我正确地使用了二进制前缀,并且记得做数学运算。非常感谢您发现这一点!
jj33

2
如果可以的话,我会给这个+10。这是对CIDR / VLSM的很好解释。
JamesBarnett 2011年

8

每个八位字节价值8。

  • 255.0.0.0 / 8
  • 255.255.0.0 / 16
  • 255.255.255.0 / 24
  • 255.255.255.255 / 32

因此,您可以快速缩小子网范围,然后只担心最后8位。

128, 192, 224, 240, 248, 252, 254, 255

+1  , +2 , +3 , +4 , +5 , +6 , +7 , +8
  • 255.128.0.0 = / 9
  • 255.192.0.0 = / 10
  • 255.224.0.0 = / 11
  • 255.240.0.0 = / 12
  • 255.248.0.0 = / 13
  • 255.252.0.0 = / 14
  • 255.254.0.0 = / 15

希望这足够清楚


6

一天(原文如此)晚了,希望不要缺一美元。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


4

手工计算非平凡网络非常容易出错。请尝试使用CIDR计算器


2
谁对此投了反对票?我完全同意,很容易错误计算出CIDR范围,尤其是在转换时,例如/ 23到255.255.254.0格式。我在Debian上使用'ipcalc'软件包来帮助我。
Mike Pountney

2
我认为ipcalc并且sipcalc是更好的选择,但是无论如何+1
SaveTheRbtz


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.