当前位置: 首页 > article >正文

【网络协议】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.kler.cn/a/487389.html

相关文章:

  • 2025年XR行业展望:超越虚拟,融合现实
  • 在 macOS 中,设置自动将文件夹排在最前
  • OSPF - 2、3类LSA(Network-LSA、NetWork-Sunmmary-LSA)
  • 江科大STM32入门——IIC通信笔记总结
  • Boost.Asio 同步读写及客户端 - 服务器实现详解
  • Ungoogled Chromium127 编译指南 MacOS篇(八)- 开始编译
  • 分布式锁 Redis vs etcd
  • nmap命令详解:网络安全扫描的利器
  • CSS语言的数据库交互
  • Nginx | 解决 Spring Boot 与 Nginx 中的 “413 Request Entity Too Large“ 错误
  • WebRTC:构建实时通信应用的利器
  • 音视频入门基础:MPEG2-PS专题(6)——FFmpeg源码中,获取PS流的视频信息的实现
  • 超简单,使用Kube-Vip实现K8s高可用VIP详细教程
  • Attention计算中的各个矩阵的维度都是如何一步步变化的?
  • SQL UNION 操作符
  • 【Linux 之一 】Linux常用命令汇总
  • Redis数据库笔记——Cluster集群模式
  • 状态模式详解
  • 大模型搜索引擎增强问答demo-纯python实现
  • Sentinel服务保护 + Seata分布式事务
  • 开放词汇检测新晋SOTA:地瓜机器人开源DOSOD实时检测算法
  • C# winform 多线程 UI更新数据 报错:无法访问已释放的对象。
  • 【AI日记】25.01.09
  • 程序血缘分析技术在工商银行软件工程中的应用
  • 一.MySQL程序简介
  • 用BaoStock判断一只股票昨天是否涨停~~