Skip to main content
Version: Next

网络层(IP、子网、ARP、ICMP、NAT)

2.1 IPv4 地址基础​

IPv4 地址为 32 位,点分十进制表示(如 192.168.1.10),由「网络位 + 主机位」组成。

按首位比特分类(历史分类编址):

类别首位模式地址范围默认掩码用途
A 类01.0.0.0 ~ 126.255.255.255/8(255.0.0.0)大型网络
B 类10128.0.0.0 ~ 191.255.255.255/16(255.255.0.0)中型网络
C 类110192.0.0.0 ~ 223.255.255.255/24(255.255.255.0)小型网络
D 类1110224.0.0.0 ~ 239.255.255.255—组播
E 类1111240.0.0.0 ~ 255.255.255.255—科研保留

私有地址段(必考!):

类别私有网段CIDR 表示
A 类10.0.0.0 ~ 10.255.255.25510.0.0.0/8
B 类172.16.0.0 ~ 172.31.255.255172.16.0.0/12
C 类192.168.0.0 ~ 192.168.255.255192.168.0.0/16

私有地址不能直接在公网路由,必须经 NAT 转换后访问互联网。

特殊地址(常考):

  • 127.0.0.0/8:回环地址(loopback),本机协议栈自测,ping 127.0.0.1 不经过网卡;
  • 0.0.0.0:本机所有网卡/未指定地址;服务监听 0.0.0.0 表示监听本机所有 IPv4 地址;
  • 255.255.255.255:受限广播地址;
  • 主机位全 1:定向广播(如 192.168.1.255);主机位全 0:网络地址(如 192.168.1.0)。

2.2 子网划分、子网掩码、CIDR、网关​

  • 子网掩码:与 IP 地址按位与运算,区分网络位与主机位。例如 255.255.255.0 → /24。
  • CIDR(无类别域间路由):打破 A/B/C 类边界,用 IP/n 任意指定网络位长度,如 10.1.2.0/26 表示前 26 位是网络位,可用主机数 = 2^(32-26) − 2 = 62(减去网络地址和广播地址)。
  • 子网划分计算示例:把 192.168.1.0/24 划分成 4 个等大小子网 → 借 2 位主机位 → 掩码 /26(255.255.255.192),每个子网 64 个地址、62 个可用主机:
    • 192.168.1.0/26(可用 .1 ~ .62)
    • 192.168.1.64/26(可用 .65 ~ .126)
    • 192.168.1.128/26(可用 .129 ~ .190)
    • 192.168.1.192/26(可用 .193 ~ .254)
  • 网关(Gateway):跨网段通信的「下一跳」出口设备,通常是路由器在本网段的接口地址。发往其他网段的流量,统一先交给网关,由它查路由表转发。

2.3 ARP 协议​

作用:把同一网段内的 IP 地址解析为 MAC 地址(已知 IP,求 MAC)。

工作流程:

  1. 主机先查本机 ARP 缓存(arp -a 可查看),命中则直接使用;
  2. 未命中则广播 ARP 请求(目的 MAC = FF:FF:FF:FF:FF:FF,帧在整网段泛洪),内容为「谁是 192.168.1.20?请告诉 192.168.1.10」;
  3. 目标主机以单播 ARP 应答回传自己的 MAC;
  4. 请求方把「IP ↔ MAC」映射写入 ARP 缓存(有生存时间,典型几分钟)。

ARP 欺骗(安全方向必提):攻击者在网段内伪造 ARP 应答(如谎称「网关 IP 对应我的 MAC」),使受害者的流量先经过攻击者再转发,实现窃听/篡改(中间人攻击)。防御手段:静态 ARP 绑定、交换机 DAI(动态 ARP 检测)、端口安全、加密流版(HTTPS/TLS)降低危害。

2.4 ICMP 协议​

ICMP(互联网控制报文协议)工作在网络层,用于传递差错与控制信息,本身不保证可靠。

  • ping:发送 ICMP 回显请求(Echo Request,Type 8),对方返回回显应答(Echo Reply,Type 0),用于测试连通性与往返时延(RTT)。
  • traceroute 原理:依次发送 TTL=1,2,3… 的探测包:
    1. 第 1 跳路由器收到 TTL=1 的包,将 TTL 减为 0,丢弃并返回 ICMP 超时消息(Time Exceeded,Type 11),源端由此得知第一跳地址;
    2. 逐跳递增 TTL,直到到达目的主机返回端口不可达(Linux/UNIX 默认发 UDP 高端口包)或回显应答(Windows tracert 默认发 ICMP);
    3. 每一跳通常探测 3 次以统计 RTT。
  • 常见 ICMP 差错:Destination Unreachable(目的不可达,Type 3,含网络不可达/主机不可达/端口不可达)、Time Exceeded(超时)、重定向(Redirect)。
  • 注意:ping 不通 ≠ 网络不通——很多服务器/防火墙出于安全策略禁用 ICMP,但 TCP/UDP 业务正常。

2.5 NAT(网络地址转换)​

解决的核心问题:IPv4 公网地址不足;同时隐藏内网结构、提升安全性。

类型转换对象典型场景
SNAT(源 NAT)改写源 IP内网主机访问公网;云上 VPC 出公网走 NAT 网关
DNAT(目的 NAT)改写目的 IP + 端口公网用户访问内网服务(端口映射/端口转发)
PAT / NAPT(端口转换)源 IP + 源端口同时改写家庭路由器多设备共享一个公网 IP(实际最常用)

工作原理(以 PAT 为例):出口网关维护转换表「内网 IP:端口 ↔ 公网 IP:端口」,出向流量改写源地址为公网 IP 并分配新端口,回程流量查表反向改写。

NAT 的缺点:

  1. 破坏端到端透明性,外网无法主动访问内网主机(需 DNAT/打洞);
  2. 转发设备有状态、有性能开销(连接数上限);
  3. 某些协议内嵌地址信息(如 FTP、SIP)需要 ALG(应用层网关)配合;
  4. 日志溯源困难(多个用户共享一个公网 IP)。

2.6 IPv6 简介(了解即可)​

  • 128 位地址,冒号分隔的十六进制表示(如 2001:db8::1),连续 0 可压缩为 ::(一个地址只能用一次)。
  • 优势:地址空间近乎无限(2^128)、无需 NAT、报头简化(固定 40 字节,处理更快)、内置 IPSec 支持、SLAAC 无状态自动配置、取消了广播(用组播/任播替代)。
  • 校招问得少,能讲出「地址位数、为何引入、与 IPv4 的核心区别」即可。

2.7 高频面试题​

Q1:ping 不通,排查思路(非常高频,考察现场排障思维)

按「由近及远、分层定位」回答:

  1. ping 127.0.0.1:验证本机 TCP/IP 协议栈正常;
  2. ping 本机 IP:验证网卡驱动与 IP 配置正常;
  3. ping 同网段其他主机 / 网关:验证二层链路、线缆、交换机、掩码配置是否正确(不通可查 arp -a 看 ARP 是否学到);
  4. ping 公网 IP(如 223.5.5.5):验证三层路由是否通(不通查默认网关/路由表);
  5. ping 域名:验证 DNS 解析(IP 通而域名不通 → DNS 问题);
  6. 以上都通但目标 ping 不通:考虑目标防火墙禁 ICMP、云安全组限制,改用 telnet/nc 测业务端口验证。

Q2:同一个网段通信要不要走网关?跨网段呢?

  • 同网段:不走网关。发送方用目的 IP 与掩码按位与,判断目的 IP 与自己在同一网段,直接 ARP 目标主机的 MAC,二层直接交付。
  • 跨网段:目标不在本网段时,发送方 ARP 的是网关的 MAC,把帧发给网关,由网关(路由器)查路由表逐跳转发;整个过程中源/目的 IP 端到端不变(不考虑 NAT),MAC 地址每一跳都变。

Q3:NAT 解决什么问题?有什么缺点?

见 2.5 节:解决 IPv4 地址枯竭与内网隔离问题;缺点是破坏端到端、有状态开销、部分协议需 ALG、外网无法主动访问内网。