Skip to content

4.4 NCP 协商:IPCP 与动态获取 IP

LCP 协商好链路参数,PAP/CHAP 验证完身份后,PPP 就进入了 NCP (Network Control Protocol) 阶段。

NCP 是一组协议,针对不同的网络层协议有不同的 NCP。最常用的是 IPCP (Internet Protocol Control Protocol),用于协商 IPv4 地址。

1. IPCP 的两大功能

1.1 互推地址 (Address Negotiation)

即使 PPP 链路两端的 IP 地址不在同一个网段(例如 R1: 1.1.1.1/32, R2: 2.2.2.2/32),它们也能互通!这是 PPP 的一大特色。

  • 原理
    1. R1 发送 Config-Request (IP-Address=1.1.1.1) 给 R2。
    2. R2 收到后,回复 Config-Ack。同时,R2 会将 R1 的 IP 地址 1.1.1.1 作为一条 32 位主机路由 添加到自己的路由表中,下一跳指向 PPP 接口。
      • Display ip routing-table 会看到:1.1.1.1/32 Direct ... Serial1/0/0
    3. 反之亦然。
  • 结果:双方都有去往对方 IP 的路由,所以能通。这就是为什么 PPP 接口可以借用 (Unnumbered) 其他接口 IP 的原因。

1.2 动态获取 IP (IP Address Assignment)

这是最常见的家用宽带拨号上网场景(PPPoE)。你的路由器没有固定 IP,而是通过 PPP 向运营商请求分配一个公网 IP。

  • 流程
    1. Client -> Server: Config-Request (IP-Address=0.0.0.0) —— "我有 IP 吗?"
    2. Server -> Client: Config-Nak (IP-Address=1.2.3.4) —— "0.0.0.0 不行,给你分配个 1.2.3.4 吧。"
    3. Client -> Server: Config-Request (IP-Address=1.2.3.4) —— "好的,那我就用 1.2.3.4。"
    4. Server -> Client: Config-Ack —— "成交。"

2. 配置实战

2.1 互推地址配置

无需特殊配置,只要接口配置了 IP 地址,IPCP 协商就会自动完成。

AR2:

bash
interface Serial 1/0/1
 ip address 202.100.23.2 24

AR3:

bash
interface Serial 1/0/0
 ip address 202.100.23.3 24

2.2 动态获取 IP 配置 (PPPoE 模拟)

Server (运营商 AR3):

bash
# 1. 创建地址池
[AR3] ip pool MyPool
[AR3-ip-pool-MyPool] network 1.2.3.0 mask 24
[AR3-ip-pool-MyPool] gateway-list 1.2.3.1

# 2. 接口配置
[AR3] interface Serial 1/0/0
[AR3-Serial1/0/0] ip address 202.100.33.3 24
# 开启分配 IP 功能
[AR3-Serial1/0/0] remote address pool MyPool

Client (用户 AR2):

bash
[AR2] interface Serial 1/0/1
# 关键命令:协商获取 IP
[AR2-Serial1/0/1] ip address ppp-negotiate

协商过程细节

  1. Client 发送 Config-Request (IP=0.0.0.0)
  2. Server 回复 Config-Nak (IP=1.2.3.4) (提供地址)。
  3. Client 再次发送 Config-Request (IP=1.2.3.4) (确认地址)。
  4. Server 回复 Config-Ack (确认)。
  5. Client 安装 1.2.3.4 到接口。

eNSP/EVE-NG 拓扑

(此处待补充 IPCP 协商与路由表截图)


3. 本章小结

PPP 协议是一个功能非常强大的协议族:

  1. LCP:负责修路(链路建立、参数协商)。
  2. 认证:PAP(明文,两次握手)和 CHAP(密文,三次握手,更安全)。
  3. NCP (IPCP):负责跑车(互推路由,动态分配 IP)。

理解了 PPP,你也就理解了广域网连接的基石。