IPv4/IPv6 编址与子网划分详解
核心主题:IPv4 地址结构与分类、子网掩码计算、VLSM 变长子网划分、CIDR 路由聚合、特殊 IP 地址大全、IPv6 地址表示与类型,附华为设备双栈配置实操。
一、IPv4 地址基础
1.1 地址结构与表示
- IPv4 地址为 32 位二进制,按每 8 位一组分为 4 段,以点分十进制表示
- 示例:
11000000.10101000.00000001.00000001→192.168.1.1 - 每段取值范围 0~255;整个地址由 网络位 + 主机位 两部分组成
- 网络位:标识主机属于哪个网段(类似小区地址)
- 主机位:标识网段内的具体设备(类似门牌号)
- 网络位相同的主机可直接通信;网络位不同必须经过路由器转发
1.2 传统五大分类(A/B/C/D/E 类)
| 类别 | 最高位 | 第一段范围 | 默认掩码 | 规模 | 用途 |
|---|---|---|---|---|---|
| A | 0 | 0~127 | /8(255.0.0.0) | 126 个网段,每段约 1677 万主机 | 大型网络 |
| B | 10 | 128~191 | /16(255.255.0.0) | 约 1.6 万网段,每段 65534 主机 | 中型网络 |
| C | 110 | 192~223 | /24(255.255.255.0) | 约 209 万网段,每段 254 主机 | 小型网络 |
| D | 1110 | 224~239 | 无 | — | 组播 |
| E | 1111 | 240~255 | 无 | — | 保留/实验 |
注意:0.x.x.x 与 127.x.x.x 虽处于 A 类范围,但均为特殊用途地址,不做常规单播分配。
1.3 三个核心计算公式
- 网络地址 = IP 地址 AND 子网掩码(主机位清零)
- 广播地址 = 网络地址的主机位全部置 1
- 可用主机数 = 2^主机位数 − 2(减去网络地址与广播地址)
1.4 常用掩码对照表(必背)
| CIDR | 子网掩码 | 主机位 | 可用主机数 | 块大小 |
|---|---|---|---|---|
| /8 | 255.0.0.0 | 24 | 16777214 | 256(第二段) |
| /16 | 255.255.0.0 | 16 | 65534 | 256(第三段) |
| /20 | 255.255.240.0 | 12 | 4094 | 16(第三段) |
| /24 | 255.255.255.0 | 8 | 254 | 256 |
| /25 | 255.255.255.128 | 7 | 126 | 128 |
| /26 | 255.255.255.192 | 6 | 62 | 64 |
| /27 | 255.255.255.224 | 5 | 30 | 32 |
| /28 | 255.255.255.240 | 4 | 14 | 16 |
| /29 | 255.255.255.248 | 3 | 6 | 8 |
| /30 | 255.255.255.252 | 2 | 2 | 4 |
| /31 | 255.255.255.254 | 1 | 2*(点对点专用) | 2 |
| /32 | 255.255.255.255 | 0 | 1(主机路由) | 1 |
记忆规律:掩码每加长 1 位,块大小减半、每子网可用主机数约减半,子网数翻倍。末段掩码 128、192、224、240、248、252、254、255 依次对应块大小 128、64、32、16、8、4、2、1。
二、子网划分基础
2.1 为什么要划分子网
- 节约 IP 地址,避免一个 /24 甚至 /16 只用几台主机
- 缩小广播域,降低广播流量与风暴影响范围
- 按部门、业务、地理位置隔离管理,配合 ACL 提升安全性
- 配合路由聚合,减缓路由表膨胀
2.2 划分四步法
- 算子网位:需要 N 个子网时,借位 n 满足 2^n ≥ N
- 算主机位:每子网需 H 台主机时,主机位 h 满足 2^h − 2 ≥ H
- 定掩码:新掩码长度 = 原掩码 + n;若与主机需求冲突,优先满足主机位并重新规划地址段
- 列子网:按块大小依次列出各子网的网络地址、可用地址范围、广播地址
2.3 示例:192.168.1.0/24 借 2 位 → 4 个 /26 子网
| 子网 | 网络地址 | 可用地址范围 | 广播地址 |
|---|---|---|---|
| 1 | 192.168.1.0/26 | 192.168.1.1~192.168.1.62 | 192.168.1.63 |
| 2 | 192.168.1.64/26 | 192.168.1.65~192.168.1.126 | 192.168.1.127 |
| 3 | 192.168.1.128/26 | 192.168.1.129~192.168.1.190 | 192.168.1.191 |
| 4 | 192.168.1.192/26 | 192.168.1.193~192.168.1.254 | 192.168.1.255 |
每个 /26 提供 62 个可用地址;块大小 64,即每 64 个地址是一个新子网的起点。
三、VLSM(可变长子网掩码)
3.1 概念
- 在同一个主网络(如 192.168.1.0/24)内,不同子网使用不同长度的掩码
- 按实际主机需求分配地址块,最大限度减少地址浪费
- 与之相对的 FLSM(定长子网掩码)是所有子网同样大小,灵活性差、浪费明显
3.2 规划原则
- 从大到小:先满足主机数最多的部门,再依次向下分配
- 地址连续:各子网紧密排列,剩余整块空间便于日后扩展与聚合
- 边界对齐:每个子网的网络地址必须是自身块大小的整数倍
- 协议支持:RIPv1 不携带掩码、不支持 VLSM;RIPv2、OSPF、IS-IS、BGP、静态路由均支持
3.3 实操示例:公司 192.168.1.0/24 按需划分
| 部门/链路 | 需求主机数 | 选择掩码 | 网络地址 | 可用范围 | 广播地址 |
|---|---|---|---|---|---|
| 部门 A | 100 | /25 | 192.168.1.0/25 | .1~.126 | .127 |
| 部门 B | 50 | /26 | 192.168.1.128/26 | .129~.190 | .191 |
| 部门 C | 20 | /27 | 192.168.1.192/27 | .193~.222 | .223 |
| 部门 D | 10 | /28 | 192.168.1.224/28 | .225~.238 | .239 |
| 部门 E | 5 | /29 | 192.168.1.240/29 | .241~.246 | .247 |
| 互连链路 1 | 2 | /30 | 192.168.1.248/30 | .249~.250 | .251 |
| 互连链路 2 | 2 | /30 | 192.168.1.252/30 | .253~.254 | .255 |
分配后 /24 地址全部用尽且无一浪费;若后续扩容,从新申请的大段(如 192.168.2.0/24)继续按 VLSM 细分。
3.4 快速口算技巧
- 块大小 = 256 − 掩码末段数值(如 /26:256 − 192 = 64)
- 子网起点必为块大小的整数倍:0、64、128、192……
- 判断归属:看目标 IP 落在哪个块区间,区间两端点即网络地址与广播地址
四、CIDR(无类别域间路由)
4.1 概念
- 彻底摒弃 A/B/C 类概念,统一用「前缀/长度」表示网络,如 10.1.0.0/16
- 除向主机位借位细分外,还能反向合并多个连续小网段为大前缀——路由聚合(超网)
- 价值:大幅缩减路由表规模;运营商只需发布一条聚合路由即可覆盖大量客户网段
4.2 聚合方法:找公共前缀
- 将各网段写成二进制,上下对齐
- 从左往右逐位比较,保留相同的公共前缀
- 公共前缀的位数即聚合后的掩码长度
4.3 聚合示例
- 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24
- 第三段 0、1、2、3 的二进制为 000000xx,公共前缀到第 22 位 → 聚合为 192.168.0.0/22
- 172.16.4.0/24 与 172.16.5.0/24 → 172.16.4.0/23
- 反向校验:聚合网段必须恰好覆盖原有地址、不得外溢;若强行聚合不连续网段(如 192.168.1.0/24 与 192.168.4.0/24)会引入错误路由
4.4 典型判断题
问:10.1.32.5 是否属于 10.1.32.0/21? 答:/21 在第三段的块大小为 8,子网起点为 10.1.32.0,覆盖 10.1.32.0~10.1.39.255;10.1.32.5 落入其中,属于该网段。
五、特殊 IPv4 地址大全
| 地址/网段 | 名称 | 说明 | 可否作源/目的 |
|---|---|---|---|
| 0.0.0.0 | 未指定地址 | DHCP 请求时的源地址;路由表中代表默认路由 | 仅源 |
| 0.0.0.0/8 | 本网络 | 历史遗留用法,已基本弃用 | 特殊 |
| 127.0.0.0/8 | 环回 | 127.0.0.1 即 localhost,测试本机协议栈 | 可,不出本机 |
| 10.0.0.0/8 | 私有 A 类 | RFC 1918,企业内网 | 内部可用,公网不路由 |
| 172.16.0.0/12 | 私有 B 类 | 覆盖 172.16.0.0~172.31.255.255 | 同上 |
| 192.168.0.0/16 | 私有 C 类 | 家庭与小型办公网络最常用 | 同上 |
| 100.64.0.0/10 | CGN 共享地址 | 运营商级 NAT 内部编址(RFC 6598) | 特殊 |
| 169.254.0.0/16 | 链路本地/APIPA | DHCP 失败后自动配置,仅同链路可达 | 可 |
| 224.0.0.0/4 | 组播(D 类) | 一对多通信 | 仅目的 |
| 255.255.255.255 | 受限广播 | 发往本链路所有主机,路由器不转发 | 仅目的 |
| 主机位全 0 | 网络地址 | 标识子网本身 | 不可配给主机 |
| 主机位全 1 | 直接广播 | 发往该子网内全部主机 | 仅目的 |
| 240.0.0.0/4 | E 类保留 | 科研实验 | 否 |
常用组播地址:224.0.0.1 所有主机、224.0.0.2 所有路由器、224.0.0.5/6 OSPF DRothers 与 DR/BDR、224.0.0.9 RIPv2、224.0.0.18 VRRP、224.0.0.22 IGMPv3 报告。
六、IPv6 地址基础
6.1 设计动机与特性
- 128 位地址,约 3.4×10^38 个,彻底解决 IPv4 地址枯竭
- 取消广播,改用组播与任播;摆脱对 NAT 的依赖,恢复端到端可达
- 首部固定 40 字节并简化字段,转发效率更高;取消首部校验和
- 内置无状态地址自动配置(SLAAC);邻居发现 NDP 取代 ARP;原生支持 IPsec
6.2 表示与压缩规则
- 128 位分成 8 组,每组 16 位、写成 4 个十六进制数,冒号分隔
- 完整示例:
2001:0db8:0000:0000:0000:0000:0000:0001 - 规则 1:每组前导零可省略 →
2001:db8:0:0:0:0:0:1 - 规则 2:连续全零组可用
::代替,但最多出现一次 →2001:db8::1 - 前缀长度表示:
2001:db8:1::/64(斜线后为网络前缀位数) - 非法示例:
2001::1::8(::出现两次会产生歧义)
6.3 地址结构
- 典型格式:
前缀(网络部分)+ 接口 ID(64 位) - 单播地址前缀通常为 /64,接口 ID 占 64 位
- 接口 ID 来源:MAC 经 EUI-64 生成、随机生成(隐私扩展)或手工指定
6.4 EUI-64 生成接口 ID
MAC 地址 48 位 → 接口 ID 64 位,步骤:
- 从中间拆开 MAC:前 24 位(厂商编号)+ 后 24 位(序列号)
- 中间插入 16 位
FFFE,凑足 64 位 - 将第 7 位(U/L 位)取反
示例:MAC 00-E0-FC-11-22-33 → 接口 ID 02E0:FCFF:FE11:2233,配合前缀得到 FE80::02E0:FCFF:FE11:2233。
6.5 IPv6 地址类型
| 类型 | 前缀 | 用途/说明 |
|---|---|---|
| 未指定地址 | ::/128 | 类似 IPv4 的 0.0.0.0,用于重复地址检测等 |
| 环回地址 | ::1/128 | 类似 127.0.0.1 |
| 链路本地 | FE80::/10 | 接口自动生成,仅本链路有效;NDP 与路由协议邻居建立的基础 |
| 唯一本地 | FC00::/7(常用 FD00::/8) | 类似 IPv4 私有地址,站点内部使用 |
| 全球单播 | 2000::/3 | 类似 IPv4 公网地址,可全球路由(2001:: 起分配) |
| 组播 | FF00::/8 | 一对多通信 |
| 任播 | 与单播共用地址空间 | 同一地址配置到多个节点,路由到拓扑最近的一个 |
重要组播地址:FF02::1 所有节点、FF02::2 所有路由器、FF02::1:FFXX:XXXX 被请求节点组播。IPv6 无广播,原广播场景由这些组播替代;被请求节点组播 = FF02::1:FF + 目标地址末 24 位,用于 NDP 地址解析,避免打扰链路上所有设备。
七、IPv4 与 IPv6 对比
| 维度 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位 | 128 位 |
| 表示方法 | 点分十进制 | 冒号分隔十六进制,:: 压缩 |
| 地址类型 | 单播、组播、广播 | 单播、组播、任播(无广播) |
| 地址解析 | ARP | NDP(基于 ICMPv6) |
| 地址配置 | 手工、DHCP | 手工、SLAAC、DHCPv6 |
| 首部长度 | 20~60 字节可变 | 固定 40 字节 + 扩展首部链 |
| 首部校验和 | 有,逐跳递减 | 无,交由下层与端到端校验 |
| 私有地址 | RFC 1918 | 唯一本地 FC00::/7 |
| 环回/未指定 | 127.0.0.1 / 0.0.0.0 | ::1 / :: |
| IPsec 支持 | 可选扩展 | 原生架构支持 |
八、华为设备配置实操(双栈)
8.1 实验拓扑与地址规划
R1 与 R2 通过 GE0/0/0 直连,互连链路使用 VLSM 中预留的 192.168.1.252/30;同时在该链路启用 IPv6(前缀 2001:db8:12::/64)验证双栈互通。R1 的 GE0/0/1 接部门 B 网段作网关。
| 设备 | 接口 | IPv4 地址 | IPv6 地址 |
|---|---|---|---|
| R1 | GE0/0/0 | 192.168.1.253/30 | 2001:db8:12::1/64 |
| R2 | GE0/0/0 | 192.168.1.254/30 | 2001:db8:12::2/64 |
| R1 | GE0/0/1 | 192.168.1.129/26 | 2001:db8:1::1/64 |
8.2 IPv4 地址配置(VLSM 落地)
<Huawei> system-view
[Huawei] sysname R1
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.253 30
[R1-GigabitEthernet0/0/0] quit
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.1.129 26
[R1-GigabitEthernet0/0/1] quit8.3 IPv6 双栈配置
[R1] ipv6
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ipv6 enable
[R1-GigabitEthernet0/0/0] ipv6 address 2001:db8:12::1 64
[R1-GigabitEthernet0/0/0] ipv6 address auto link-local
[R1-GigabitEthernet0/0/0] quit提示:接口执行 ipv6 enable 后,即使不配置全球单播地址,也会自动生成链路本地地址,供 NDP 与路由协议邻居交互使用。
8.4 验证命令
| 命令 | 作用 |
|---|---|
| display ip interface brief | 查看 IPv4 接口地址与状态 |
| display ipv6 interface brief | 查看 IPv6 接口的全球单播与链路本地地址 |
| display ipv6 interface GigabitEthernet 0/0/0 | 查看接口 IPv6 详情(含加入的组播组) |
| display current-configuration interface GigabitEthernet 0/0/0 | 查看接口完整配置 |
| ping 192.168.1.254 | IPv4 连通性测试 |
| ping ipv6 2001:db8:12::2 | IPv6 连通性测试 |
8.5 预期结果
display ipv6 interface brief中 R1 的 GE0/0/0 同时显示2001:DB8:12::1与FE80::...两个地址- R1 ping R2 的 IPv4 地址与 IPv6 地址均通,同一链路双栈互不影响
九、面试高频问答
- 172.20.1.5/26 属于哪个子网? /26 块大小 64,末段子网边界为 0、64、128、192;172.20.1.5 落在 172.20.1.0~172.20.1.63 区间 → 属于 172.20.1.0/26,可用范围 .1~.62,广播地址 .63。
- VLSM 与 CIDR 的区别? VLSM 是向主机位借位做「细分」,同一主网络内使用不同长度掩码,关注地址利用率;CIDR 是统一前缀表示并支持「聚合/超网」,关注路由表缩减,两者互为补充。
- 可用主机数为什么减 2? 主机位全 0 为网络地址(标识子网本身),全 1 为广播地址,均不能分配给主机接口。
- ping 127.0.0.1 通、ping 网关不通,说明什么? 本机 TCP/IP 协议栈正常(环回可达),问题出在本机网卡配置、物理链路或网关设备侧,应逐段排查。
- 主机获取到 169.254.x.x 地址是怎么回事? DHCP 服务器不可达时,系统自动配置的链路本地地址(APIPA),只能同链路通信;应排查 DHCP 服务、中继或链路。
- IPv6 为什么取消广播? 广播会打扰链路上所有节点且无法被路由器隔离;IPv6 改用精确的组播(所有节点、所有路由器、被请求节点)与 NDP,效率更高。
::压缩规则有什么限制? 只能出现一次,且必须代表一段及以上连续全零组;各组的独立前导零可以分别省略。- /31 为什么说有 2 个可用地址? RFC 3021 专门为点对点链路定义 /31,不再区分网络地址与广播地址,两个地址均可使用(华为设备支持)。
十、记忆技巧
- 掩码数字链:128、192、224、240、248、252、254、255 ⇄ 块大小 128、64、32、16、8、4、2、1
- 私有地址三段口诀:10 开头一大段,172.16 到 172.31,192.168 永不变
- 特殊地址四兄弟:0 无(未指定)、127 回(环回)、169 链(链路本地)、255 广(受限广播)
- VLSM 分配八字诀:从大到小、连续对齐
- CIDR 聚合三步:二进制对齐、取公共前缀、前缀长度当掩码
- IPv6 缩写两句:前导零省、连续零一次
- IPv6 重要前缀:FE80 链路、FD 本地、2 开头全球、FF 组播、::1 回环、:: 未指定