Appearance
题目
某校园网有两个局域网,通过路由器 R1、R2 和 R3 互联后接入 Internet,S1 和 S2 为以太网交换机,局域网采用静态 IP 地址配置,路由器部分接口以及各主机的 IP 地址如图所示:
关键观察:S1 子网(含 Web 服务器、H1)和 S2 子网(含 H2、H3)都使用同一段私有地址 192.168.1.0/24,主机 IP 甚至重复(Web ↔ H2 都是 .2,H1 ↔ H3 都是 .3)——这正是 NAT 隔离让"私网地址重用"成为可能的关键。
假设 NAT 转换表结构为:
| 外网 IP 地址 | 外网端口号 | 内网 IP 地址 | 内网端口号 |
|---|---|---|---|
请回答下列问题:
(1) 为使 H2 和 H3 能够访问 Web 服务器(使用默认端口号),需要进行什么配置?
(2) 若 H2 主动访问 Web 服务器时,将 HTTP 请求报文封装到 IP 数据报 P 中发送,则 H2 发送 P 的源 IP 地址和目的 IP 地址分别是什么?经过 R3 转发后,P 的源 IP 地址和目的 IP 地址分别是什么?经过 R2 转发后,P 的源 IP 地址和目的 IP 地址分别是什么?
解析
(1) NAT 表配置
H2 / H3 在 S2 子网(私网 192.168.1.0/24),Web 服务器在 S1 子网(同样私网 192.168.1.0/24)——两网用了一模一样的地址段。如果不做地址转换,H2 直接发往 192.168.1.2 的分组会把自己网内的别人当成目标(甚至打回 H2 自己),永远到不了真正的 Web 服务器。
核心思路:在 R2 上配 NAT,让 Web 服务器对外呈现一个公网 IP(用 R2 的 WAN 口 IP 203.10.2.2);H2/H3 想访问时发往这个公网 IP,R2 收到后查 NAT 表把目的地址改写回 Web 的私网 IP 192.168.1.2。
R2 的 NAT 转换表(题目"使用默认端口号"= HTTP 默认端口 80):
| 外网 IP 地址 | 外网端口号 | 内网 IP 地址 | 内网端口号 |
|---|---|---|---|
| 203.10.2.2 | 80 | 192.168.1.2 | 80 |
为什么内外端口都是 80:HTTP 默认端口固定 80。NAT 让外部世界看到的"Web 服务器"地址是
203.10.2.2:80,进入 R2 后由 NAT 改写成192.168.1.2:80转给 Web 服务器。这是典型的"端口转发(port forwarding)/ 静态 NAT"用法。
(2) IP 数据报 P 在三段路径上的源/目的地址
先把流向画清楚:
H2 (192.168.1.2) ─→ S2 ─→ R3 ─→ R1 ─→ R2 ─→ S1 ─→ Web (192.168.1.2)
[NAT@R3] [NAT@R2]
源地址转换 目的地址转换H2 想访问 Web,但 H2 知道的 Web 入口地址是公网 IP 203.10.2.2:80(NAT 表对外暴露的)。
阶段 A:H2 发出
- 源 IP:H2 自己的私网 IP = 192.168.1.2
- 目的 IP:Web 服务器对外暴露的公网 IP = 203.10.2.2
阶段 B:经过 R3(源地址 NAT)
R3 是 H2 出网必经的 NAT 网关。它把"私网源地址"换成 R3 的 WAN 口公网 IP(确保回程分组能找到 R3):
- 源 IP:R3 的 WAN 口 = 203.10.2.6
- 目的 IP:保持不变 = 203.10.2.2
阶段 C:经过 R2(目的地址 NAT)
R2 收到目的地址是自己 WAN 口的分组,查 NAT 表,把目的地址改写成内网 Web 服务器的真实地址:
- 源 IP:保持不变 = 203.10.2.6
- 目的 IP:Web 真实私网 IP = 192.168.1.2
汇总成表:
| 阶段 | 位置 | 源 IP | 目的 IP |
|---|---|---|---|
| A | H2 发出 | 192.168.1.2 | 203.10.2.2 |
| B | R3 转发后 | 203.10.2.6 | 203.10.2.2 |
| C | R2 转发后 | 203.10.2.6 | 192.168.1.2 |
NAT 的"双向改写"对比:
- 源 NAT(SNAT):R3 在内网→外网方向改源 IP,让回程分组能找到自己(典型出网方向用)
- 目的 NAT(DNAT):R2 在外网→内网方向改目的 IP,把流量分发到内部对应服务器(端口转发本质)
完整 H2→Web 路径上恰好两次 NAT:先 SNAT 后 DNAT。回程 Web→H2 也是两次:R2 SNAT(源 192.168.1.2 → 203.10.2.2)+ R3 DNAT(目的 203.10.2.6 → 192.168.1.2)。
为什么 R1 不做 NAT:R1 是骨干路由器,承载的是已经被 R2/R3 NAT 过的公网 IP 流量,不需要再转换。NAT 只发生在"私网 ↔ 公网"边界,R1 处理的是"公网 ↔ 公网"。