什么是CIDR

CIDR是Classless Inter-Domain Routing的缩写,它是一种用来替代传统的基于类的IP地址的方案。在一个IP地址中, 总共有32位(二进制表示), CIDR通过一个斜线和一个数字来表示网络的大小,例如192.168.1.0/24,其中192.168.1.0是网络地址,24表示网络地址占了IP地址的24位,也就是前三个数字。

在CIDR中,一个IP地址可以被分为“网络地址”和“主机地址”两部分。

  • 网络地址部分用于标识特定的网络。在同一个网络中,所有设备的网络地址部分都是相同的。

  • 主机地址部分用于标识网络中的特定设备。在同一个网络中,每个设备的主机地址都是唯一的。

前24位表示网络地址, 后8位表示主机地址, 所以192.168.1.0/24的网络地址是192.168.1.0, 表示的IP范围是192.168.1.0-192.168.1.255。通常来说,子网中的第一个地址都保留用于引用网络本身,而最后一个地址用作广播地址用于网络;实际可用于主机的地址数量减少2个。

这个子网的详细信息如下:

  • 子网掩码:255.255.255.0
  • 网络地址:192.168.1.0
  • 广播地址:192.168.1.255
  • 可用IP地址范围:192.168.1.1 - 192.168.1.254
  • 可用IP地址数量:254个

什么是子网掩码

子网掩码是一串二进制位,用于标识IP地址中的网络地址部分和主机地址部分。子网掩码中,网络部分的二进制位都是1,主机部分的二进制位都是0。例如,一个常见的子网掩码是255.255.255.0,它的二进制形式是11111111.11111111.11111111.00000000。

通过将IP地址和子网掩码进行逻辑AND运算,我们可以得到网络地址。例如,如果我们有一个IP地址192.168.1.100和子网掩码255.255.255.0,那么网络地址就是192.168.1.0。

子网掩码的作用是帮助路由器和其他网络设备确定哪些IP地址属于同一个网络。当一个数据包需要被发送到一个特定的IP地址时,路由器会使用子网掩码来决定这个IP地址是否在本地网络中。如果是,数据包就直接发送到目的地;如果不是,数据包就被发送到网络的默认网关,然后由默认网关路由到目的地。

详解CIDR

例如这个CIDR: 192.168.1.1/8

在CIDR表示法中,/后面的数字表示网络地址中的网络部分的位数。例如,/8表示网络地址的前8位是网络部分,后24位是主机部分。

/8表示子网掩码是255.0.0.0,在二进制中,255可以表示为11111111,0可以表示为00000000。所以,255.0.0.0在二进制中就是11111111 00000000 00000000 00000000。这就意味着前8位是网络地址,后24位是主机地址。所以,/8表示的子网掩码是255.0.0.0。

子网掩码是用来确定一个IP地址的哪些位标识网络地址,哪些位标识主机地址。子网掩码中的每一位都与IP地址中的对应位进行AND运算,结果就是网络地址。在AND运算中,只有两个输入都为1时,结果才为1。

255.  0.  0.  0 = 11111111.00000000.00000000.00000000
192.168.  1.  1 = 11000000.10101000.00000001.00000001
AND运算         = 11000000.00000000.00000000.00000000 (网络地址 = 192.0.0.0)

后24位表示主机地址, 所以192.168.1.0/8的网络地址是192.0.0.0, 表示的IP范围是192.0.0.0-192.255.255.255

示例

192.168.1.100/0
0.0.0.0-
255.255.255.255

192.168.1.100/8
192.0.0.0-
192.255.255.255

192.168.1.100/16
192.168.0.0-
192.168.255.255

192.168.1.100/24
192.168.1.0-
192.168.1.255

192.168.1.100/32
192.168.1.100

192.168.1.100/26
192.168.1.64-192.168.1.127
(遇到这种情况的时候较少, 一般是使用CIDR表示网段), 计算方法:
/26表示前26位是网络地址, 后6位是主机地址
子网掩码:  11111111.11111111.11111111.11000000
IP地址是:  11000000.10101000.00000001.01100100
网络地址是前26位, 
AND运算 = 11000000.10101000.00000001.01000000 = 192.168.1.64
而后6位主机地址表示的范围是: 2^6 = 64, 所以表示的的范围是从192.168.1.64开始到127的64个IP地址
注意CIDR的表示范围只能以主机地址的整数倍起始

192.168.1.254/31
192.168.1.254-192.168.1.255

测验

1. 问题一:CIDR表示法中的“/24”代表什么?这个数字24有什么特殊的意义?
A: /24表示前24位是网络地址, 后8位是主机地址, 总共有2的8次方256个IP地址范围
需要注意的是,这256个地址中,第一个地址(网络地址)和最后一个地址(广播地址)是不能分配给主机的,所以实际可用的IP地址是254个。
   
2. 问题二:在CIDR表示法中,如何解读"192.168.1.0/16"这个IP地址?这个地址代表的是一个单独的IP地址还是一个网络?
A: 代表一个网络, IP范围: 192.168.0.0 - 192.168.255.255

3. 问题三:在CIDR表示法中,"10.0.0.0/8"和"10.0.0.0/16"有什么区别?请解释。
A: 第一个CIDR表示前8位是网络地址, 后24位是主机地址, 有2的24次方个主机IP地址, IP地址范围是: 10.0.0.0 - 10.255.255.255
第二个CIDR表示前16位是网络地址, 后16位是主机地址, 有2的16次方个主机IP地址, IP地址范围是: 10.0.0.0 - 10.0.255.255

4. 问题四:请解释CIDR表示法如何帮助简化网络地址的表示以及管理?
A: CIDR通过一个斜线和一个数字来表示网络的大小, 斜线后面的数字是表示网络地址的位数, 这种表示法比传统的子网掩码更简化, 灵活, 直观

5. 问题五:在CIDR表示法中,"0.0.0.0/0"代表的是什么?这个地址在实际网络环境中有什么用途?
A: 0.0.0.0/0代表所有的IPv4地址, 可以在防火墙添加此规则禁止所有IP访问, 或者其他在需要匹配所有IPv4地址的时候使用

6. 问题六: 如何用CIDR表示从192.168.1.100开始到192.168.1.200的IP范围?
A: 无法使用一个CIDR精确表示这个范围, 可使用多个CIDR组合来表示这个范围:
192.168.1.64/26(包含从192.168.1.64到192.168.1.127的64个地址)和
192.168.1.128/25(包含从192.168.1.128到192.168.1.255的128个地址)
但是这些CIDR块会包含比192.168.1.100到192.168.1.200更多的IP地址, 如果想要精确的表示, 只能使用其他方法