【网络协议】IPv4 地址分配 - 第二部分

前言

在第 1 部分中,我们学习了 IPv4 地址的分配方式,了解了各种类型的 IPv4 地址,并进行了基础的子网划分(Subnetting)。在第 2 部分中,我们将继续学习子网划分,并引入一些新的概念。

【网络协议】IPv4 地址分配 - 第一部分

文章目录

    • 前言
    • IPv4 的类别式地址(Classful Addressing)
    • 无类别 IPv4 地址分配(Classless Addressing)
    • CIDR 和 VLSM
    • 子网划分(Subnetting)续篇
    • 子网划分
      • 任务 1:一个子网容纳 125 个主机
      • 任务 2:一个子网容纳 60 个主机
      • 任务 3:一个子网容纳 30 个主机
      • 任务 4:3 个子网,每个子网有 2 个主机 IP 地址
    • 超网 (Supernetting)
      • 超网实验

IPv4 的类别式地址(Classful Addressing)

当 IPv4 地址最初被引入时,其标准基于 RFC 791,采用了按类别划分的方式。根据当时企业的需求,IPv4 地址分为以下三类:

  • A 类:分配给大型组织。
  • B 类:分配给中型企业。
  • C 类:分配给小型组织。

以下是 IPv4 地址各类别的分类表:

在这里插入图片描述

  • A 类地址:以 0 位开头,范围为 0.0.0.0 到 127.255.255.255。其中第一个地址 0.0.0.0 配合子网掩码 0.0.0.0 被保留为默认路由(Default Route)。这一点将在后续章节中讨论。
  • B 类地址:高阶位以 10 开头,其范围如上表所示。
  • C 类地址:高阶位以 110 开头,范围为 192.0.0.0 到 223.255.255.255。
  • 其余的 IPv4 地址范围则保留用于实验用途或组播(Multicast)。

然而,类别式 IPv4 地址分配存在一些问题。例如,某公司只需要 100 个主机,但被分配了一个 B 类地址范围,这会导致大量 IP 地址浪费,从而影响未来的扩展和 IPv4 地址的使用。因此,引入了无类别的 IPv4 地址分配方式。

无类别 IPv4 地址分配(Classless Addressing)

无类别 IPv4 地址分配解决了类别式分配导致的地址浪费问题。无类别域间路由(Classless Inter-Domain Routing,CIDR) 使用子网掩码而非高阶位数量来分配 IP 地址。

CIDR 和 VLSM

通过 CIDR,可以使用可变长度子网掩码(Variable Length Subnet Masks, VLSM),根据组织的需求灵活分配 IP 地址。这种方式允许根据内部需求进一步划分网络。

在本章中,我们将讨论子子网划分(Sub-subnetting)和超网(Supernetting)。

子网划分(Subnetting)续篇

如上一篇文章所述,子网划分可以进一步细化为子子网,以满足组织的具体需求。在这一部分,我们将学习如何对子网进行进一步划分(Sub-subnetting)。

例如,假设我们有一个 IP 地址 192.168.1.0/24,我们可以对子网进行划分,以高效地为主机分配 IP 地址。

在本节中,我们将学习如何对子网进行划分。这是 VLSM 的具体应用场景。

子网划分

已知 IP 网络 192.168.1.0/24,任务是将其划分为满足以下需求的子网:

  • 一个子网需要容纳 125 个主机;
  • 一个子网需要容纳 60 个主机;
  • 一个子网需要容纳 30 个主机;
  • 三个子网需要容纳 2 个主机。

任务 1:一个子网容纳 125 个主机

首先,我们需要计算所需的主机位数,其余位数将分配给网络部分。

2^n=125 – 2

2^7=128

128-2 = 126

结论:
我们需要 7 个主机位,剩余 1 位分配给网络部分。

在这里插入图片描述

当我们向网络部分添加 1 位时,新的子网掩码将是:

在这里插入图片描述
192.168.1.0/25

因此,增量将是 128。在这种情况下,第一个网络将是 192.168.1.0/25。

在这里插入图片描述

第二个网络将是 192.168.1.128/25,如下所示。

在这里插入图片描述

这将为 125 个主机提供足够的主机 IP 地址。

任务 2:一个子网容纳 60 个主机

在任务 1 中,我们已经将网络 192.168.1.0/25 分配给第一个网络,这意味着我们现在可以使用 192.168.1.128/25。这个子网需要进一步划分,以提供 60 个主机的 IP 地址。

因此,我们需要计算能够容纳这些主机所需的主机位数。

2^n-2= 60

2^5- 2=30,这小于 60,因此不足以满足需求。

2^6-2 = 62,因此足够满足 LAN A 的主机需求。

主机位数将是 6,我们需要从主机位中借用 2 位来创建这些新子网。

划分后的 192.168.1.128/25 网络的新子网掩码将是:

在这里插入图片描述
255.255.255.192

注意:在任务 1 中,我们保留了第二个子网,即 192.168.1.128/25,因此新子网必须从该子网中划分。

增量值为 64,因此两个新子网为:

  • 192.168.1.128/26
  • 192.168.1.192/26

第一个子网(192.168.1.128/26)将分配给需要 60 个主机的网络。第二个子网将根据任务 3 进一步划分。

任务 3:一个子网容纳 30 个主机

我们需要 30 个主机 IP 地址,这些地址将来自任务 2 中获得的第三个子网,即 192.168.1.192/26

首先,我们需要确定主机部分所需的主机位数。

2^n-2= 30

2^4-2=14,不足以满足需求。

2^5-2= 30,足够满足需求,并允许扩展。

因此,主机部分将有 5 位,而网络部分需要从第四个八位组中借用 3 位。

划分后的 192.168.1.192/26 网络的新子网掩码如下所示:

在这里插入图片描述

这是 255.255.255.224。

因此,增量将是 32。

第一个网络如下所示:192.168.1.192/27。

在这里插入图片描述
第二个也是最后一个网络将是:192.168.1.224/27。

在这里插入图片描述

任务 4:3 个子网,每个子网有 2 个主机 IP 地址

最后一个任务是将 192.168.1.224/27 子网进一步划分为三个子网,每个子网包含 2 个主机 IP 地址。

首先,我们确定需要多少主机 IP 地址位数。

2^n-2=2

2^2-2=2,足够满足需求。

因此,主机部分将有 2 位,而网络部分需要从第四个八位组中借用 6 位。

划分后的 192.168.1.224/27 网络的新子网掩码将是:

在这里插入图片描述
子网掩码是:255.255.255.252

该网络中的增量将是 4。

我们需要的三个子网为:

192.168.1.224/30
192.168.1.228/30
192.168.1.232/30

这些网络适用于点对点链接,例如两个路由器之间的连接。

超网 (Supernetting)

在上一节中,我们讨论了子网划分,即将一个大网络分割成更小的网络。超网是其相反的过程,它将多个小网络合并为一个大网络。这个概念将在我们讨论路由汇总时详细介绍。

超网实验

在此场景中,我们给出了以下子网:

在这里插入图片描述

我们的任务是将这些 IP 地址进行超网操作,以便获得一个汇总地址。

步骤 1:将 IP 网络写成二进制形式。

在这里插入图片描述

步骤 2:确定每个网络中相似的位数,并画出一条线标记匹配位的结束位置。

在这里插入图片描述
步骤 3:计算匹配位的数量,并将其转换为十进制格式。

在此场景中,匹配的位是前两个八位组以及第三个八位组的前六个位。

它们可以表示为如下所示:

192.168.0.0

步骤 4:我们需要确定这个汇总地址的新子网掩码:

对于匹配的位,填充所有“1”。

这将是:11111111.11111111.11111100.00000000

这是新的子网掩码,对应的十进制格式如下所示:

255.255.252.0

因此,新网络将是:192.168.0.0/22,即网络的超网(Supernet)。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 正则表达式 ⑪

正则表达式 1.Linux grep 命令 Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样…

二、模型训练与优化(1):构建并训练模型

目录 1. 安装 Anaconda(推荐) 步骤: 2. 创建并激活虚拟环境 步骤: 3. 安装必要的库 步骤: 4. 编写训练脚本 步骤: 5. 运行训练脚本 步骤: 总结: 在完成了准备工作的基础上…

JavaEE初阶——计算机工作原理

一、什么是JavaEE JavaEE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器…

医学图像分析工具02:3D Slicer || 医学影像可视化与分析工具 支持第三方插件

3D Slicer 是一款功能全面的开源医学影像分析软件,广泛应用于影像处理、三维建模、影像配准和手术规划等领域。它支持多种医学影像格式(如 DICOM、NIfTI)和丰富的插件扩展,是神经科学、放射学和生物医学研究中不可或缺的工具。 在…

STM32裸机开发转FreeRTOS教程

目录 1. 简介2. RTOS设置(1)分配内存(2)查看任务剩余空间(3)使用osDelay 3. 队列的使用(1)创建队列(1)直接传值和指针传值(2)发送/接收…

使用高云小蜜蜂GW1N-2实现MIPI到LVDS(DVP)转换案例分享

作者:Hello,Panda 大家晚上好,熊猫君又来了。 今天要分享的是一个简单的MIPI到LVDS(DVP)接口转换的案例。目的就是要把低成本FPGA的应用潜力充分利用起来。 一、应用背景 这个案例的应用背景是:现在还在…

Express 加 sqlite3 写一个简单博客

例图: 搭建 命令: 前提已装好node.js 开始创建项目结构 npm init -y package.json:{"name": "ex01","version": "1.0.0","main": "index.js","scripts": {"test": &q…

git撤回提交、删除远端某版本、合并指定版本的更改

撤回提交 vscode的举例 一、只提交了还未推送的情况下 1.撤回最后一次提交,把最后一次提交的更改放到暂存区 git reset --soft HEAD~12.撤回最后一次提交,把最后一次提交的更改放到工作区 git reset --mixed HEAD~13.撤回最后一次提交,不…

[Linux]redis5.0.x升级至7.x完整操作流程

1. 从官网下载最新版redis: 官网地址:https://redis.io/download 注:下载需要的登录,如果选择使用github账号登录,那么需要提前在github账号中取消勾选“Keep my email addresses private”(隐藏我的邮箱…

xss-labs关卡记录15-20关

十五关 随便传一个参数,然后右击查看源码发现,这里有一个陌生的东西,就是ng-include。这里就是: ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号。…

数据库回滚:大祸临头时

原文地址 什么是数据库回滚? 数据库技术中,回滚是通过撤销对数据库所做的一项或多项更改,将数据库返回到先前状态的操作。它是维护数据完整性和从错误中恢复的重要机制。 什么时候需要数据库回滚? 数据库回滚在以下几个场景中很…

年会抽奖Html

在这里插入图片描述 <!-- <video id"backgroundMusic" src"file:///D:/background.mp3" loop autoplay></video> --> <divstyle"width: 290px; height: 580px; margin-left: 20px; margin-top: 20px; background: url(D:/nianhu…

基于FPGA的出租车里程时间计费器

基于FPGA的出租车里程时间计费器 功能描述一、系统框图二、verilog代码里程增加模块时间增加模块计算价格模块上板视频演示 总结 功能描述 &#xff08;1&#xff09;&#xff1b;里程计费功能&#xff1a;3公里以内起步价8元&#xff0c;超过3公里后每公里2元&#xff0c;其中…

nginx-链路追踪(trace)实现

一. 需求场景&#xff1a; 在日常运维工作中&#xff0c;会经常遇到在有多重调用链的场景下&#xff0c;如请求遇到非致命error时&#xff0c;在各环节的定位会非常麻烦&#xff0c;举个例子&#xff1a;比如说&#xff0c;在一个有多重调用链的服务环境下&#xff0c;一个请求…

c#使用SevenZipSharp实现压缩文件和目录

封装了一个类&#xff0c;方便使用SevenZipSharp&#xff0c;支持加入进度显示事件。 双重加密压缩工具范例&#xff1a; using SevenZip; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.…

MySQL和Hive中的行转列、列转行

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 MySQL1.行转列2.列转行 Hive1.行转列2.列转行(1)侧窗(2)union MySQL 1.行转列 把多行转成列。直接group&#xff0c;sum(if()) 2.列转行 Hive 1.行转列 select name,sum(if(kmshuxu…

快速上手:采用Let‘sEncrypt免费SSL证书配置网站Https (示例环境:Centos7.9+Nginx+Let‘sEncrypt)

1 关于Let’s Encrypt与Cerbot DNS验证 Let’s Encrypt 是一个提供 免费证书 的 认证机构。 Cerbot 是 Let’s Encrypt 提供的一个工具&#xff0c;用于自动化生成、验证和续订证书。 DNS验证是 Cerbot 支持的验证方式之一。相比 HTTP 验证或 TLS-ALPN 验证&#xff0c;DNS …

【Unity3D】Text文本文字掉落效果

相关技术&#xff1a;Text、TextMesh、Rigidbody&#xff08;刚体&#xff09;、BoxCollider&#xff08;碰撞体&#xff09;、TextGenerator、文本网格、文字网格 原理&#xff1a;使用UGUI Text获取其文字的每个字符网格坐标&#xff0c;转世界坐标生成对应的3D文本(TextMesh…

flutter 专题二十四 Flutter性能优化在携程酒店的实践

Flutter性能优化在携程酒店的实践 一 、前言 携程酒店业务使用Flutter技术开发的时间快接近两年&#xff0c;这期间有列表页、详情页、相册页等页面使用了Flutter技术栈进行了跨平台整合&#xff0c;大大提高了研发效率。在开发过程中&#xff0c;也遇到了一些性能相关问题和…

设计模式 行为型 命令模式(Command Pattern)与 常见技术框架应用 解析

命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;它旨在将请求发送者和接收者解耦&#xff0c;通过将一个请求封装为一个对象&#xff0c;从而允许参数化客户端对象以进行不同的请求、排队请求或记录请求&#xff0c;并支持可撤销操作。 在软…