文章目录
- [1. 什么是十进制 (Decimal)?](#1. 什么是十进制 (Decimal)?)
- [2. 什么是二进制 (Binary)?](#2. 什么是二进制 (Binary)?)
- [3. 如何进行转换?](#3. 如何进行转换?)
-
- [🚀 (A) 二进制 转换到 十进制](#🚀 (A) 二进制 转换到 十进制)
- [🚀 (B) 十进制 转换到 二进制](#🚀 (B) 十进制 转换到 二进制)
- [4. 什么是 MAC 地址 (物理地址)?](#4. 什么是 MAC 地址 (物理地址)?)
- [5. 什么是 IP 地址 (逻辑地址)?](#5. 什么是 IP 地址 (逻辑地址)?)
- [6. IP 地址的组成与格式 (以 IPv4 为例)](#6. IP 地址的组成与格式 (以 IPv4 为例))
- [7. 什么是子网掩码 (Subnet Mask)?](#7. 什么是子网掩码 (Subnet Mask)?)
-
- [(A) 子网掩码的表现形式](#(A) 子网掩码的表现形式)
- [(B) 子网掩码的作用](#(B) 子网掩码的作用)
- [8. 什么是网关 (Gateway)?](#8. 什么是网关 (Gateway)?)
- [9. 什么是 IPv6?](#9. 什么是 IPv6?)
-
- [(A) 为什么需要 IPv6?](#(A) 为什么需要 IPv6?)
- [(B) IPv6 的特点与格式](#(B) IPv6 的特点与格式)
- [(C) IPv6 的主要优点](#(C) IPv6 的主要优点)
- [10. 传统的 IP 地址分类 (Classful Addressing)](#10. 传统的 IP 地址分类 (Classful Addressing))
- [11. 公网地址 (Public IP) vs. 私网地址 (Private IP)](#11. 公网地址 (Public IP) vs. 私网地址 (Private IP))
-
- [(A) 公网地址 (Public IP)](#(A) 公网地址 (Public IP))
- [(B) 私网地址 (Private IP)](#(B) 私网地址 (Private IP))
- [12. 特殊 IP 地址](#12. 特殊 IP 地址)
- [13. 为什么需要子网划分?](#13. 为什么需要子网划分?)
- [14. 什么是等长子网划分 (FLSM)?](#14. 什么是等长子网划分 (FLSM)?)
- [15. 什么是变长子网划分 (VLSM)?](#15. 什么是变长子网划分 (VLSM)?)
- [16. 点到点 (P2P) 网络的子网掩码](#16. 点到点 (P2P) 网络的子网掩码)
- [17. 如何判断 IP 地址所属的网段?](#17. 如何判断 IP 地址所属的网段?)
-
- [`10001100 (140) & 11000000 (192)](#`10001100 (140) & 11000000 (192))
- [17. 合并网段的方法(路由聚合)](#17. 合并网段的方法(路由聚合))
-
- [`00000000 00000001 00000010 00000011](#`00000000 00000001 00000010 00000011)
- [18. 合并网段的规律](#18. 合并网段的规律)
- [19. 如何判断一个网段是超网还是子网?](#19. 如何判断一个网段是超网还是子网?)
1. 什么是十进制 (Decimal)?
十进制就是我们日常生活中最熟悉的计数系统,它基于数字 10。
- 基数 (Base): 10
- 可用数字: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (共10个)
- 规则: "逢十进一"。
- 位权 (Positional Value): 每一位的值等于该位的数字乘以 10 的 n 次方(n从右往左,从 0 开始)。
示例:
以数字 145 为例:
145 = ( 1 × 10 2 ) + ( 4 × 10 1 ) + ( 5 × 10 0 ) 145 = (1 \times 10^2) + (4 \times 10^1) + (5 \times 10^0) 145=(1×102)+(4×101)+(5×100)
145 = ( 1 × 100 ) + ( 4 × 10 ) + ( 5 × 1 ) 145 = (1 \times 100) + (4 \times 10) + (5 \times 1) 145=(1×100)+(4×10)+(5×1)
145 = 100 + 40 + 5 145 = 100 + 40 + 5 145=100+40+5
2. 什么是二进制 (Binary)?
二进制是计算机世界的基础。计算机的电路只有两种状态:开(通电)和关(断电),正好对应二进制中的 1 和 0。
- 基数 (Base): 2
- 可用数字: 0, 1 (共2个)
- 规则: "逢二进一"。
- 位权 (Positional Value): 每一位的值等于该位的数字乘以 2 的 n 次方。n 从右往左,从 0 开始。
示例:
以二进制数 1011 2 1011_2 10112 为例 (下标的 2 表示这是二进制数):
1011 2 = ( 1 × 2 3 ) + ( 0 × 2 2 ) + ( 1 × 2 1 ) + ( 1 × 2 0 ) 1011_2 = (1 \times 2^3) + (0 \times 2^2) + (1 \times 2^1) + (1 \times 2^0) 10112=(1×23)+(0×22)+(1×21)+(1×20)
1011 2 = ( 1 × 8 ) + ( 0 × 4 ) + ( 1 × 2 ) + ( 1 × 1 ) 1011_2 = (1 \times 8) + (0 \times 4) + (1 \times 2) + (1 \times 1) 10112=(1×8)+(0×4)+(1×2)+(1×1)
1011 2 = 8 + 0 + 2 + 1 = 11 ( 十进制 ) 1011_2 = 8 + 0 + 2 + 1 = 11 (十进制) 10112=8+0+2+1=11(十进制)
3. 如何进行转换?
🚀 (A) 二进制 转换到 十进制
方法:按权相加法
这和上面解释二进制时的示例一样:把二进制数的每一位,乘以它对应的 2 的 n n n 次方(位权),然后把所有结果加起来。
示例:将 11010 2 11010_2 110102 转换为十进制
🚀 (B) 十进制 转换到 二进制
方法:除2取余法 (短除法)
这是最系统的方法:将十进制数不断地除以 2,记录下每次的余数,直到商变为 0。最后,将所有余数倒序排列,得到的就是二进制数。
示例:将 43 (十进制) 转换为二进制
-
执行短除法:
- 43 ÷ 2 = 21. 43 \div 2 = 21 . 43÷2=21.... 余 1 (这是最低位)
- 21 ÷ 2 = 10 21 \div 2 = 10 21÷2=10 ... 余 1
- 10 ÷ 2 = 5 10 \div 2 = 5 10÷2=5... 余 0
- 5 ÷ 2 = 2 5 \div 2 = 2 5÷2=2 ... 余 1
- 2 ÷ 2 = 1 2 \div 2 = 1 2÷2=1 ... 余 0
- 1 ÷ 2 = 0 1 \div 2 = 0 1÷2=0 ... 余 1 (这是最高位)
-
倒序读取余数:
从下往上读取所有余数:101011
所以,43 (十进制) 等于 101011 (二进制)。
4. 什么是 MAC 地址 (物理地址)?
- 全称: Media Access Control Address (媒体访问控制地址)。
- 作用: 在局域网 (LAN) 内部(例如你家里的所有设备连到同一个路由器)实现设备之间的通信。它工作在数据链路层(OSI 模型的第2层)。
- 唯一性: 全球唯一。它在设备(主要是网卡,NIC)生产时就被"烧录"进硬件里了。
- 格式:
- 它是一个 48 位 (6 字节) 的数字。
- 通常表示为 6 组两位数的十六进制 数,用冒号 (
:) 或短横线 () 分隔。 - 示例:
00:1A:2B:3C:4D:5E或00-1A-2B-3C-4D-5E
- 类比: 设备的身份证号。无论你走到哪里,你的身份证号都不会变。
5. 什么是 IP 地址 (逻辑地址)?
- 全称: Internet Protocol Address (互联网协议地址)。
- 作用: 在广域网 (WAN) 或整个互联网上定位一台设备,并允许网络之间(例如你家和谷歌的服务器)的数据路由。它工作在网络层(OSI 模型的第3层)。
- 唯一性: 在同一个网络中 是唯一的,但在全球范围内不一定(例如,你家的
192.168.1.100和我家的192.168.1.100是不同的,这被称为"私有地址")。 - 分配: 它可以是动态的 (由网络中的 DHCP 服务器,比如你的路由器,自动分配)或静态的(手动设置)。
- 类比: 你的快递收货地址。如果你搬家了(连接到新网络),你会得到一个新的地址。
6. IP 地址的组成与格式 (以 IPv4 为例)
目前最常用的是 IPv4 (Internet Protocol version 4)。
-
本质: IPv4 地址本质上是一个 32 位 的二进制数。
- 例如:
11000000.10101000.00000001.01100100
- 例如:
-
格式 (表现形式):
- 为了方便人类阅读,这 32 位被分成了 4 个部分,每个部分 8 位(称为一个字节)。
- 每个 8 位的二进制数被转换成一个十进制数(范围是 0-255)。
- 这 4 个十进制数之间用点 (
.) 隔开。这就是我们熟知的"点分十进制"表示法。 - 示例: 上面的二进制
11000000.10101000.00000001.0110010011000000= 19210101000= 16800000001= 101100100= 100
- 所以,它对应的 IP 地址就是:
192.168.1.100
-
组成 (逻辑结构):
一个 IP 地址在逻辑上被分为两个部分:
- 网络ID (Network ID): 标识设备所在的网络(像街道名称)。
- 主机ID (Host ID): 标识该网络中的特定设备(像门牌号码)。
关键问题: 看到 192.168.1.100,我们怎么知道哪部分是"网络ID",哪部分是"主机ID"呢?
答案就是:子网掩码 (Subnet Mask)。
7. 什么是子网掩码 (Subnet Mask)?
子网掩码是用来"切割" IP 地址的尺子或过滤器。
(A) 子网掩码的表现形式
子网掩码的格式和 IP 地址一样,也是一个 32 位的二进制数,也用点分十进制表示。
它有两种常见的表示方法:
-
点分十进制法:
- 它由一串连续的
1和一串连续的0组成(在二进制下)。 - 示例 1:
255.255.255.0- 二进制:
11111111.11111111.11111111.00000000
- 二进制:
- 示例 2:
255.255.0.0- 二进制:
11111111.11111111.00000000.00000000
- 二进制:
- 它由一串连续的
-
CIDR (无类别域间路由) 表示法:
- 这是一种更现代、更简洁的表示法。
- 它在 IP 地址后面加上一个斜杠 (
/) 和一个数字。 - 这个数字代表子网掩码中二进制
1的个数。 - 示例 1:
255.255.255.0(有 24 个1) 等价于/24 - 示例 2:
255.255.0.0(有 16 个1) 等价于/16
所以,
192.168.1.100配合255.255.255.0的掩码,也可以写成192.168.1.100/24。
(B) 子网掩码的作用
子网掩码的唯一作用,就是告诉计算机:一个 IP 地址中,哪几位是"网络ID",哪几位是"主机ID"。
- 规则:
- 在子网掩码的二进制中,所有
1对应的 IP 地址位是网络ID。 - 在子网掩码的二进制中,所有
0对应的 IP 地址位是主机ID。
- 在子网掩码的二进制中,所有
我们来看一个完整的例子:
- IP 地址:
192.168.1.100 - 子网掩码:
255.255.255.0(或/24)
-
将两者都转换为二进制:
- IP:
11000000.10101000.00000001.01100100 - Mask:
11111111.11111111.11111111.00000000
- IP:
-
进行"与" (AND) 运算(或者说,用掩码过滤):
-
掩码是 1 的部分 (前 24 位) 被保留下来,代表网络ID:
11000000.10101000.00000001 (即 192.168.1)
-
掩码是 0 的部分 (后 8 位) 被识别,代表主机ID:
01100100 (即 100)
-
-
得出结论:
- 网络ID (街道):
192.168.1.0(主机位全为0时,代表这个网络本身) - 主机ID (门牌号):
100 - 广播地址 (向整条街喊话):
192.168.1.255(主机位全为1时)
- 网络ID (街道):
为什么这很重要?
计算机通过这个计算来决定如何发送数据包:
当这台 192.168.1.100 电脑要发送数据给 192.168.1.200 时:
它用自己的子网掩码
/24计算出目标192.168.1.200的网络ID 也是192.168.1。结论: "目标和我在同一个局域网(同一条街)!"
行动: 电脑会直接在局域网内通过 MAC 地址 找到
192.168.1.200并发送数据。
当它要发送数据给 8.8.8.8 (谷歌的 DNS) 时:它用子网掩码
/24计算出目标8.8.8.8的网络ID 是8.8.8。结论: "目标和我的网络
192.168.1不一样,它在远程网络(别的城市)!"行动: 电脑会将数据包发送给它的"网关 (Gateway) "(通常是你的路由器
192.168.1.1),由路由器负责把数据包转发到互联网上。
总结
| 特性 | MAC 地址 | IP 地址 (IPv4) | 子网掩码 |
|---|---|---|---|
| 比喻 | 身份证号 | 快递地址 | 邮政编码 / 街道规则 |
| 格式 | 48位十六进制 (如 00:1A:..) |
32位点分十进制 (如 192.168.1.100) |
32位点分十进制 (如 255.255.255.0) |
| 用途 | 局域网内设备通信 (L2) | 全局网络间路由 (L3) | 划分 IP 地址的网络ID和主机ID |
| 谁分配 | 硬件制造商 (固定) | 网络管理员 / DHCP (可变) | 网络管理员 (定义网络结构) |
| 唯一性 | 全球唯一 | 网络内唯一 | - |
8. 什么是网关 (Gateway)?
您可以把网关想象成您家里(局域网)的大门。
- 核心作用: 网关是一个网络设备(通常是您的路由器),它充当连接两个不同网络 的出口和入口。最常见的例子就是连接您家里的局域网 (LAN) 和互联网 (WAN)。
- 工作原理(接续上个例子):
- 记得我们之前讨论过,您的电脑(例如
192.168.1.100)如何判断数据是发给"邻居"(局域网)还是"远方城市"(互联网)吗? - 当它通过子网掩码计算出目标地址(如
8.8.8.8)不在本地网络时,它不会尝试直接发送。 - 相反,它会把这个数据包"扔"给它被设定好的"默认网关"。
- 在您家里,这个默认网关的地址通常是
192.168.1.1或192.168.0.1------这正是您路由器的管理地址。
- 记得我们之前讨论过,您的电脑(例如
- 总结:
- 设备在局域网内通信(邻居): 靠 MAC 地址直接对话。
- 设备要访问互联网(远方): 必须先把数据包发给网关(路由器),由网关负责将数据包转发出去。
9. 什么是 IPv6?
IPv6 (Internet Protocol version 6) 是下一代互联网协议,它的出现主要是为了解决 IPv4 地址即将耗尽的问题。
(A) 为什么需要 IPv6?
- IPv4 的局限: IPv4 使用 32 位地址(如
192.168.1.100),它最多只能提供约 43 亿 ( 2 32 2^{32} 232) 个地址。 - 地址耗尽: 随着智能手机、物联网 (IoT) 设备、智能家居等的爆炸式增长,43 亿个地址早已不够用。
- NAT 的妥协: 我们目前依赖一种叫做 NAT(网络地址转换)的技术。您的路由器(网关)用一个公共 IP 地址,让您家里的所有设备(私有 IP 地址)共享上网。但这只是一个"续命"的妥协方案,它破坏了网络的端到端连接。
(B) IPv6 的特点与格式
-
极大的地址空间 (核心优势):
- IPv6 使用 128 位 (bit) 地址。
- 这能提供 2 128 2^{128} 2128个地址------这个数字极其庞大,大约是 3.4 × 10 38 3.4 \times 10^{38} 3.4×1038。
- 这个数量足以让地球上每一粒沙子都分配到一个 IP 地址,彻底解决了地址短缺问题。
-
IPv6 地址的格式:
- 表示法: 它不再使用点分十进制,而是使用冒号十六进制。
- 结构: 128 位被分成 8 组,每组 16 位(用 4 个十六进制数表示),组与组之间用冒号 (
:) 分隔。 - 完整示例:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
-
格式简化规则 (重要):
由于完整地址太长,IPv6 有两个简化书写规则:
- 规则 1:省略前导零 (Leading Zeros)
- 每一组 (16位) 中,前面的
0可以省略。 - 例如:
0db8变为db8 - 例如:
0000变为0 2001:0db8:85a3:0000:0000:8a2e:0370:7334- 简化后:
2001:db8:85a3:0:0:8a2e:370:7334
- 每一组 (16位) 中,前面的
- 规则 2:压缩连续的零 (Double Colon)
- 如果有多组连续的
0,可以用双冒号::来代替。 - 注意: 为了避免歧义,
::在一个地址中只能使用一次。 - 基于上例:
2001:db8:85a3:0:0:8a2e:370:7334 0:0这两组可以压缩- 最终简化为:
2001:db8:85a3::8a2e:370:7334
- 如果有多组连续的
- 规则 1:省略前导零 (Leading Zeros)
© IPv6 的主要优点
- 海量地址空间: 根本上解决地址不足的问题。
- 无需 NAT: 每个设备都可以拥有一个全球唯一的"公网" IP 地址,实现了真正的端到端连接,这对于 P2P、物联网和实时通信非常有利。
- 更高安全性: IPv6 在设计时就原生支持 IPsec(一种加密和身份验证协议),而 IPv4 中 IPsec 只是可选的。
- 更高效的路由: IPv6 简化了数据包的头部 (Header) 结构,减轻了路由器(网关)的处理负担,理论上路由效率更高。
- 自动配置 (SLAAC): 设备可以不依赖 DHCP 服务器(如路由器)就自动为自己配置一个可用的 IP 地址,简化了网络管理。
总结对比:IPv4 vs IPv6
| 特性 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位 (bit) | 128 位 (bit) |
| 地址总量 | 约 43 亿 | 约 3.4 × 10 38 3.4 \times 10^{38} 3.4×1038 (几乎无限) |
| 表示格式 | 点分十进制 (如 192.168.1.1) |
冒号十六进制 (如 2001:db8::1) |
| 地址配置 | 手动, 或 DHCP | 自动配置 (SLAAC), 或 DHCPv6 |
| NAT 依赖 | 高度依赖 | 不需要 NAT |
| 安全性 | IPsec (可选) | IPsec (原生内置) |
| 头部结构 | 较复杂,包含校验和 | 简化,无校验和,处理更快 |
10. 传统的 IP 地址分类 (Classful Addressing)
在早期,为了方便地划分不同规模的网络,IPv4 地址被分为了 A, B, C, D, E 五类。这个分类是根据地址的第一个字节 (Octet) 的值来决定的。
背景知识: 这种分类方式现在已不常用,已被更灵活的 CIDR(在子网掩码中提到的 /24 这种)所取代,但了解它有助于理解 IP 地址的历史和结构。
| 类别 | 第一个字节范围 | 默认子网掩码 | 二进制前缀 | 主要用途 | 网络/主机划分 |
|---|---|---|---|---|---|
| A 类 | 1 - 126 | 255.0.0.0 (/8) |
0xxx... |
超大型网络(如国家、巨型企业) | 网络.主机.主机.主机 |
| B 类 | 128 - 191 | 255.255.0.0 (/16) |
10xx... |
大型至中型网络(如大型企业、大学) | 网络.网络.主机.主机 |
| C 类 | 192 - 223 | 255.255.255.0 (/24) |
110x... |
中小型网络(如小型企业、家庭网络) | 网络.网络.网络.主机 |
| D 类 | 224 - 239 | 不适用 | 1110... |
多播 (Multicast)(用于一对多的通信) | 不划分 |
| E 类 | 240 - 255 | 不适用 | 1111... |
保留(用于未来或实验性研究) | 不划分 |
注意:
- 127.x.x.x 地址段被跳过了,因为它被保留用于一个非常特殊的用途(见下文)。
- A类 网络数量少(126个),但每个网络能容纳的主机极多(约1677万个)。
- C类 网络数量多(约209万个),但每个网络能容纳的主机较少(254个)。
11. 公网地址 (Public IP) vs. 私网地址 (Private IP)
这是现代网络中最重要的一个分类概念。
(A) 公网地址 (Public IP)
- 定义: 在互联网 上全球唯一 且可以直接访问的地址。
- 分配: 由 ISP(互联网服务提供商,如中国电信、中国联通)分配给您的路由器或服务器。
- 作用: 就像您在互联网上的"门牌号",全球的设备都可以通过这个地址找到您(除非有防火墙阻挡)。
- 范围: 除去下面提到的私网地址和特殊地址之外的所有 A、B、C 类地址。
- 示例: 谷歌的
8.8.8.8或 百度的主页 IP39.156.66.10都是公网地址。
(B) 私网地址 (Private IP)
- 定义: 专为在局域网 (LAN) 内部(如家庭、办公室、学校)使用而保留的地址。
- 特点:
- 不可在互联网上路由: 互联网上的路由器会丢弃发往这些地址的数据包。
- 可以重复使用: 你家的路由器可以分配
192.168.1.100,我家的也可以。它们在各自的局域网内是唯一的,但对外是隔离的。
- 作用: 解决 IPv4 地址不足的权宜之计。通过 NAT (网络地址转换) 技术(由您的路由器执行),您家里所有使用私网地址的设备(手机、电脑)可以"共享"一个公网 IP 地址来访问互联网。
- 保留范围 (RFC 1918):
- A 类私有:
10.0.0.0到10.255.255.255(即10.0.0.0/8) - B 类私有:
172.16.0.0到172.31.255.255(即172.16.0.0/12) - C 类私有:
192.168.0.0到192.168.255.255(即192.168.0.0/16)
- A 类私有:
如何判断?
当你看到一个 IP 地址时:
如果是
10.x.x.x或者是
172.16.x.x到172.31.x.x或者是 192.168.x.x
那么它一定是一个私网地址。否则,它就是一个公网地址(或特殊地址)。
12. 特殊 IP 地址
除了上述分类,还有一些具有特定含义和功能的保留地址:
0.0.0.0(全零地址)- 含义: "任何地址"或"未指定地址"。
- 用途:
- 在路由表中,
0.0.0.0代表"默认网关"路由,即"所有不知道该发往哪里的数据包,都发到这里"。 - 当设备启动但尚未从 DHCP 获取到 IP 时,它可能会用
0.0.0.0作为源地址。
- 在路由表中,
127.0.0.1(环回地址)- 含义:
localhost(本地主机),即"本机"。 - 用途: 用于测试您自己电脑上的网络服务。当您向
127.0.0.1发送数据时,数据包不会离开您的电脑,而是直接在内部"环回"到您自己。 - 备注: 整个
127.0.0.0/8网段(127.0.0.1到127.255.255.254)都用于环回,但127.0.0.1是最常用的。
- 含义:
- 网络地址 (Network Address)
- 含义: 标识一个网络的"街道名称"。
- 特征: 主机ID (Host ID) 部分全为 0。
- 示例: 在
192.168.1.100/24这个配置中,网络地址是192.168.1.0。 - 用途: 路由器使用网络地址来规划路由。这个地址不能分配给具体的设备(如电脑或手机)。
- 广播地址 (Broadcast Address)
- 含义: "向网络中的所有人喊话"。
- 特征: 主机ID (Host ID) 部分全为 1。
- 示例: 在
192.168.1.0/24这个网络中,广播地址是192.168.1.255。 - 用途: DHCP 服务器在分配 IP 地址时会用到它。这个地址也不能分配给具体设备。
169.254.x.x(APIPA 地址)- 全称: Automatic Private IP Addressing (自动私有 IP 寻址)。
- 含义: 这是一个"链接本地地址"。
- 用途: 当您的电脑设置为自动获取 IP (DHCP),但网络中的 DHCP 服务器失联或故障 时,操作系统(如 Windows)会自动 从
169.254.0.0/16这个范围中为自己挑选一个 IP。 - 现象: 如果你发现你的 IP 变成了
169.254.x.x,这通常意味着你无法连接到路由器或互联网。
子网划分 (Subnetting) 就是一个网络管理员主动 进行的操作,目的是把一个大网络 "切割"成多个小网络。
您可以把一个 C 类网络(例如 192.168.1.0/24,有 254 个可用地址)想象成一整块没有切割的大披萨。
13. 为什么需要子网划分?
如果您不切割这块"披萨"(不划分 C 类网络),而是把 250 台电脑都放在一个网络里,您会遇到三个严重的问题:
- 广播风暴 (Broadcast Storm):
- 在网络中,有一种消息叫做"广播"(Broadcast),它需要发送给网络中的所有设备(例如,一台新电脑启动时会喊:"谁是 DHCP 服务器?")。
- 在一个有 250 台设备的网络中,任何一台设备发送广播,其他 249 台设备都必须停下手头的工作来处理这个广播。
- 当设备数量很多时,这些"呐喊"会占用大量资源,导致网络性能急剧下降,就像一个菜市场一样嘈杂。
- 子网划分的解决: 将网络划分为 4 个子网后,每个子网(广播域)只有约 60 台设备。一个子网内部的"呐喊"(广播)不会穿过路由器传播到其他子网。这样就实现了"隔音",极大提升了性能。
- 网络安全 (Security):
- 在一个扁平的、未划分的网络中,所有设备默认都可以"看到"彼此。
- 这意味着"财务部"的电脑可以轻易访问"研发部"的服务器,这非常不安全。
- 子网划分的解决: 我们可以为财务部(子网A)和研发部(子网B)划分不同的子网。然后,我们在连接两个子网的路由器 上设置访问控制列表 (ACL),规定:"只允许财务部主管的 IP 访问研发部的某台服务器"。这样就实现了精细的安全隔离。
- 管理与灵活性 (Management):
- 如果一个公司在三个不同的楼层,您是希望所有 250 个 IP 地址混在一起,还是希望楼层 1(子网1)、楼层 2(子网2)、楼层 3(子网3)分别管理?
- 子网划分使网络结构化,便于排查问题(例如,
192.168.1.x全是楼层1的),也便于 IP 地址的分配和管理。
14. 什么是等长子网划分 (FLSM)?
FLSM (Fixed-Length Subnet Masking) 是最基础、最简单的子网划分方法。
-
核心理念: "等长" (Fixed-Length) 指的是,一旦你决定了如何切割,所有切割出来的"小块"大小必须完全一样。
-
比喻: 您有一块大披萨 (
/24),您决定把它切成 4 块。使用 FLSM,您必须"咔咔"两刀,把它切成4 块大小完全相等的披萨。 -
如何实现: 通过从"主机ID"部分"借走"固定位数的 bit 来增加"网络ID"。
-
示例:
- 原始网络:
192.168.1.0 /24(掩码255.255.255.0) - 目标: 将其划分为 4 个子网。
- 计算: 要得到 4 个子网,需要 2 n ≥ 4 2^n \geq 4 2n≥4,所以 n = 2 n=2 n=2。我们从主机位借 2 位。
- 新掩码: 原来是
/24,借了 2 位后,新掩码变成了/26(即255.255.255.192)。 - 结果 (4 个 /26 子网):
192.168.1.0 /26(可用主机 62 个)192.168.1.64 /26(可用主机 62 个)192.168.1.128 /26(可用主机 62 个)192.168.1.192 /26(可用主机 62 个)
- 原始网络:
-
FLSM 的问题:
非常浪费!
如果您的财务部需要 50 台电脑(一个 /26 刚好),但您的研发部需要 100 台电脑(一个 /26 不够,必须给两个),而连接两个路由器的 WAN 口只需要 2 个 IP 地址。如果您也给 WAN 口分配一个 /26 (62个地址),就浪费了 60 个 IP 地址!
15. 什么是变长子网划分 (VLSM)?
VLSM (Variable-Length Subnet Masking) 是 FLSM 的进化版,是现代网络规划的基石。
-
核心理念: "变长" (Variable-Length) 指的是,您可以根据实际需求 ,将一个大网络切割成大小不等的子网。
-
比喻: 您有一块大披萨 (
/24)。财务部说要 50 人份(切一块/26给他们),研发部说要 100 人份(切一块/25给他们),路由器说只要 2 人份(切一块/30给他们)。VLSM 允许您进行这种按需分配。 -
如何实现: 递归地对子网进行再划分。
-
示例 (解决 FLSM 的浪费问题):
- 原始网络:
192.168.1.0 /24 - 需求:
- 研发部 (Dept-A):需要 100 个主机
- 财务部 (Dept-B):需要 50 个主机
- WAN 链接:需要 2 个主机
- VLSM 规划 (总是从最大的需求开始):
- 研发部 (100 个):
- 需要 2 n − 2 ≥ 100 2^n - 2 \geq 100 2n−2≥100, n = 7 n=7 n=7 ( 2 7 = 128 2^7=128 27=128)。
- 需要 7 个主机位,所以掩码是 32 − 7 = / 25 32 - 7 = /25 32−7=/25。
- 分配:
192.168.1.0 /25(使用 128 个地址)
- 财务部 (50 个):
- 需要 2 n − 2 ≥ 50 2^n - 2 \geq 50 2n−2≥50, n = 6 ( 2 6 = 64 ) n=6 (2^6=64) n=6(26=64)。
- 需要 6 个主机位,所以掩码是 32 − 6 = / 26 32 - 6 = /26 32−6=/26。
- 上一个子网用到了
...0到...127,我们从...128开始。 - 分配:
192.168.1.128 /26(使用 64 个地址)
- WAN 链接 (2 个):
- 需要 2 n − 2 ≥ 2 2^n - 2 \geq 2 2n−2≥2, n = 2 n=2 n=2 ( 2 2 = 4 2^2=4 22=4)。
- 需要 2 个主机位,所以掩码是 32 − 2 = / 30 32 - 2 = /30 32−2=/30。
- 上一个子网用到了
...128到...191,我们从...192开始。 - 分配:
192.168.1.192 /30(使用 4 个地址)
- 研发部 (100 个):
- 原始网络:
-
VLSM 的优势:
极其高效! 我们完美地满足了所有需求,并且没有像 FLSM 那样为了 WAN 链接而浪费 60 个地址。使用 VLSM,我们只用了 4 个地址(/30)就搞定了 WAN 链接。
总结对比
| 特性 | FLSM (等长) | VLSM (变长) |
|---|---|---|
| 比喻 | 披萨必须切成大小相等的块 | 披萨可以按需切成大小不一的块 |
| 掩码 | 同一级别下的所有子网,掩码相同 | 不同子网的掩码可以不同 |
| 效率 | 低,容易造成 IP 地址浪费 | 高,极大节约了 IP 地址 |
| 应用 | 早期路由协议 (如 RIPv1),教学 | 现代所有路由协议 (如 OSPF, EIGRP, BGP) |
16. 点到点 (P2P) 网络的子网掩码
点到点 (Point-to-Point, P2P) 网络是指仅连接两个设备的网络,最常见的例子是两个路由器之间的直连链路。
-
需要多少 IP?
- 路由器 A 的接口需要 1 个。
- 路由器 B 的接口需要 1 个。
- 总共需要 2 个可用的主机 IP 地址。
-
如何计算掩码?
我们需要找到一个能提供至少 2 个可用 IP 的最小子网。
- 我们使用公式:可用主机数 = 2 n − 2 2^n - 2 2n−2 (其中 n n n 是主机位的数量)
- n = 1 n=1 n=1: 2 1 − 2 = 0 2^1 - 2 = 0 21−2=0 个可用 IP。(不够)
- n = 2 n=2 n=2: 2 2 − 2 = 4 − 2 = 2 2^2 - 2 = 4 - 2 = 2 22−2=4−2=2个可用 IP。(正好!)
-
得出掩码:
- 当主机位 n = 2 n=2 n=2 时,网络位就是 32 − 2 = 30 32 - 2 = 30 32−2=30 位。
- CIDR 形式:
/30 - 十进制形式:
255.255.255.252 - 二进制:
11111111.11111111.11111111.11111100
结论:
在 IPv4 中,用于点到点网络的最标准、最节约地址的子网掩码是 /30 (或 255.255.255.252)。
示例:
如果您使用 192.168.1.4 /30 这个子网:
- 网络地址:
192.168.1.4- 可用 IP 1:
192.168.1.5(分配给路由器 A)- 可用 IP 2:
192.168.1.6(分配给路由器 B)- 广播地址:
192.168.1.7
17. 如何判断 IP 地址所属的网段?
要确定一个 IP 地址属于哪个网段,您需要两个信息:
- IP 地址 (例如
192.168.1.140) - 子网掩码 (例如
/26或255.255.255.192)
方法:使用"按位与" (Bitwise AND) 运算
核心原理是:将 IP 地址的二进制和子网掩码的二进制进行"与"运算。结果就是该 IP 所属的网络地址(即网段的"名字")。
- "与" (AND) 运算规则:
1 AND 1 = 11 AND 0 = 00 AND 1 = 00 AND 0 = 0
示例:
- IP 地址:
192.168.1.140 - 子网掩码:
255.255.255.192(即/26)
-
转换为二进制(我们只关心最后一个字节,因为前三是 255):
- IP
140:10001100 - 掩码
192:11000000
- IP
-
执行"与" (AND) 运算:
`10001100 (140)
& 11000000 (192)
10000000 (128)`
-
得出结果:
运算结果是 128。
-
组合回去:
将前三个字节(因为掩码是 255)和运算结果组合,得到网络地址:192.168.1.128。
结论:
IP 地址 192.168.1.140 (子网掩码 /26) 属于 192.168.1.128 这个网段。
要判断一个 IP 地址是否属于 115.64.4.0/22 网段,您需要找出这个网段的完整地址范围。
🚀 快速判断法 (最常用)
一个 IP 地址(我们称之为 A.B.C.D)如果属于 115.64.4.0/22 网段,它必须满足以下所有条件:
- 第一个字节
A必须是115 - 第二个字节
B必须是64 - 第三个字节
C必须在4到7之间 (包括 4 和 7) - 第四个字节
D必须在0到255之间 (包括 0 和 255)
所以,这个网段的完整范围是:115.64.4.0 ~ 115.64.7.255
举例:
115.64.5.20在这个范围内吗? 是。115.64.7.255在这个范围内吗? 是 (这是广播地址)。115.64.3.100在这个范围内吗? 否 (因为3小于4)。115.64.8.1在这个范围内吗? 否 (因为8大于7)。
💡 原理计算法 (为什么是 4 到 7?)
这个方法能告诉您上面的范围是如何计算出来的。
-
分析掩码:
/22-
/22意味着 32 位 IP 地址中,前 22 位是"网络位",后 (32 - 22) = 10 位是"主机位"。 -
子网掩码的二进制是:
11111111.11111111.11111100.00000000
-
转换为十进制是:
255.255.252.0
-
-
找到"关键字节"
- 掩码
255.255.252.0中,数字既不是 255 也不是 0 的那一位,是第三个字节 (252)。这就是我们要计算的"关键字节"。
- 掩码
-
分析关键字节 (第 3 字节)
- 关键字节的掩码是
252,二进制是11111100。 - 这 8 位中,前 6 位是网络位,后 2 位是主机位。
- 整个网段的 10 个主机位,就是由这 2 位 和 第 4 字节的 8 位组成的 (2 + 8 = 10)。
- 关键字节的掩码是
-
计算网络地址 (主机位全为 0)
- 题目给的网络地址是
115.64.4.0。 - 它的第 3 字节是
4。 4的二进制是00000100。- 我们可以看到,它的后 2 位正好是
00,这确认了115.64.4.0确实是一个网络地址。
- 题目给的网络地址是
-
计算广播地址 (主机位全为 1)
- 广播地址就是把所有 10 个主机位都变成
1。 - 第 3 字节:
- 网络部分 (前 6 位) 不变:
000001 - 主机部分 (后 2 位) 变为
11 - 组合起来:
00000111十进制是7
- 网络部分 (前 6 位) 不变:
- 第 4 字节:
- 全部 8 个主机位都变为
1 - 组合起来:
11111111十进制是255
- 全部 8 个主机位都变为
- 广播地址就是把所有 10 个主机位都变成
-
得出结论
- 网络地址 (主机位全 0):
115.64.4.0 - 广播地址 (主机位全 1):
115.64.7.255 - 所有属于该网段的 IP :就是从
115.64.4.0到115.64.7.255的所有地址。 - 可分配给主机的 IP :
115.64.4.1到115.64.7.254(去掉头尾)。
- 网络地址 (主机位全 0):
- 子网划分需要注意的几个问题
在进行网络规划和子网划分时,必须考虑以下关键点:
- " n − 2 n-2 n−2" 可用性原则:
- 最重要的一条: 任何一个子网中的第一个地址 (网络地址,主机位全0) 和最后一个地址 (广播地址,主机位全1) 都是不可用的,不能分配给电脑、服务器等设备。
- 公式: 可用主机数 = 2 n − 2 2^n - 2 2n−2 (其中 n n n 是主机位的数量)。
- 陷阱: 如果一个部门需要 60 台电脑,你不能给它一个
/26的子网 ( 2 6 − 2 = 62 2^6 - 2 = 62 26−2=62 个可用 IP),因为这只剩下 2 个 IP 的余量,非常危险。
- VLSM 规划顺序(变长子网):
- 在使用 VLSM(变长子网掩码)时,必须 遵循"从大到小"的分配原则。
- 原因: 您必须先把最大的地址块(例如需要 500 个 IP 的
/23)从您的地址池中分配出去。如果您先分配了小的(如/27),可能会导致剩余的地址空间"碎片化",无法容纳下您后续需要的大块地址。
- 可扩展性 (Scalability):
- 不要"过度优化"。 即使一个部门现在只有 10 台设备(需要一个
/28,14个可用IP),也不要只给他们/28。 - 考虑未来: 很快他们就会增加打印机、VoIP 电话、新员工、访客 Wi-Fi。为每个子网预留至少 50% 到 100% 的增长空间 (例如,直接分配
/27或/26)是明智的规划。
- 不要"过度优化"。 即使一个部门现在只有 10 台设备(需要一个
- 路由聚合 (Summarization) 的可能性:
- 尽量将地理位置相近 或功能相似 的子网分配连续的 (Contiguous) 地址块。
- 示例:
- 好规划: 1楼用
10.1.1.0/24,2楼用10.1.2.0/24,3楼用10.1.3.0/24。 - 坏规划: 1楼用
10.1.1.0/24,2楼用10.8.5.0/24,3楼用10.20.1.0/24。
- 好规划: 1楼用
- 好处: 在"好规划"中,核心路由器可以"聚合"这些路由,只用一条
10.1.0.0/22的路由条目就能代表 1、2、3 楼,极大地减小了路由表的体积,提高了路由效率。
- 清晰的文档:
- 子网划分一旦实施就很难更改。必须创建并维护一份清晰的文档(或使用 IPAM 工具)。
- 文档应包含: 每个子网的用途(如"财务部-数据")、网络地址、子网掩码、可用 IP 范围、网关地址、广播地址。
- 否则,网络会迅速变得混乱,导致 IP 冲突和排错困难。
17. 合并网段的方法(路由聚合)
合并网段(或称为"创建超网")的核心目的 是:用一个 网络条目来代表多个 连续的小网络,从而极大缩减路由表的大小,提高路由器的效率。
方法:寻找共同前缀(二进制比较法)
假设您要合并以下 4 个 C 类网络(它们都是 /24):
192.168.0.0 /24192.168.1.0 /24192.168.2.0 /24192.168.3.0 /24
步骤:
-
找出变化的部分: 很明显,变化发生在第三个字节(0, 1, 2, 3)。
-
将变化部分转换为二进制:
0=000000001=000000012=000000103=00000011
-
从左到右,寻找共同的前缀:
`00000000
00000001
00000010
00000011000000... <-- 在这里开始不同了`
- 它们共同的前缀 是
000000(前 6 位)。
- 它们共同的前缀 是
-
计算新的子网掩码:
- 原始网络的前两个字节 (
192.168) 是固定的,即 16 位。 - 加上我们在第三个字节找到的 6 位共同前缀。
- 新的网络位 = 8 + 8 + 6 = 22 8 + 8 + 6 = 22 8+8+6=22 位。
- 新的掩码是:
/22(即255.255.252.0)
- 原始网络的前两个字节 (
-
确定汇总后的网络地址:
- 将共同前缀
000000补全 8 位(补 0),即00000000,转回十进制是0。 - 汇总后的网络地址是:
192.168.0.0 /22
- 将共同前缀
结论: 192.168.0.0/22 这一个条目,就成功代表了从 192.168.0.0 到 192.168.3.255 的所有地址。
18. 合并网段的规律
不是任何网段都可以随意合并,它们必须满足严格的规律:
- 地址必须连续 (Contiguous):
- 您可以 合并
192.168.0.0和192.168.1.0。 - 您不能 合并
192.168.0.0和192.168.2.0(如果192.168.1.0不在其中),因为它们不连续。
- 您可以 合并
- 必须是 2 的幂 ( 2 n 2^n 2n):
- 您只能合并 2 个、4 个、8 个、16 个...等 2 n 2^n 2n 数量的网段。
- 您不能 只合并 3 个网段(例如
0.0,1.0,2.0)。如果你尝试合并它们,你必须连同3.0一起合并(如上例),即使3.0你并没在用。
- 掩码必须一致:
- 要合并的子网本身的大小必须是相等 的。你不能直接合并一个
/24和一个/25。
- 要合并的子网本身的大小必须是相等 的。你不能直接合并一个
- 必须在"自然"边界上 (Alignment):
- 这是最容易出错的地方。汇总后的网络地址必须能被汇总的范围"整除"。
- 例 1 (正确): 合并
192.168.0.0/24和192.168.1.0/24192.168.0.0/23。 - 例 2 (错误): 您不能 合并
192.168.1.0/24和192.168.2.0/24192.168.1.0/23。 - 为什么? 因为
/23(包含 2 × 256 2 \times 256 2×256 个地址) 的网络边界只能 是...0.0,...2.0,...4.0,...6.0... (偶数开始)。192.168.1.0/23这个写法本身就是无效的,它实际上属于192.168.0.0/23这个大网段。
19. 如何判断一个网段是超网还是子网?
这个问题的答案是相对的。您需要一个"参照物",这个参照物就是我们之前提过的"默认分类掩码" (A, B, C 类)。
- 默认 (主类) 掩码 (复习):
- A 类 (如 10.x.x.x):默认
/8 - B 类 (如 172.16.x.x):默认
/16 - C 类 (如 192.168.x.x):默认
/24
- A 类 (如 10.x.x.x):默认
判断规则:
拿一个网段的实际掩码与其默认分类掩码进行比较:
- 子网 (Subnet)
- 定义: 当实际掩码长于 (大于) 默认掩码时。
- 含义: "网络位"变多了,主机位变少了。您从主机位借走了 bit,把一个大网络**"切小"**了。
- 示例:
192.168.1.128 /26192开头是 C 类,默认掩码是/24。- 实际掩码是
/26。 /26>/24,所以这是一个子网。
- 超网 (Supernet)
- 定义: 当实际掩码短于 (小于) 默认掩码时。
- 含义: "网络位"变少了,主机位变多了。您把网络位归还给了主机位,把几个小网络**"合并"**了。
- 示例:
192.168.0.0 /23192开头是 C 类,默认掩码是/24。- 实际掩码是
/23。 /23</24,所以这是一个超网。
- 主类网络 (Classful Network)
- 定义: 当实际掩码等于默认掩码时。
- 示例:
192.168.1.0 /24192开头是 C 类,默认掩码是/24。- 实际掩码是
/24。 - 两者相等,这是一个主类网络 (或者说,一个没有被划分也没有被合并的 C 类网络)。
总结表格:
| 网络示例 | IP 类别 | 默认掩码 | 实际掩码 | 比较 | 结论 |
|---|---|---|---|---|---|
10.1.2.0 /16 |
A 类 | /8 | /16 | /16 > /8 | 子网 |
172.16.0.0 /16 |
B 类 | /16 | /16 | /16 = /16 | 主类网络 |
192.168.1.0 /24 |
C 类 | /24 | /24 | /24 = /24 | 主类网络 |
192.168.1.0 /25 |
C 类 | /24 | /25 | /25 > /24 | 子网 |
192.168.0.0 /22 |
C 类 | /24 | /22 | /22 < /24 | 超网 |