什么是CIDR技术? 它是如何解决路由缩放问题的

news2025/1/27 6:57:00

什么是CIDR技术? 它是如何解决路由缩放问题的

    • 一. 什么是 CIDR?
    • 二. CIDR 是如何工作的?
      • 1. 高效地址分配
      • 2. 路由聚合(Route Aggregation)
      • 3. 精确满足需求
    • 三. CIDR 的计算详解
      • 1. 子网掩码计算
      • 2. 地址范围计算
      • 3. 可用 IP 地址计算
    • 四. CIDR 如何解决路由缩放问题?
    • 五. 总结

前言

点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。

作者:神的孩子都在歌唱

大家好呀,我是 神唱 ,随着互联网规模的快速扩张,路由表的膨胀问题日益严重。想象一下,成千上万条路由记录堆积在路由器中,效率会如何?幸好,无类别域间路由(CIDR,Classless Inter-Domain Routing)技术为我们带来了新的思路。

一. 什么是 CIDR?

CIDR 是一种灵活的 IP 地址分配技术,用于给用户分配 IP地址 以及在 互联网 上有效地 路由IP数据包 的对IP地址进行归类的方法。

CIDR 地址的格式是这样的:

192.168.1.0/24
  • 192.168.1.0 是网络地址。
  • /24 表示网络前缀长度,也就是前 24 位用来标识网络,剩余的位数标识主机。

为什么需要 CIDR?

  1. 解决地址浪费:传统的分类方式不够灵活,容易导致地址块分配不匹配实际需求。
  2. 简化路由表:通过路由聚合,CIDR 将多个地址块整合成一个更大的块,减少路由条目。

二. CIDR 是如何工作的?

1. 高效地址分配

CIDR 的灵活性允许根据实际需求分配地址块。例如,一个小型企业只需 32 个 IP 地址(/27),无需浪费更多资源。

举例:一个网络分配192.168.1.0/27,前 27 位用于标识网络,剩下的 5 位标识主机。该地址块包含 32 个 IP 地址(30 个可用 IP,网络地址和广播地址各占 1 个)。

2. 路由聚合(Route Aggregation)

CIDR 的路由聚合功能大幅减少路由表规模。多个小网络可以被合并成一个大块,从而简化记录。

举例:假设 ISP 分配了以下地址块:

  • 192.168.0.0/24
  • 192.168.1.0/24
  • 192.168.2.0/24
  • 192.168.3.0/24

CIDR 可以将其聚合为:

192.168.0.0/22

这样,路由器只需要记录一条路由,而不是四条。

3. 精确满足需求

CIDR 通过灵活的前缀划分,避免了传统分类方法中地址分配过多或过少的问题。例如,小型公司需要 16 个 IP 地址时,可以直接分配/28,而不需要浪费一个完整的/24地址块。

三. CIDR 的计算详解

1. 子网掩码计算

CIDR 前缀与子网掩码密切相关。

例子

192.168.1.0/24

前缀 /24 对应的子网掩码是:

255.255.255.0

二进制形式为:

11111111.11111111.11111111.00000000

子网掩码中的 1 表示网络部分,0 表示主机部分。

2. 地址范围计算

每个 CIDR 块的网络范围由其前缀长度决定。

例子

192.168.1.0/24
  • 网络部分:前 24 位。
  • 主机部分:后 8 位。

将地址转换为二进制:

192.168.1.0 -> 11000000.10101000.00000001.00000000

前 24 位锁定后,主机部分可以变化的范围是:

00000000 到 11111111

因此,该网络的地址范围是:

192.168.1.0 - 192.168.1.255

维基百科有以下案例

神的孩子都在歌唱

如果我们指定一个CIDR块为10.10.1.32/27,则根据CIDR比特位比较,10.10.1.44是属于该块,但10.10.1.90则不是。

3. 可用 IP 地址计算

CIDR 的前缀长度决定了主机地址部分的位数,从而确定一个地址块中有多少可用 IP。

公式

可用 IP 地址数 = 2^(32 - 前缀长度) - 2

减去的两个地址分别是网络地址和广播地址。

例子

/24 前缀:

可用地址数 = 2^(32 - 24) - 2 = 256 - 2 = 254

/28 前缀:

可用地址数 = 2^(32 - 28) - 2 = 16 - 2 = 14

四. CIDR 如何解决路由缩放问题?

CIDR 的核心价值在于:

  1. 减少路由条目:通过聚合多个小网络,减少路由表记录。
  2. 提高路由效率:条目越少,路由器匹配速度越快。
  3. 灵活地址分配:满足多样化需求,避免地址浪费。

示例场景
一个企业网络需要:

  • 50 个 IP -> 分配 192.168.1.0/26
  • 30 个 IP -> 分配 192.168.1.64/27
  • 14 个 IP -> 分配 192.168.1.96/28

通过 CIDR,192.168.1.0/24 可以满足需求,无需浪费多余地址。

五. 总结

CIDR 技术是互联网路由历史上的一次飞跃。它通过灵活的地址划分和路由聚合,让我们得以构建高效而稳定的网络。无论是简化路由表还是优化地址分配,CIDR 都展现了其强大的能力。

作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2283269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单片机内存管理剖析

一、概述 在单片机系统中,内存资源通常是有限的,因此高效的内存管理至关重要。合理地分配和使用内存可以提高系统的性能和稳定性,避免内存泄漏和碎片化问题。单片机的内存主要包括程序存储器(如 Flash)和数据存储器&a…

Qt简单迷宫游戏

目录 你将学到你将准备你将改变你将设计你将编程开始界面游玩界面胜利界面其它bug修复 你可扩展下一篇博客要说的东西 你将学到 Qt中QKeySequence对象的基本创建Qt中QShortcut对象的基本应用Qt中QSoundEffect对象的基本应用 你将准备 在开始制作Qt简单迷宫游戏之前&#xff…

Ansys Thermal Desktop 概述

介绍 Thermal Desktop 是一种用于热分析和流体分析的通用工具。它可用于组件或系统级分析。 来源:CRTech 历史 Thermal Desktop 由 C&R Technologies (CR Tech) 开发。它采用了 SINDA/FLUINT 求解器。SINDA/FLUINT 最初由 CR Tech 的创始人为 NASA 的约翰逊航…

WPF基础 | WPF 基础概念全解析:布局、控件与事件

WPF基础 | WPF 基础概念全解析:布局、控件与事件 一、前言二、WPF 布局系统2.1 布局的重要性与基本原理2.2 常见布局面板2.3 布局的测量与排列过程 三、WPF 控件3.1 控件概述与分类3.2 常见控件的属性、方法与事件3.3 自定义控件 四、WPF 事件4.1 路由事件概述4.2 事…

西门子【Library of General Functions (LGF) for SIMATIC S7-1200 / S7-1500】

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 通用函数库 (LGF) 扩展了 TIA Portal 中用于 PLC 编程的 STEP 7 指令(数学函数、时间、计数器 等)。该库可以不受限制地使用,并包含 FIFO 、搜索功能、矩阵计算、 astro 计…

Android实战经验篇-AndroidScrcpyClient投屏一

系列文章转如下链接: Android Display Graphics系列文章-汇总 Android实战经验篇-系列文章汇总 本文主要包括部分: 一、方案说明 1.1 适用场景 1.2 方案框架 二、功能演示 2.1 环境准备 2.2 演示 一、方案说明 1.1 适用场景 优秀的开源的scrc…

从 Spark 到 StarRocks:实现58同城湖仓一体架构的高效转型

作者:王世发,吴艳兴等,58同城数据架构部 导读: 本文介绍了58同城在其数据探查平台中引入StarRocks的实践,旨在提升实时查询性能。在面对传统Spark和Hive架构的性能瓶颈时,58同城选择StarRocks作为加速引擎&…

wangEditor富文本编辑器,Laravel上传图片配置和使用

文章目录 前言步骤1. 构造好前端模版2. 搭建后端存储3. 调试 前言 由于最近写项目需要使用富文本编辑器,使用的是VUE3.0版本所以很多不兼容,实际测试以后推荐使用wangEditor 步骤 构造好前端模版搭建后端存储调试 1. 构造好前端模版 安装模版 模版安…

【MySQL】我在广州学Mysql 系列——MySQL用户管理详解

ℹ️大家好,我是练小杰,本博客是春节前最后一篇了,在此感谢大佬们今年的支持!!🙏🙏 接下来将学习MYSQL用户管理的相关概念以及命令~~ 回顾:👉【MYSQL触发器的使用】 数据…

2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型

2025年数学建模美赛 A题分析(1)Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析(2)楼梯磨损分析模型 2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型 2025年数学建模美赛 A题分…

Spring Security(maven项目) 3.0.2.7版本

通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往复以至无穷&#xf…

【二叉树】4. 判断一颗二叉树是否是平衡二叉树。5. 对称二叉树。6. 二叉树的构建及遍历 7. 二叉树的分层遍历 。

判断一颗二叉树是否是平衡二叉树。OJ链接 可以在求树高度的过程中判断树是否平衡 对称二叉树。OJ链接 二叉树的构建及遍历。OJ链接 注意:public static int i最好把static去掉 否则当有多个测试用例时 i无法重新为0二叉树的分层遍历 。OJ链接 但此题要求返回List…

Java如何实现反转义

Java如何实现反转义 前提 最近做的一个需求,是热搜词增加换一批的功能。功能做完自测后,交给了测试伙伴,但是测试第二天后就提了一个bug,出现了未知词 levis。第一眼看着像公司售卖的一个品牌-李维斯。然后再扒前人写的代码&…

“大模型横扫千军”背后的大数据挖掘--浅谈MapReduce

文章目录 O 背景知识1 数据挖掘2 邦费罗尼原则3 TF.IDF4 哈希函数5 分布式文件系统 一、MapReduce基本介绍1. Map 任务2. 按键分组3. Reduce 任务4. 节点失效处理5.小测验:在一个大型语料库上有100个map任务和若干reduce任务: 二、基于MapReduce的基本运…

蓝桥杯3519 填充 | 分类讨论

题目传送门 很简单&#xff0c;遍历一次字符串&#xff0c;将‘?’作为0或1处理&#xff0c;发现00和11统计次数即可。 s str(input()) cnt 0 arr [00, 11, 0?, ?0, 1?, ?1, ??] i0 while i < len(s)-1:if s[i:(i2)] in arr:i 2cnt 1else:i 1 print(cnt)END✨

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础 目录 1.NAND FLASH 和NOR FLASH异同 ? 2.CPU,MPU,MCU,SOC,SOPC联系与差别? 3.什么是交叉编译&#xff1f; 4.为什么要交叉编译&#xff1f; 5.描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别? 1…

EchoMimicV2的部署使用

最近有一个录课的需要&#xff0c;我不想浪费人力&#xff0c;只想用技术解决。需求很简单&#xff0c;就是用别人现成的录课视频中的形象和声线&#xff0c;再结合我提供的讲稿去生成一个新的录课视频。我觉得应该有现成的技术了&#xff0c;我想要免费大批量生产。最近看到这…

迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-添加内核编译

编译内核时将该 HDF 驱动编译到镜像中&#xff0c;接下来编写驱动编译脚本 Makefile&#xff0c;代码如下所示&#xff1a; 加入编译体系&#xff0c;填加模块目录到 drivers/hdf_core/adapter/khdf/linux/Makefile 文件 更多内容可以关注&#xff1a;迅为RK3568开发板篇OpenHa…

期权帮|在股指期货中超过持仓限额怎么办?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 在股指期货中超过持仓限额怎么办&#xff1f; 一、立即平仓或减仓&#xff1a; &#xff08;1&#xff09;最直接且有效的方法是立即平仓或减仓&#xff0c;以降低持仓量至限额…

Linux 高级路由与流量控制-用 tc qdisc 管理 Linux 网络带宽

大家读完记得觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 此分享内容比较专业&#xff0c;很多与硬件和通讯规则及队列&#xff0c;比较底层需要有技术功底人员深入解读。 Linux 的带宽管理能力 足以媲美许多高端、专用的带宽管理系统。 1 队列&#xff0…