无分类编址 CIDR

news2024/11/24 20:09:29

在域名系统出现之后的第一个十年里,基于分类网络进行地址分配和路由IP数据包的设计就已明显显得可扩充性不足(参见RFC 1517)。为了解决这个问题,互联网工程工作小组在1993年发布了一新系列的标准——RFC 1518和RFC 1519——以定义新的分配IP地址块和路由IPv4数据包的方法。

一个IP地址包含两部分:标识网络的前缀和紧接着的在这个网络内的主机地址。在之前的分类网络中,IP地址的分配把IP地址的32位按每8位为一段分开。这使得前缀必须为8,16或者24位。因此,可分配的最小的地址块有256(24位前缀,8位主机地址,28=256)个地址,而这对大多数企业来说太少了。大一点的地址块包含65536(16位前缀,16位主机,216=65536)个地址,而这对大公司来说又太多了。这导致不能充分使用IP地址和在路由上的不便,因为大量的需要单独路由的小型网络(C类网络)因在地域上分得很开而很难进行聚合路由,于是给路由设备增加了很多负担。于是出现了无分类编址CIDR。

1. CIDR

无分类编址CIDR的全名是无分类域间路由选择CIDR(Classless Inter-Domain Routing)。

无类别域间路由是基于可变长子网掩码(VLSM)来进行任意长度的前缀的分配的。在RFC 950(1985)中有关于可变长子网掩码的说明。CIDR包括:

  • 指定任意长度的前缀的可变长子网掩码技术。遵从CIDR规则的地址有一个后缀说明前缀的位数,例如:192.168.0.0/16。这使得对日益缺乏的IPv4地址的使用更加有效。
  • 将多个连续的前缀聚合成超网,以及,在互联网中,只要有可能,就显示为一个聚合的网络,因此在总体上可以减少路由表的表项数目。聚合使得互联网的路由表不用分为多级,并通过VLSM逆转“划分子网”的过程。
  • 根据机构的实际需要和短期预期需要而不是分类网络中所限定的过大或过小的地址块来管理IP地址的分配的过程。

CIDR主要是一个按位的、基于前缀的,用于解释IP地址的标准,是一种编址方法。

2. 网络前缀

CIDR把网络号改成为“网络前缀”(network-prefix)(或简称为“前缀”),用来指明网络,剩下的部分仍然是主机号,用来指明主机。

CIDR的记法: IP地址 ::= {<网络前缀>,<主机号>}

其和分类地址不同的地方在于网络前缀的位数n不是固定的数,而是可以在0~32之间选取任意的值(见下图)。

在这里插入图片描述

CIDR使用“斜线记法”(slash notation),或称为CIDR记法,即在IP地址后面加上斜线"/",斜线后面是网络前缀所占的位数。

例如:使用CIDR表示一个IP地址128.14.35.7/20,二进制IP地址的前20位是网络前缀,剩下的12位是主机号。

注:网络前缀相当于分类地址法的网络号。

3. 地址块

3.1 CIDR地址块

CIDR把网络前缀都相同的所有连续IP地址组成一个“CIDR地址块”,一个CIDR地址块包含的IP地址数目取决于网络前缀的位数。也就是说,只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的最小地址和最大地址,以及地址块中的地址数。

例如:已知IP地址128.14.35.7/20是某个CIDR地址块中的一个地址块,用二进制表示如下:

  128.14.35.7/20 = 10000000 00001110 00100011 00000111

其中前20位是网络前缀(加粗),后面12(32-20)位是主机号。

最小地址最大地址
128.14.32.0128.14.47.255
10000000 00001110 00100000 0000000010000000 00001110 00101111 11111111

可以由主机号的位数知道,这个地址块的IP地址共有212个,去掉主机号为全0和全1的地址(最小地址和最大地址)后,可指派的地址数是212-2个。

我们常用地址块中的最小地址和网络前缀的位数指明一个地址块(不必每次都减2算出可指派的地址数),如128.14.32.0/20表示上面的地址块,其二进制代码的简写形式为:10000000 00001110 0010* ,“*”代表了主机号字段的所有0。

在不需要指明网络地址时,可以把这样的地址块简称为"/20地址块"。

注:128.14.32.7是IP地址,但未指明网络前缀长度,故不知道网络地址是什么。

128.14.32.7/20也是IP地址,其指明了网络前缀为20位,所以可得知其网络地址。

128.14.32.0/20是包含多个IP地址的地址块或网络前缀(前缀),也可以简写为 128.14.32/20

3.2 常用地址块

下表是常用的CIDR地址块:

CIDR前缀长度点十分进制包含地址数相当于包含分类的网络数
/13255.248.0.0512K8个B类或2048个C类
/14255.252.0.0256K4个B类或1024个C类
/15255.254.0.0128K2个B类或512个C类
/16255.255.0.064K1个B类或256个C类
/17255.255.128.032K128个C类
/18255.255.192.016K64个C类
/19255.255.224.08K32个C类
/20255.255.240.04K16个C类
/21255.255.248.02K8个C类
/22255.255.252.01K4个C类
/23255.255.254.05122个C类
/24255.255.255.02561个C类
/25255.255.255.1281281/2个C类
/26255.255.255.192641/4个C类
/27255.255.255.224321/8个C类

说明:表中K表示210即1024,网络前缀长度在13到27之间是最常用的。

3.3 特殊地址块

CIDR地址中还有三个特殊地址块,即:

(1)前缀n=32,即32位IP地址都是前缀,没有主机号,这其实就是一个IP地址,用于主机路由。

(2)前缀n=31,这个地址块中只有两个IP地址,主机号分别为0和1,用于点对点链路。

(3)前缀n=0,同时IP地址也全是0,即0.0.0.0/0,用于默认路由。

4. 地址掩码(子网掩码)

地址掩码(简称掩码)由一连串1和接着的一连串0组成,1的个数就是网络前缀的长度,地址掩码又称为子网掩码。在CIDR记法中,斜线后面的数字就是地址掩码中1的个数。

例如:/20地址块的地址掩码是 11111111 11111111 11110000 00000000(20个1和12个0),这个掩码用CIDR记法表示就是255.255.240.0/20

对于分类IP地址,其地址掩码是固定的,如下:

地址类型地址掩码
A类地址255.0.0.0或255.0.0.0/8
B类地址255.255.0.0或255.255.0.0/16
C类地址255.255.255.0或255.255.255.0/24

CIDR使用斜线记法可以让我们知道网络前缀的数值,但是计算机是看不见斜线记法的,而在二进制格式下,使用32位的地址掩码(address mask)和IP地址进行按位AND运算(逻辑乘法运算)从而得出网络地址。

例如:计算IP地址是128.14.35.7/20的网络地址

​ 128 · 14 · 35 · 7

二进制IP地址 10000000 00001110 00100011 00000111

地址掩码 11111111 11111111 11110000 00000000

按位AND运算 100000000 00001110 00100000 00000000

网络地址 128 · 14 · 32 · 0 /20

由上面的运算可知,IP地址128.14.35.7/20所在的网络地址是128.14.32.0/20。

5. 构造超网

将多个连续的前缀网络聚合成一个网络,就称为超网。

例如,有这样两个地址块:206.0.71.0/25 206.0.71.128/25,这两个地址块就可以构造一个超网206.0.70.0/24。点十分进制看起来可能不太明显,让我们换成二进制表示,如下表:

地址块代号地址块二进制表示的地址块
A206.0.70.0/2411001110 00000000 01000110 *
B206.0.71.0/2511001110 00000000 01000110 0*
C206.0.71.128/2511001110 00000000 01000110 1*

表中*是一种常用的简写方式,表示星号后面的二进制主机号都省略了。

可以看到二进制表示的地址块,B和C的第25位分别为0和1,是当掩码为24位时第25位的所有组合,所以B和C可以整合为一个掩码位24为的一个超网。

这样做的好处可以减小路由表上的条目数。

所以从另一个方面称之为路由聚合。

路由聚合:一个大的CIDR地址块中往往包含很多小地址块,所以在路由器的转发表中就利用较大的地址块来代替许多较小的地址块,由较大地址块再向下转发,这就是路由聚合。

路由聚合使得转发表中只用一个项目就可以表示原来传统分类地址的很多个路由项目,大大压缩了转发表所占的空间,减少了查找转发表所需的时间。

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

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

相关文章

时尚和美容网站的技术 SEO:提示和最佳实践

如果你对美容和时尚感兴趣&#xff0c;做了一个网站&#xff0c;但不知道如何在上面做技术SEO&#xff1f;此外&#xff0c;时尚和美容网站的技术 SEO 没有任何特别的指南&#xff01; 我们听到了你的声音&#xff01;但首先&#xff0c;请记住&#xff0c;技术性SEO不是在一两…

Docker监控Weave Scope的安装和使用

1.本地安装Weave Scope 1&#xff09;创建文件夹。 mkdir /usr/local/bin/scope 2&#xff09;从本地上传文件。 rz scope.bin以资源形式已上传到文章开篇。 3&#xff09;修改scope.bin文件为可执行文件。 chmod 755 /usr/local/bin/scope/scope.bin 4&#xff09;执行sco…

使用 SwiftUI 创建一个灵活的选择器

文章目录 前言可选择协议自定义化FlexiblePicker 逻辑FlexiblePicker 视图总结 前言 最近&#xff0c;在我正在开发一个在 Dribbble 上找到的设计的 SwiftUI 实现时&#xff0c;我想到了一个点子&#xff0c;可以通过一些酷炫的筛选器扩展该项目以缩小结果列表。 我决定筛选视…

2023.11.28-电商平台建设03 - 大数据调优手段

1.优化手段 1.1分桶表 HIVE的分桶本质上就是MR的分区操作 建表语句: create table 表名(字段 类型,.... ) clustered by(分桶字段) [sorted by (字段 [asc | desc])] into N buckets --- 定义分桶表核心语句 row format...... 分桶的作用 1) 进行数据采样工作 1.1) …

Vim多行编辑

Vim多行编辑 Ctrlq进入多行编辑模式&#xff0c;然后上下选择要编辑的行 按下I或者Shifti&#xff0c;进入编辑模式 编辑的时候多行不会同时变化&#xff0c;不要担心&#xff0c;确实是多行编辑 编辑完成&#xff0c;想要结束多行编辑&#xff0c;按下Esc&#xff0c;此时…

BGP综合实验(IP)

实验要求&#xff1a; 实验思路&#xff1a; 1.划分IP地址&#xff1a; 将172.16.0.0/16的网段划分为172.16.0.0/24的多个网段&#xff0c;因为在实际工程当中&#xff0c;24的网段更符合用户网段&#xff0c;因此先将网段划分为172.16.0.0 /24的多个子网掩码为24的网段&…

使用Pytorch从零开始构建扩散模型-DDPM

知识回顾: [1] 生成式建模概述 [2] Transformer I&#xff0c;Transformer II [3] 变分自编码器 [4] 生成对抗网络&#xff0c;高级生成对抗网络 I&#xff0c;高级生成对抗网络 II [5] 自回归模型 [6] 归一化流模型 [7] 基于能量的模型 [8] 扩散模型 I, 扩散模型 II 引言 去噪…

算法 离散化

整数离散化 适用条件 适用于有序的整数序列该序列的值域很大&#xff0c;该序列的数的个数很少使用的是数的相对大小而非绝对大小 算法思路 原数组 a &#xff1a; 数组下标&#xff1a;0 1 2 3 4 数组元素&#xff1a;1 2 2 5 109 映射数组 &#xff1a; 数组下标&…

gRPC Java、Go、PHP使用例子

文章目录 1、Protocol Buffers定义接口1.1、编写接口服务1.2、Protobuf基础数据类型 2、服务器端实现2.1、生成gRPC服务类2.2、Java服务器端实现 3、java、go、php客户端实现3.1、Java客户端实现3.2、Go客户端实现3.3、PHP客户端实现 4、运行效果 本文例子是在Window平台测试&a…

从 0 到 1 开发一个 node 命令行工具

G2 5.0 推出了服务端渲染的能力&#xff0c;为了让开发者更快捷得使用这部分能力&#xff0c;最写了一个 node 命令行工具 g2-ssr-node&#xff1a;用于把 G2 的 spec 转换成 png、jpeg 或者 pdf 等。基本的使用如下&#xff1a; $ g2-ssr-node g2png -i ./bar.json -o ./bar.…

【Intel FPGA】D5005 使用笔记

项目总目标&#xff0c;在AFU中实现xx算法DDR 1.FPGA device &#xff1a;1SX280HN2F43E2VG 2 .硬件架构图 3.DDR信息 4.FIM &#xff08;FPAG Interface Manager&#xff09; The FIM contains the FPGA logic to support the accelerators, including the PCIe IP core, …

UE5、CesiumForUnreal实现加载GeoJson绘制多面(MultiPolygon)功能(支持点选高亮)

文章目录 1.实现目标2.实现过程2.1 数据与预处理2.2 GeoJson解析2.3 Mesh构建与属性存储2.4 核心代码2.5 材质2.6 蓝图应用测试3.参考资料1.实现目标 在之前的文章中,基于GeoJson数据加载,实现了绘制单面功能,但只支持单个要素Feature。本文这里实现对Geojson内所有面要素的…

【CVE-2023-49103】ownCloud graphapi信息泄露漏洞(2023年11月发布)

漏洞简介 ownCloud owncloud/graphapi 0.2.x在0.2.1之前和0.3.x在0.3.1之前存在漏洞。graphapi应用程序依赖于提供URL的第三方GetPhpInfo.php库。当访问此URL时&#xff0c;会显示PHP环境的配置详细信息&#xff08;phpinfo&#xff09;。此信息包括Web服务器的所有环境变量&a…

Python字典类型

目录 目标 版本 官方文档 简介 实战 创建 循环 常用方法 目标 掌握字典类型的使用方法&#xff0c;包括&#xff1a;创建、循环、常用方法等操作。 版本 Python 3.12.0 官方文档 Mapping Types — dicthttps://docs.python.org/3/library/stdtypes.html#mapping-type…

工具及方法 - 如何阅读epub文件:使用Adobe Digital Editions

EPUB&#xff08;Electronic Publication的缩写&#xff0c;电子出版&#xff09;是一种电子图书标准&#xff0c;由国际数字出版论坛&#xff08;IDPF&#xff09;提出&#xff1b;其中包括3种文件格式标准&#xff08;文件的扩展名为.epub&#xff09;&#xff0c;这个格式已…

[操作系统] 面试宝典之~死锁连环系列

文章目录 2.22 什么是死锁2.24 解决死锁的方法死锁的预防死锁的避免死锁的检测死锁的解除 2.22 什么是死锁 在多道程序环境下&#xff0c;多个进程可以竞争有限数量的资源。当一个进程申请资源时&#xff0c;如果这时没有可用资源&#xff0c;那么这个进程进入等待状态。有时&…

Linux ps命令详解:如何查看进程的PID、占用的CPU和内存使用率、虚拟内存大小等信息(附实例教程和注意事项)

Linux ps命令介绍 Linux ps命令&#xff0c;全称为process status&#xff0c;是一个非常实用的命令&#xff0c;用于显示当前进程的状态。它的功能类似于Windows的任务管理器。通过ps命令&#xff0c;我们可以查看到进程的PID、占用的CPU和内存使用率、虚拟内存大小、实际内存…

numpy知识库:np.random.randint()用法及其使用场景举例

randint函数解析 import numpy as np# 【随机】返回[0,5)范围内的一个整数 # [0, 5) --> 左闭右开区间 int_a np.random.randint(5) # int_a 可能为 0、1、2、3、4 int_a np.random.randint(low5) # int_a 可能为 0、1、2、3、4# 【随机】返回[1,5)范围内的一个整数 int_…

【闲读 1】量子论引出对认知的思考

文章目录 一、物理学的两朵乌云故事量子力学的世界 二、 波粒二象性三、量子不确定性四、感知尺度 混沌学院课程《【物理学思维】第四节 量子论》&#xff0c;观后感。 一、物理学的两朵乌云故事 19世纪末&#xff0c;著名的物理学家开尔文爵士&#xff08;温度单位命民&…

Git分支管理--Bug分支

愿所有美好如期而遇 我们现在正在dev4分支上进行开发&#xff0c;但是在我们开发过程中&#xff0c;并且我们还未提交&#xff0c;master分支上出现了bug&#xff0c;需要我们修复&#xff0c;我们先来看情景 我们添加一行代码并且不提交充作开发&#xff0c;模拟正在进行开发时…