4. IP地址与子网划分:IPv4/IPv6地址结构、子网掩码、CIDR、常见配置错误

4.1 核心原理:IPv4与IPv6地址结构

IP地址是网络层寻址的基础。IPv4地址为32位二进制数,通常以点分十进制表示,例如 192.168.1.10。其结构分为网络号与主机号两部分,网络号标识所在网段,主机号标识网段内的具体接口。IPv6地址则为128位,采用冒号分隔的十六进制表示,例如 2001:db8::1。IPv6取消了广播地址,用任播(Anycast)和多播替代,且地址自动配置能力(SLAAC)显著增强了即插即用性。

子网掩码(IPv4)或前缀长度(IPv6)用于界定网络号与主机号的边界。IPv4掩码如 255.255.255.0 等价于CIDR前缀 /24,表示前24位为网络号。IPv6则统一使用前缀长度,如 /64 表示前64位为网络前缀,后64位通常作为接口标识符(IID)。

排障提示:当看到 fe80::/10 开头的地址时,这是链路本地地址,仅在同一物理链路内有效,不能路由。若主机只获取到 169.254.x.x(IPv4)或 fe80::(IPv6)地址,说明DHCP或路由通告失败,这是定位“无法上网”问题的第一信号。
IPv4 地址结构 (32位) 网络号 (24位) 主机号 (8位) /24 掩码: 255.255.255.0 示例: 192.168.1.10 → 网络 192.168.1.0 IPv6 地址结构 (128位) 全局前缀 (64位) 接口标识符 (64位) /64 示例: 2001:db8:1:2::10 链路本地: fe80::/10 (不可路由) IPv4 vs IPv6 关键差异 特性 IPv4 IPv6 地址长度 32位 128位 表示方式 点分十进制 冒号十六进制 子网划分 子网掩码 前缀长度

4.2 方法流程:子网掩码与CIDR计算

子网划分的核心是借位:从主机号高位借出若干位作为子网号。例如将 192.168.1.0/24 划分为4个子网,需借2位,子网掩码变为 255.255.255.192(即 /26),每个子网含64个地址(62个可用)。CIDR(无类域间路由)则允许任意长度的前缀,不再受A/B/C类限制,极大提升了地址利用率。

实际排障中,最常用的计算工具是 ipcalc 或 sipcalc。例如在Linux下执行:

ipcalc 192.168.1.5/26
# 输出:
# Address:   192.168.1.5          11000000.10101000.00000001.00000101
# Netmask:   255.255.255.192 = 26 11111111.11111111.11111111.11000000
# Network:   192.168.1.0/26       11000000.10101000.00000001.00000000
# HostMin:   192.168.1.1          11000000.10101000.00000001.00000001
# HostMax:   192.168.1.62         11000000.10101000.00000001.00111110
# Broadcast: 192.168.1.63         11000000.10101000.00000001.00111111

判断两个IP是否在同一子网,需将IP与掩码逐位相“与”,结果相同则同网段。例如 10.0.0.5/255.255.255.0 与 10.0.0.200 同网段,但与 10.0.1.5 不同网段。IPv6排障中,ip -6 addr show 可查看前缀长度,ping6 ff02::1%eth0 可探测链路内所有节点。

4.3 案例/场景:VLAN间路由不通的排查

某企业网络划分了多个VLAN,核心交换机配置了VLAN间路由。故障现象:VLAN 10的主机(192.168.10.0/24)无法访问VLAN 20的服务器(192.168.20.0/24)。排查过程如下:

  1. 检查网关配置:主机网关应指向核心交换机VLAN接口地址,如 192.168.10.1。若误配为 192.168.10.254(该地址属于另一台设备),则数据包被错误转发。
  2. 验证子网掩码:若VLAN 10主机掩码误设为 255.255.255.128(/25),则主机认为 192.168.10.128~255 属于本地链路,不会发送到网关,导致通信失败。
  3. 检查交换机SVI配置:执行 show ip interface brief,确认VLAN 10和VLAN 20的SVI接口均为up状态,且IP地址与主机网关一致。
  4. 抓包验证:在核心交换机上使用 tcpdump -i vlan10 icmp,若看到ICMP请求但无响应,则问题可能在VLAN 20侧或路由表缺失。
根因定位:最终发现VLAN 20的SVI接口掩码被误配为 255.255.255.0,但实际该VLAN需要容纳2000台设备,应使用 /22(255.255.252.0)。由于掩码过小,部分服务器地址(如 192.168.23.5)被交换机判定为不在本地子网,导致路由黑洞。

4.4 误区/复盘:常见配置错误清单

错误类型 典型表现 后果 排查方法
掩码不一致 两端掩码不同,如一端/24,另一端/25 部分主机无法互访 对比双方 ip addr 输出
网关地址错误 网关IP不属于本地子网 所有跨网段通信失败 检查路由表 route -n
广播地址冲突 主机地址设为x.x.x.255 该主机无法通信 用 arping 检测冲突
IPv6前缀过短 误用/48作为子网前缀 路由聚合异常 确认规划使用/64
DHCP地址池越界 池范围超出子网边界 部分主机获取到不可达地址 查看DHCP lease日志
重要复盘:在一次IPv6迁移中,工程师将服务器前缀从 /64 误写为 /128,导致该服务器认为自己是孤立地址,拒绝所有路由通告。使用 ip -6 route show 发现默认路由缺失,修正为 /64 后立即恢复。务必牢记:IPv6子网划分的最小单位是/64,更短的前缀(如/127)仅用于点对点链路。

最后,建议所有网络设备启用重复地址检测(DAD),并在部署前使用 ping 和 traceroute 验证双向连通性。对于CIDR聚合,需确保路由表中无更具体前缀冲突,否则可能产生路由环路。掌握地址结构与掩码计算,是网络排障的基本功,也是避免“低级错误”的关键防线。