网络层核心:IP协议(IPv4/IPv6)头部结构、地址分类与子网划分
核心原理:IP协议的两代报文格式
IP协议是网络层的“寻址与转发引擎”,其头部结构直接决定了路由器处理报文的方式。IPv4头部长度通常为20字节(不含选项字段),而IPv6固定为40字节,两者设计哲学截然不同。理解头部字段是分析抓包、排查MTU问题、识别分片报文的基础。
关键差异速览:IPv4头部包含IHL(头部长度)、标识/标志/片偏移(用于分片)、协议号(标识上层协议,如TCP=6,UDP=17);IPv6则取消了头部校验和与逐跳分片,引入流标签(Flow Label)和下一个头(Next Header)链式扩展机制,使转发路径更高效。
地址分类与子网划分方法
IPv4地址为32位二进制数,通常用点分十进制表示。传统分类编址(Classful Addressing)将地址划分为A、B、C、D、E五类,其中A/B/C为单播地址,D为组播,E保留。但分类编址存在巨大浪费——一个B类网络可容纳65,534台主机,而多数组织根本用不完。因此产生了CIDR(无类域间路由)与VLSM(可变长子网掩码),通过子网掩码灵活切割网络位与主机位。
子网划分实操流程
- 确定需求:统计每个网段需要的主机数量(含网关、广播地址预留)。
- 计算主机位:满足 2n - 2 ≥ 所需主机数,n为主机位长度。
- 推导掩码:子网掩码 = 32 - n(如需要30台主机,n=5,掩码为 /27)。
- 枚举子网:块大小 = 256 - 掩码对应十进制值(如 /27 → 块大小32)。
- 分配地址:每个子网的网络地址为块大小的整数倍,广播地址为下一个子网地址减1。
案例:某公司申请到
200.100.50.0/24 网段,需划分4个部门,分别需要50、30、20、10台主机。采用VLSM从大到小分配:
部门A(50台):/26 → 子网0:200.100.50.0/26(可用1~62)
部门B(30台):/27 → 子网1:200.100.50.64/27(可用65~94)
部门C(20台):/27 → 子网2:200.100.50.96/27(可用97~126)
部门D(10台):/28 → 子网3:200.100.50.128/28(可用129~142)
剩余地址:200.100.50.144/28 ~ 200.100.50.255/28 留作扩展
IPv6地址结构与配置要点
IPv6地址为128位,采用冒号十六进制表示,如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。地址由全局路由前缀(48位)、子网ID(16位)和接口标识(64位)组成。接口标识通常由EUI-64规则从MAC地址转换而来,也可通过隐私扩展随机生成。IPv6取消了广播地址,以组播和任播替代,显著减少了网络流量。
| 对比项 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32位(约43亿地址) | 128位(约3.4×1038地址) |
| 表示法 | 点分十进制 | 冒号十六进制 |
| 地址配置 | DHCP / 手工 | SLAAC(无状态自动配置)/ DHCPv6 |
| 分片位置 | 路由器(逐跳) | 源节点(端到端) |
| 校验和 | 有(头部) | 无(依赖上层) |
| 广播地址 | 有(255.255.255.255) | 无(用组播FF02::1替代) |
常见误区与排障复盘
误区1:认为子网掩码必须连续为1。实际上CIDR允许任意长度的前缀,但路由器转发时要求前缀连续,否则无法进行最长前缀匹配。
误区2:忘记保留地址。每个子网的第一个地址是网络地址,最后一个地址是广播地址,均不可分配给主机。计算可用主机数时务必减2。
误区3:IPv6没有广播就认为不需要考虑组播抑制。实际上IPv6的邻居发现协议(NDP)大量依赖组播,若交换机未配置MLD Snooping,组播流量可能泛洪。
误区2:忘记保留地址。每个子网的第一个地址是网络地址,最后一个地址是广播地址,均不可分配给主机。计算可用主机数时务必减2。
误区3:IPv6没有广播就认为不需要考虑组播抑制。实际上IPv6的邻居发现协议(NDP)大量依赖组播,若交换机未配置MLD Snooping,组播流量可能泛洪。
排障复盘案例:某次网络故障中,PC配置为 192.168.1.100/24,网关为 192.168.1.1,但无法访问外网。使用 ping 192.168.1.1 成功,ping 8.8.8.8 失败。进一步检查发现,路由器上配置了ACL禁止了来自该子网的ICMP流量。复盘结论:链路层通不代表网络层策略放行,排查时应逐层验证——先验证网关ARP,再验证路由表,最后检查防火墙策略。使用 tracert 可快速定位故障跳数,而 ipconfig /all 可确认子网掩码与网关是否匹配。