Host端连接与TcpIp通信的故障排查实践 - 第3节
3.1 IP地址分类与子网掩码
3.1.1 IP地址的基本结构
IP地址(IPv4)是一个32位的二进制数字,通常以点分十进制表示(如192.168.1.1)。它由网络号和主机号两部分组成:
- 网络号:标识设备所在的物理网络。
- 主机号:标识该网络中的具体设备。
3.1.2 IP地址分类(Classful Addressing)
早期IP地址按固定边界分为A、B、C、D、E五类,其中A、B、C三类用于单播通信:
| 类别 | 首字节范围 | 默认子网掩码 | 网络数 | 每网络主机数 | 典型用途 |
|---|---|---|---|---|---|
| A类 | 1 – 126 | 255.0.0.0 | 126 | 16,777,214 | 大型网络 |
| B类 | 128 – 191 | 255.255.0.0 | 16,384 | 65,534 | 中型网络 |
| C类 | 192 – 223 | 255.255.255.0 | 2,097,152 | 254 | 小型网络 |
| D类 | 224 – 239 | — | — | — | 组播 |
| E类 | 240 – 255 | — | — | — | 实验保留 |
排查要点:当主机IP地址的首字节落在127(127.0.0.0/8)时,属于回环地址(Loopback),用于本地测试,不分配给物理网络接口。排查网络连通性时,
ping 127.0.0.1是验证TCP/IP协议栈是否正常的第一步。
3.1.3 子网掩码与VLSM
子网掩码(Subnet Mask)是一个32位掩码,用于从IP地址中提取网络号。它与IP地址进行按位与(AND)运算,得到网络地址:
IP地址: 192.168.10.15 → 11000000.10101000.00001010.00001111
子网掩码: 255.255.255.0 → 11111111.11111111.11111111.00000000
网络地址: 192.168.10.0 → 11000000.10101000.00001010.00000000
通过可变长子网掩码(VLSM),可以将一个标准网络划分为多个更小的子网,提高地址利用率。常见子网掩码对应关系:
| CIDR前缀 | 子网掩码 | 可用主机数 | 适用场景 |
|---|---|---|---|
| /24 | 255.255.255.0 | 254 | 小型办公网络 |
| /25 | 255.255.255.128 | 126 | 部门级子网 |
| /26 | 255.255.255.192 | 62 | VLAN子网 |
| /30 | 255.255.255.252 | 2 | 点对点链路 |
常见故障:子网掩码配置错误会导致主机无法跨网段通信。例如,将/24误配为/16,主机会认为目标IP在同一广播域内,从而直接发送ARP请求而非通过网关转发,造成通信超时。
3.2 ARP协议工作原理
3.2.1 ARP的作用
地址解析协议(ARP)用于将网络层的IP地址解析为数据链路层的MAC地址。当主机需要向同一广播域内的另一台主机发送数据时,必须知道目标MAC地址才能封装以太网帧。
3.2.2 ARP工作流程
- 查询ARP缓存:主机首先检查本地ARP缓存表,若存在目标IP对应的MAC地址,则直接使用。
- 发送ARP请求:若缓存未命中,主机广播一个ARP请求帧(目标MAC为FF:FF:FF:FF:FF:FF),询问“谁拥有IP地址X.X.X.X?”
- ARP应答:目标主机收到请求后,单播回复ARP应答,包含自己的MAC地址。
- 更新缓存:请求主机收到应答后,将IP-MAC映射写入ARP缓存,并开始通信。
故障排查提示:在Windows中使用
arp -a,在Linux中使用 ip neigh 查看ARP缓存。如果目标IP在缓存中显示为 Incomplete,说明ARP请求未收到应答,可能原因包括:目标主机离线、防火墙拦截ARP、或二层网络隔离(如VLAN)。
3.2.3 ARP攻击与防护
ARP协议无认证机制,攻击者可发送伪造的ARP应答,将网关MAC地址篡改为攻击者MAC,实现中间人攻击(MITM)。防护措施包括:
- 静态ARP条目:在关键设备(如网关)上绑定静态IP-MAC映射。
- DAI(Dynamic ARP Inspection):在交换机上启用,校验ARP报文的合法性。
- ARP防火墙:主机侧安装软件,检测异常ARP应答。
3.3 ICMP协议与Ping工具
3.3.1 ICMP协议概述
互联网控制报文协议(ICMP)是TCP/IP协议族的核心协议之一,用于在IP网络中传递错误报告和诊断信息。ICMP报文封装在IP数据包中,协议号固定为1。
3.3.2 常见ICMP报文类型
| 类型 | 代码 | 含义 | 典型场景 |
|---|---|---|---|
| 0 | 0 | Echo Reply(回显应答) | Ping响应 |
| 3 | 0 | Destination Unreachable(目标不可达) | 路由不可达 |
| 3 | 1 | Host Unreachable(主机不可达) | ARP解析失败 |
| 8 | 0 | Echo Request(回显请求) | Ping发起 |
| 11 | 0 | Time Exceeded(超时) | Traceroute |
3.3.3 Ping工具的使用与故障分析
Ping基于ICMP Echo Request/Reply实现,是网络层连通性测试的首选工具。基本用法:
ping 192.168.1.1 # 持续发送ICMP请求
ping -n 10 192.168.1.1 # Windows: 发送10个包
ping -c 4 192.168.1.1 # Linux/macOS: 发送4个包
ping -t 192.168.1.1 # Windows: 持续ping直到手动停止
3.3.4 Ping结果解读与故障定位
- Request Timed Out:未收到ICMP应答。可能原因:目标主机离线、防火墙拦截ICMP、路由不可达。
- Destination Host Unreachable:本地路由表中无到达目标网络的路径。检查默认网关配置。
- TTL Expired in Transit:数据包跳数超过TTL值,通常用于Traceroute定位中间路由器。
- Reply from 192.168.1.1: bytes=32 time<1ms TTL=128:正常响应,TTL值可推断目标操作系统(Windows默认128,Linux默认64)。
重要提示:在生产环境中,部分网络设备会禁用ICMP响应以降低攻击面。此时Ping超时不一定代表网络不通,应结合其他工具(如Telnet、Traceroute、端口扫描)综合判断。
3.4 本章小结
- IP地址分类定义了A/B/C/D/E五类地址,子网掩码用于从IP中提取网络号,VLSM支持灵活的子网划分。
- ARP协议负责IP到MAC的解析,工作流程包括缓存查询、广播请求、单播应答和缓存更新。ARP欺骗是常见攻击手段。
- ICMP协议用于网络诊断,Ping工具基于ICMP Echo Request/Reply实现,是排查网络层连通性的首选工具。
- 故障排查时,应结合
arp -a、ping、tracert等命令,从网络层到数据链路层逐层定位问题。