这三件事凑在一起,是因为它们在接入网里总是一起出现:终端要拿地址(DHCP),链路要建起来(PPPoE),私网要能出去(NAT)。

DHCP 四步交互、PPPoE 两阶段与 NAT 的四种形态
▲ 接入网三件事的全景

DHCP

四步交互(DORA)

步骤方向内容
Discover客户端广播谁是 DHCP 服务器?(源 0.0.0.0,目的 255.255.255.255)
Offer服务器单播/广播给你这个地址,租期这么长
Request客户端广播我要这个地址(广播是为了通知其他服务器)
ACK服务器单播确认,地址归你了

为什么 Request 要广播?因为可能有多个 DHCP 服务器都发了 Offer,客户端选中一个后必须广播通知所有服务器「我选了谁」,其他服务器才能把预留的地址释放掉。

租期与续租

跨网段:DHCP 中继

DHCP 靠广播,路由器不转发广播,所以 DHCP 服务器在另一个网段时必须配中继。中继的原理是把广播转成单播发给服务器,并在报文里带上网关地址(giaddr),服务器靠这个字段判断该从哪个地址池分配。

huawei · DHCP 服务器 + 中继
# ── 服务器侧 ──
dhcp enable
ip pool office
 network 192.168.1.0 mask 255.255.255.0
 gateway-list 192.168.1.1
 dns-list 223.5.5.5 114.114.114.114
 lease day 1 hour 0
 excluded-ip-address 192.168.1.1 192.168.1.10   # ★ 排除网关和服务器地址

interface GigabitEthernet0/0/1
 ip address 192.168.1.1 24
 dhcp select global

# ── 中继侧(网关设备)──
dhcp enable
interface GigabitEthernet0/0/1
 dhcp select relay
 dhcp relay server-ip 10.1.1.100     # 指向真正的 DHCP 服务器

PPP 与 PPPoE

PPP 的三个组件

组件作用
LCP(链路控制协议)建立/维护/拆除链路;协商 MTU、认证方式、魔术字(防环)
认证PAP(明文)或 CHAP(三次握手,更安全)
NCP(网络控制协议)IP 场景下就是 IPCP,用来协商 IP 地址(这就是拨号能拿到 IP 的原因)

顺序是固定的:LCP → 认证 → NCP。所以「拨号失败」要先看卡在哪一步。

PPPoE 为什么 MTU 只有 1492

MTU 计算
以太网 MTU 1500
  - PPPoE 头 6 字节(版本+类型+Session ID)
  - PPP 协议字段 2 字节
  ─────────────────────
  = 1492  ← PPPoE 接口的 MTU

★ 这就是为什么家用宽带偶尔有网站打不开:
  某些服务器发了 1500 的大包,PPPoE 链路装不下
  → 要么分片(效率低),要么直接丢
  → 解决:在 PPPoE 接口上配 tcp adjust-mss 1452

interface Dialer1
 mtu 1492
 tcp adjust-mss 1452

NAT

形态映射关系典型用途
静态 NAT一个内网 IP ↔ 一个公网 IP,固定内网服务器需要固定公网地址
动态 NAT从地址池里临时分配内网用户多、公网地址够用
NAPT(地址+端口)多个内网 IP ↔ 一个公网 IP,靠端口区分最常用。华为 easy-ip 就是这种
NAT Server公网 IP:端口 → 内网 IP:端口对外发布服务器

NAPT 的核心是转换表

设备维护一张表,记住「内网 IP:端口 ↔ 公网 IP:端口」的对应关系。回程流量靠这张表反查,才能知道该送给内网哪台机器。

这带来两个后果:

NAT 和 IPSec 为什么打架

IPSec 的 AH 会校验整个 IP 头,NAT 一改源地址校验就失败(上一篇讲过)。而且顺序也很讲究:

出方向顺序
正确顺序: 匹配感兴趣流 → IPSec 加密 → NAT 转换 → 发出

如果顺序反了(先 NAT):
  内网地址被改成公网地址
  → IPSec 的 ACL 匹配的是内网地址,匹配不上了
  → 流量直接走普通转发,不进隧道

解决:在 NAT 策略里把去 VPN 对端的流量 deny 掉
     (具体配置见「IPSec VPN 配置」那篇)

排错

huawei
# DHCP
display ip pool name office used        # ★ 地址池使用情况(还剩几个)
display dhcp server statistics          # 收发包统计
display dhcp relay all                  # 中继配置
reset ip pool name office all           # 清掉所有租约(慎用)

# PPPoE
display pppoe-client session summary    # ★ 会话状态
display interface dialer 1              # 拨号接口(含 MTU)
display pppoe-client session packet

# NAT
display nat session all                 # ★ 转换表
display nat session all verbose
display nat address-group               # 地址池
display nat server                      # 服务器映射
display firewall session table          # 会话表(含 NAT 信息)

一句话总结:DHCP 靠广播所以要中继,PPPoE 多 8 字节头所以 MTU 是 1492,NAT 靠一张表所以要热备同步。这三个数字和机制,解释了接入网八成的「奇怪故障」。

📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)

合并了原始笔记中「DHCP / PPP / PPPoE / NAT」四页。
原笔记偏命令罗列,本文把三者的关联串了起来,并补上了 MTU 1492 的由来、NAT 与 IPSec 的执行顺序这两个实际高频问题。
配置命令保留华为 VRP 原样。