🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

网络工程师必备技能:IPv4 与 IPv6 地址规划与子网掩码计算

第一部分:IPv4 地址规划与子网计算

1. 核心概念:网络位、主机位与子网掩码

2. 关键计算:网段大小、可用 IP 与广播地址

3. 实践:子网划分(划分子网)

4. 可变长子网掩码(VLSM)

第二部分:IPv6 地址规划

1. IPv6 地址简化与前缀

2. IPv6 地址类型与规划要点

3. IPv6 子网划分计算

总结与对比


img


网络工程师必备技能:IPv4 与 IPv6 地址规划与子网掩码计算

在网络设计与运维中,科学合理的 IP 地址规划是基石。它不仅能确保设备正常通信,还关乎网络的稳定性、可扩展性和可管理性。本文将从零开始,深入讲解 IPv4 和 IPv6 的地址结构、子网划分方法以及规划策略。


第一部分:IPv4 地址规划与子网计算

IPv4 地址是一个 32 位的二进制数,通常用点分十进制表示(如 192.168.1.1)。其核心在于理解“网络位”和“主机位”。

1. 核心概念:网络位、主机位与子网掩码
  • 网络位:代表一个逻辑网段(子网)。同一子网内的设备可以直接通信。

  • 主机位:代表一个子网内可用的设备数量。

  • 子网掩码:一个 32 位的数字,用于区分 IP 地址中的网络部分和主机部分。掩码中为 “1” 的位对应网络位,为 “0” 的位对应主机位。

    • 点分十进制255.255.255.0(二进制为 11111111.11111111.11111111.00000000

    • CIDR 斜线表示法:更简洁的表示方法,如 /24,表示有 24 个连续的 “1”,即网络位占 24 位。

2. 关键计算:网段大小、可用 IP 与广播地址

对于一个给定的网段(如 192.168.1.0/24),我们需要快速计算出:

  • 子网大小(块大小):由主机位的数量 n决定,总 IP 数为 2^n/24的主机位为 8,所以总 IP 数为 2^8 = 256

  • 可用主机 IP 数:总 IP 数减去 2(网络地址和广播地址)。256 - 2 = 254

  • 网络地址:代表整个网段本身,主机位全为 0(192.168.1.0)。

  • 广播地址:用于向网段内所有设备发消息,主机位全为 1(192.168.1.255)。

  • 可用 IP 范围192.168.1.1192.168.1.254

3. 实践:子网划分(划分子网)

场景:公司有一个 192.168.10.0/24的网段,需要为 4 个部门划分各自独立的子网,每个部门约 50 台设备。

步骤 1:确定需要的主机位数量

每个部门需要约 50 个可用 IP。计算主机位:2^n - 2 >= 502^5 = 32(不够),2^6 = 64(满足,因为 64-2=62 > 50)。所以,我们需要 6 个主机位

步骤 2:确定新的子网掩码

IPv4 总长 32 位。主机位为 6,则网络位为 32 - 6 = 26。新的子网掩码是 /26(即 255.255.255.192)。

步骤 3:计算子网块大小和网段

块大小由主机位数决定,为 2^6 = 64。这意味着每个子网将占用 64 个连续的 IP 地址。

我们从 192.168.10.0开始,以 64 为步长进行划分:

子网

网络地址

可用 IP 范围

广播地址

CIDR

部门A

192.168.10.0

192.168.10.1 - 192.168.10.62

192.168.10.63

/26

部门B

192.168.10.64

192.168.10.65 - 192.168.10.126

192.168.10.127

/26

部门C

192.168.10.128

192.168.10.129 - 192.168.10.190

192.168.10.191

/26

部门D

192.168.10.192

192.168.10.193 - 192.168.10.254

192.168.10.255

/26

步骤 4:验证

每个子网有 62 个可用 IP,满足需求,并且子网之间互不重叠。

4. 可变长子网掩码(VLSM)

VLSM 是子网划分的进阶技巧,允许在一个网络内使用不同长度的子网掩码,从而实现 IP 地址的精细化和高效利用。

场景:在 192.168.20.0/24中,需要划分:

  • 一个需要 100 台主机的子网(子网A)

  • 两个需要 50 台主机的子网(子网B和C)

  • 几个需要 2 台主机的子网(用于路由器互联,子网D、E...)

划分过程

  1. 先满足最大需求:100 台主机需要 7 个主机位(2^7-2=126),掩码 /25

    • 子网A:192.168.20.0/25(范围:.1 - .126)

  2. 在剩余地址中继续划分:剩余 192.168.20.128/25

    • 划分给 50 台主机的子网:需要 6 个主机位(2^6-2=62),掩码 /26

    • 子网B:192.168.20.128/26(范围:.129 - .190)

    • 子网C:192.168.20.192/26(范围:.193 - .254)? 不对!192.168.20.192/26的网段是 .192.255,但 .192/26192.168.20.192192.168.20.255的网络地址。实际上,从 .128/25划分出两个 /26

      • 子网B: 192.168.20.128/26

      • 子网C: 192.168.20.128 + 64 = 192.168.20.192/26

  3. 继续精细划分:现在需要 2 台主机的子网(如点对点链路),需要 2 个主机位(2^2-2=2),掩码 /30

    • 我们可以从还未使用的地址块中划分,或者如果子网B和C有富余,可以从它们中再划分。但这里为了简单,假设我们从另一个地址块划分。例如,从 192.168.30.0/24中划分多个 /30

    • 子网D:192.168.30.0/30(可用IP:.1 和 .2)

    • 子网E:192.168.30.4/30(可用IP:.5 和 .6)

    • ... 以此类推,步长为 4。

通过 VLSM,我们最大限度地利用了有限的 IPv4 地址空间。


第二部分:IPv6 地址规划

IPv6 地址是一个 128 位的二进制数,通常用冒号分十六进制表示(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。其地址空间极其庞大,规划理念与 IPv4 有显著不同。

1. IPv6 地址简化与前缀
  • 简化规则

    1. 省略前导零:02db8-> 2db8

    2. 连续全零段可用 ::代替(但整个地址中只能使用一次)。

      • 示例:2001:0db8:0000:0000:8a2e:0000:0370:7334-> 2001:db8::8a2e:0:370:7334

  • 前缀:相当于 IPv4 的网络号,用 CIDR 表示,如 /64/64是子网的标准大小。

2. IPv6 地址类型与规划要点
  • 全局单播地址:类似于 IPv4 的公网地址,格式为 2000::/3

  • 唯一本地地址:类似于 IPv4 的私有地址(10.0.0.0/8等),格式为 fc00::/7用于内部网络规划

  • 链路本地地址fe80::/10,每个接口自动生成,用于同一链路上的邻居发现和通信。

IPv6 规划核心思想:分层与聚合

IPv6 规划的重点不再是节省地址,而是实现高效的路由聚合。目标是将连续的前缀宣告给上游,以减少全球路由表的大小。

典型规划方案

假设你从运营商获得一个 /48的全局单播地址块:2001:db8:1234::/48

  • 前 48 位:由运营商分配,固定不变。

  • 接下来的 16 位(第 49-64 位):用于定义子网。你有 2^16 = 65536个可用的 /64子网!

  • 最后 64 位:用于主机自动配置或手动分配。

规划示例

  • 2001:db8:1234:0000::/64- 用于网络基础设施(路由器互联)

  • 2001:db8:1234:0001::/64- 用于数据中心服务器

  • 2001:db8:1234:1000::/64- 用于办公楼A的无线网络

  • 2001:db8:1234:1001::/64- 用于办公楼A的有线网络

  • 2001:db8:1234:2000::/64- 用于办公楼B

  • 2001:db8:1234:3000::/64- 用于DMZ区域

这种规划使得路由汇总非常简单。例如,你可以将整个 2001:db8:1234::/48宣告出去,而不需要宣告成千上万个小的子网。

3. IPv6 子网划分计算

IPv6 的子网划分比 IPv4 简单得多,因为通常只关心子网ID​ 部分。

场景:将 2001:db8:abba::/48划分为 8 个规模相等的子网。

计算

  1. 确定需要借用的位数:划分 8 个子网,需要 2^3 = 8,所以需要从主机位(实际上是子网ID部分)借 3 位。

  2. 新的前缀长度:原有 /48借 3 位,新前缀为 /48+3 = /51

  3. 列出子网:子网ID部分借3位,意味着子网ID的步进值是 2^(16-3) = 8192?不,更简单的方法是看第4个hextet(16位块)的前3位。我们直接枚举:

子网索引

第4个 Hextet (二进制前3位)

子网地址

0

000

2001:db8:abba:0000::/51

1

001

2001:db8:abba:2000::/51

2

010

2001:db8:abba:4000::/51

3

011

2001:db8:abba:6000::/51

4

100

2001:db8:abba:8000::/51

5

101

2001:db8:abba:a000::/51

6

110

2001:db8:abba:c000::/51

7

111

2001:db8:abba:e000::/51

每个子网都是一个巨大的 /51网络,你可以继续将其划分为标准的 /64子网供实际使用。


总结与对比

特性

IPv4

IPv6

地址空间

32位,匮乏

128位,极其丰富

规划重点

节省地址,使用 VLSM 避免浪费

路由聚合,采用分层、结构化的分配

子网大小

灵活,可小至 /30(2个主机)

标准子网为 /64,非常巨大

计算复杂度

较高,需精确计算掩码和地址范围

较低,主要关注子网ID部分的位运算

私有地址

10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16

唯一本地地址 fc00::/7

核心建议

  • IPv4:像管理稀缺资源一样,精打细算,善用 VLSM。

  • IPv6:像规划城市一样,先做好顶层设计(按地域、功能分层),再进行地址分配,为未来留足扩展空间。

掌握这两种协议的地址规划,是你从初级网络使用者迈向专业网络工程师或架构师的关键一步。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐