跳转到正文

跨过一台路由器后,数据包里的 MAC 和 IP 谁变了、谁没变? ​

阶段 3 · 网络层 · 第 18 课

在第 17 课中,我们掌握了路由器的最长前缀匹配查表法。现在,让我们把前两章学过的所有知识融会贯通,做一次真正意义上的端到端跨网段通信全流程推演。

假设电脑 A(IP 为 192.0.2.10)要发一条消息给另一网段的电脑 B(IP 为 198.51.100.20),中间隔着一台路由器 R1。当数据包从电脑 A 出发,跳过左侧网线到达 R1,再被 R1 推向右侧网线送达电脑 B,在两条完全不同的网线上抓包,报文里的源 MAC、目的 MAC、源 IP、目的 IP 以及 TTL 分别会变成什么?

学完本课后,你将能够:

  1. 填写跨网段转发中各段链路上的源 MAC、目的 MAC、源 IP、目的 IP 与 TTL 逐跳对照表。
  2. 深刻领会网络体系结构最精妙的设计法则:“端到端 IP 不变,逐跳 MAC 改变”。
  3. 解释为什么在中间加入普通二层交换机时,MAC 和 TTL 不会受交换机影响。

电脑 A 经路由器 R1 跨网段到达电脑 B:左侧子网为 192.0.2.0/24,右侧为 198.51.100.0/24,追踪两段链路上帧与包字段的逐跳变化。

1. 先看图:最小跨网拓扑与环境假设 ​

观察上图,我们设定一个标准的跨网段网络环境(采用 RFC 5737 规范的教学测试网段):

  • 左侧子网(Subnet 1):192.0.2.0/24
    • 电脑 A 接口:IP 192.0.2.10,MAC 地址别名为 MAC-A,默认网关配置为 192.0.2.1。
    • 路由器 R1 左侧接口:IP 192.0.2.1,MAC 地址别名为 MAC-L。
  • 右侧子网(Subnet 2):198.51.100.0/24
    • 路由器 R1 右侧接口:IP 198.51.100.1,MAC 地址别名为 MAC-R。
    • 电脑 B 接口:IP 198.51.100.20,MAC 地址别名为 MAC-B。
  • 教学假设:所有设备的 ARP 缓存表均已通过第 11 课的学习建立完毕,链路正常通畅,路径无 NAT 转换。

2. 跟着数据走:两段链路的字段逐跳对照表 ​

现在,电脑 A 准备将一段数据(初始 TTL 设为 64)发送给电脑 B。 请先在心里预测一下每段网线上的字段,然后对照下表验证你的推导:

观察点位置所在物理链路源 MAC目的 MAC源 IPv4 地址目的 IPv4 地址生存时间(TTL)
① 观察点 1(左侧网线)
电脑 A 发给 R1 左接口
192.0.2.0/24
以太网链路
MAC-AMAC-L192.0.2.10198.51.100.2064
② 观察点 2(右侧网线)
R1 右接口发给电脑 B
198.51.100.0/24
以太网链路
MAC-RMAC-B192.0.2.10198.51.100.2063

华为 ICT 考点 · 原创练习 · 单选

电脑 A 经路由器 R1 跨网段发送数据给电脑 B。R1 从右侧接口发出以太网帧时,帧头中的目的 MAC 和内含 IP 包的目的 IP 分别是什么?

3. 深度拆解:路由器在转发时究竟做了哪些动作? ​

当以太网帧从左侧网线撞进 R1 的左接口时,路由器内部经历了五道极其严谨的工序:

  1. 数据链路层解封装:
    • R1 检查以太网帧尾的 FCS,校验无误;
    • R1 检查帧头的目的 MAC,发现正是自己左接口的 MAC-L,网卡接收并剥去以太网帧头和帧尾,露出里面的 IPv4 数据包。
  2. 检查并消耗 TTL:
    • R1 查看 IP 首部的 TTL(当前为 64),判定大于 1;
    • R1 硬件执行 TTL=TTL−1=63,并重新计算 IP 首部校验和(Header Checksum)。
  3. 查路由表决定出接口与下一跳:
    • R1 提取目的 IP 198.51.100.20,查找自己的路由表;
    • 匹配到一条直连路由:198.51.100.0/24 Direct 出接口为右接口。R1 得知电脑 B 就直连在自己的右侧网线上!
  4. 重新进行二层封装(打上新的 MAC 外壳):
    • R1 在自己的右侧 ARP 表里查到电脑 B 的 MAC 是 MAC-B;
    • R1 为已经减过 TTL 的 IP 数据包贴上一层全新的以太网帧头:
      • 源 MAC 填自己的右接口 MAC(MAC-R);
      • 目的 MAC 填电脑 B 的 MAC(MAC-B);
      • 重新计算并附上新的 4 字节 FCS。
  5. 推向物理介质:
    • R1 的右接口 PHY 芯片将新帧转化为物理信号,送入右侧网线,精准送达电脑 B!

4. 黄金定律:网络分层设计的至高美感 ​

对比观察点 1 和观察点 2,请把下面这句支撑整个现代互联网运行的经典口诀刻在脑海里:

网络传输黄金铁律:

  • 端到端(End-to-End)的 IP 地址全程不变:源 IP 永远是发出者电脑 A(192.0.2.10),目的 IP 永远是指向最终归宿电脑 B(198.51.100.20)。它指引着全球航向!
  • 逐跳(Hop-by-Hop)的 MAC 地址每跨过一台路由器就彻底换一套:MAC 地址只负责在当前这一小段局域网里,把包裹安全交接给相邻的下一个物理接口。
  • 生存时间 TTL 每跨越一台路由器必须减 1:在防止三层死循环的同时,悄悄记录下了数据包在网络中跋涉的跳数。

如果在左侧加入二层交换机呢? 如果在电脑 A 和 R1 之间串入一台普通交换机,由于交换机只在数据链路层按 MAC 查表转发,交换机既不会修改源目 MAC,更不会改动 IP 和减 TTL!TTL 只有在经过三层路由转发时才会递减。

真题衍生 · 判断题 · 单选

无 NAT 的传统网络中,IP 数据包在跨越一台台路由器逐跳转发时,数据包内的源 IP 和目的 IP 保持不变,但外层封装的源 MAC 和目的 MAC 在每一跳链路上都会被路由器重新封装替换。

5. 小结与下一步 ​

  • 字段变化法则:端到端 IP 不变,逐跳 MAC 改变,TTL 每经一跳减 1。
  • 路由器的本职工作:剥去旧以太网头 → 校验并递减 TTL → 查路由表选出接口 → 重新封装新以太网头 → 转发。

在上面的推导中,我们假设网络一片祥和、顺利通达。但如果两台电脑之间网线断了、目标 IP 压根不存在、或者 TTL 在半路上减到了 0: 网络层是怎样向发送端回报错信的?我们每天用的 ping 和 traceroute 命令到底是怎么探路的? 下一课我们学习网络层的哨兵——互联网控制报文协议(ICMP)。