【IPv4】CIDR 无类别域间路由 | CIDR 的 IP 地址划分

本文介绍了无类别域间路由(CIDR)的概念,作为对传统分类编址的改进,CIDR通过在网络地址后添加前缀来表示子网掩码的位数,实现更灵活的IP地址管理和路由。CIDR允许对网络进行多层划分,并通过实例展示了如何进行IP地址的划分和计算。同时,文中提供了相关练习题以加深理解。
摘要由CSDN通过智能技术生成

IPv4 CIDR 无类别域间路由下的 IP 地址划分


提示


在阅读本文章前,建议先阅读目录中所指的其它相关文章。若读者对于 IPv4 的相关知识比较熟悉可以直接阅读本文。


一. 什么是无类别域间路由(CIDR)

无类别域间路由(Classless Inter-Domain Routing、CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。引用自百度百科

CIDR 的出现是为了替代颇具诟病的分类编址。在 CIDR 被采用之前, IP 地址的网络部分被限制为长度为 8、16 或 24 比特,这是一种被称为分类编址(classful addressing)的编址方案[1]。也就是将 IP 地址划分为 A、B、C、D、E 类的编址方案。

随着互联网的快速发展,分类编址方案出现了一些问题,例如扩展性差,存在地址浪费。为解决这些问题,且考虑到从 IPv4 到 IPv6 的过度。互联网工程工作小组在 1993 年发布了一新系列的标准—— RFC 1518 和 RFC 1519 ——以定义新的分配 IP 地址块和路由 IPv4 数据包的方法,也就是 无类别域间路由 CIDR 。


二. CIDR 的网络划分

在分类编址方案中,除了以固定大小位数的网络号将网络划分为 ABCDE 类,还有一个重要的划分网络手段就是通过子网掩码对 ABCDE 类 IP 再进行划分。而 CIDR 方案就是从该角度入手。接下来从一个案例出发,理解分类编址如何过渡到 CIDR 编址。

编址方案 IP 地址 子网表示 完整表示
分类编址202.119.100.202255.255.255.240202.119.100.202
255.255.255.240
CIDR 编址/28202.119.100.202/28

上表展示了对于一个 IP 地址的两种编址表示的区别。使用分类编址时,需要原 IP 地址与子网掩码配套使用,而 CIDR 编址则直接在 IP 地址后跟上了一个 “/24” 的前缀,该前缀表示的也正是子网掩码。CIDR 编址所做的,其实就是将子网掩码的位数作为前缀,添加在原 IP 地址的后面。(我也觉得很奇怪为什么这玩意叫前缀,不应该叫后缀吗)


子网掩码 255.255.255.240 化为二进制表示法时,前 28 位都为1(转换方式可参考文章),因此在 CIDR 编址时前缀的数字是 28,最终表示形式为 192.168.1.102/28

我们继续关注 CIDR 编址与分类编址的区别。在 192.168.1.102/28 中 28 直接表示子网掩码为 28 位,则该 IP 的划分情况如下。

CIDR 编址分类编址
十进制点分表示202.119.100.202/28202.119.100.202
255.255.255.240
二进制表示1100 0000 1010 1000 0000 0001 0110 01101100 0000 1010 1000 0000 00010110 0110

提示


  • 该颜色的 IP 位, 表示该位是 IP 的网络号对应的位
  • 该颜色的 IP 位,表示该位是 IP 的子网号对应的位
  • 该颜色的 IP 位,表示该位是 IP 的主机号对应的位

在分类编址中黄色的网络号是由其分类决定的,例如上述例子中的 IP 地址属于 C 类 IP,而 C 类 IP 的网络号是 24 位的。而绿色的是子网号,由子网掩码划分得出。最后蓝色的是子网号。而在 CIDR 编址时,已经不考虑分类,"/28" 的前缀表示子网掩码,直接将 IP 的前 28 位标识为网络号,剩余的位为主机号。这样 CIDR 就实现了对地址的划分。

经过上述描述,大致对 CIDR 的编址逻辑进行了掌握。接下来强调几点 CIDR 编址的知识点。

1. IP 相同,子网掩码不同的 IP 地址不是同一个地址

202.119.100.202/28202.119.100.202/24 IP 相同,但是子网掩码不同,因此这两个地址不是同一个地址。
202.119.100.202/28 是在 202.119.100.192/28 网络下的主机地址。
202.119.100.202/24 是在 202.119.100.0/24 下的主机地址。

202.119.100.192/28202.119.100.0/24 也被可以被称为 CIDR块,相当于一个网络,因为该地址除了其标识的前 28 位网络号外的主机号全为 0,代表整个网络。

十进制二进制
网络 IP202.119.100.192/281100 0000 1010 1000 0000 0001 0110 0000
主机 IP202.119.100.202/281100 0000 1010 1000 0000 0001 0110 0110
网络 IP202.119.100.0/241100 0000 1010 1000 0000 0001 0000 0000
主机 IP202.119.100.202/241100 0000 1010 1000 0000 0001 0110 0110

2. 使用 CIDR 可以对网络进行多层划分

我们查看以下例子。在该例中划分了三层网络(白色的网络,绿色的网络,蓝色网络),其呈现层次关系。其中黄色的是主机 IP。不难发现,随着网络层次的划分,子网掩码的值越来越大,白色的网络层次为 16,绿色的网络层次为 20,蓝色的网络层次为24。子网掩码递增的大小决定了一个高层网络能够划分多少下一层网络。

例如,从白色网络层次的 16,到绿色网络层次的 20,子网掩码递增了 4,这意味着在白色的网络层次地址中有 4 位用来划分子网络。那我们可以计算出,在白色网络层次中可以划分 2 4 2^4 24 个子网络(该计算与分类编址中使用子网掩码的计算相同,但是在 CIDR 编码中不用考虑子网号全为 0 或 1 的情况,因此不需要减 2)。

在这里插入图片描述


三. CIDR 练习题

1. 网络 120.26.0.0/18 下可以划分多少个 IP 配置给主机

可知网络号 18 位,则主机号有 32 − 18 = 14 32 -18 = 14 3218=14 位。则可划分 2 14 2^{14} 214 个 IP。
其中要主机号全为 0 与 1 的 IP 不能配置给主机。因此可划分 2 14 − 2 2^{14}-2 2142 个 IP 配置给主机。

提示


与上文中的网络层次划分不同,这里之所以要减 2 是因为考虑的是分配给主机而不是分配给子网络。


2. 某主机的 IP 为 120.26.57.7/23,则其属于的网络 IP 为多少

若要求 120.26.57.7/23 所处的网络,只需要将其主机号全置为 0,得到的 IP 即为网络 IP。因此将 120.26.57.7 转化为二进制有:

十进制二进制
主机 IP120.26.57.7/230111 1000 0001 1010 0011 1001 0000 0111
网络 IP120.26.56.0/230111 1000 0001 1010 0011 1000 0000 0000

如上表,其所属网络 IP 为 120.26.56.0/23


3. 若要在网络 120.26.0.0/18 下再划分一层有 6 个子网络的网络,且要保证每个子网络能够容量尽量多的主机,则这 6 个子网络的 IP 分别为多少

若要再划分 6 个子网络,则下一层子网络的子网掩码要加大 n,以满足 2 n > 6 ( n 为 整 数 ) 2^n>6(n为整数) 2n>6n。显然 n ≥ 3 n\geq3 n3 满足条件。
n = 3 n = 3 n=3 时可保证划分的子网络可容纳的主机最多,则在 120.26.0.0/18 下可划分:

十进制二进制
网络 IP120.26.0.0/180111 1000 0001 1010 0000 0000 0000 0000
子网络 1120.26.0.0/210111 1000 0001 1010 0000 0000 0000 0000
子网络 2120.26.8.0/210111 1000 0001 1010 0000 1000 0000 0000
子网络 3120.26.16.0/210111 1000 0001 1010 0001 0000 0000 0000
子网络 4120.26.24.0/210111 1000 0001 1010 0001 1000 0000 0000
子网络 5120.26.32.0/210111 1000 0001 1010 0010 0000 0000 0000
子网络 6120.26.40.0/210111 1000 0001 1010 0010 1000 0000 0000
子网络 7120.26.48.0/210111 1000 0001 1010 0011 0000 0000 0000
子网络 8120.26.56.0/210111 1000 0001 1010 0011 1000 0000 0000

则在这些子网络 IP 地址中选出 6 个即为答案。

提示


本次文章的习题讲解相比之前的文章讲解的没那么细,若有问题可以评论,会在一天内回复解答。


参考文献


[1] JAmes F.Kurose, Keith W. Ross.计算机网络自顶向下方法[M].机械工业出版社:北京,2014.9:229.


其他相关文章

文章名称更新时间
IPv4 十进制点分表示法2020-10-29
IPv4 地址分类2020-11-8
IPv4 地址与子网掩码2020-11-16
IPv4 CIDR 无类别域间路由2021-1-14

文章内容来自个人学习总结
欢迎指出本文中存在的问题
未经本人同意禁止转载,不得用于商业用途
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值