it-swarm.cn

CIDR假人

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

46
Bob

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。

78
jj33

每个八位字节价值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

希望这足够清楚

8
sclarson

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

6
dbasnett

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

4
hayalci

相反,我认为最好完全理解[〜#〜] cidr [〜#〜]并能够在大脑中进行计算。 ..但有时您想仔细检查一下计算结果。我喜欢使用PHP子网计算器http://share-foo.com/ SubnetCalc.php

alt text

2
l0c0b0x

如果只需要桌面参考,则另一个好的文档是RFC 1878- IPv4的可变长度子网表

1
Gavin McTaggart