欢迎光临
我们一直在努力

DHCP 中继实验 —— 三层交换机 VLANIF 做中继,客户端跨网段自动获取 IP

一、为什么需要 DHCP 中继?

DHCP 客户端获取 IP 的第一步,是发送 DHCP Discover 广播报文。广播只能在同一二层广播域(同一 VLAN / 同一网段)内传播,无法穿越三层设备。

当 DHCP 服务器和客户端不在同一网段时,必须有一台设备充当中继代理(Relay Agent),做两件事:

  • 把客户端发来的广播报文,封装成单播报文转发给 DHCP 服务器;
  • 再把服务器的应答报文转发回客户端。

华为三层交换机的 VLANIF 接口本身就是网关 + 天然的中继点:在 VLANIF 上启用 DHCP 中继,无需新增设备,客户端侧零配置即可跨网段拿地址。本实验就是最典型的企业网场景 ——"一台 DHCP 服务器,为多个 VLAN 用户统一分配 IP"。

二、实验目的

  • 理解 DHCP 中继的工作原理(广播转单播的过程)
  • 掌握华为交换机 VLANIF 接口配置 DHCP 中继的方法
  • 验证跨网段客户端能自动获取到本 VLAN 网段的 IP 地址
  • 三、实验拓扑

    说明:DHCP 服务器在 eNSP 中可用一台 AR2200 或另一台 S5700 模拟;生产环境用 Windows Server / 其他厂商服务器同理,只需保证与 SW1 的三层互通。

    四、地址规划表

    表格

    设备VLAN接口IP 地址角色说明
    SW1 VLAN10 GE0/0/1(access) 接入 PC1
    SW1 VLAN100 GE0/0/2(access) 接入 DHCP 服务器
    SW1 VLAN10 VLANIF10 192.168.10.254/24 用户网关 + DHCP 中继
    SW1 VLAN100 VLANIF100 192.168.100.254/24 服务器网段网关
    AR1 VLAN100 GE0/0/0 192.168.100.253/24(固定) DHCP 服务器,地址池 192.168.10.0/24
    PC1 VLAN10 DHCP 自动获取 最终获得 192.168.10.x 地址

    五、详细配置步骤

    步骤 1:SW1 基础配置(创建 VLAN + 接口划入 VLAN)

    system-view # 进入系统视图(sys 是其简写)
    sysname SW1 # 修改设备名,便于区分(可选)

    vlan batch 10 100 # 批量创建 VLAN 10、VLAN 100
    # VLAN10 :用户 PC 所在网段
    # VLAN100 :DHCP 服务器所在网段

    interface GigabitEthernet0/0/1 # 进入接 PC1 的接口视图
    port link-type access # 设为 access 类型(连接终端设备)
    port default vlan 10 # 该接口划分到 VLAN10
    quit # 返回系统视图

    interface GigabitEthernet0/0/2 # 进入接 DHCP 服务器的接口
    port link-type access # access 类型
    port default vlan 100 # 划分到 VLAN100
    quit

    步骤 2:配置 VLANIF 三层网关

    interface Vlanif 10 # 进入 VLAN10 的三层逻辑接口(网关)
    ip address 192.168.10.254 255.255.255.0 # 用户网关 IP,即 PC1 的网关地址
    quit

    interface Vlanif 100 # 服务器网段也要有网关,保证与服务器三层互通
    ip address 192.168.100.254 255.255.255.0
    quit

    步骤 3:全局使能 DHCP 功能

    dhcp enable # 全局开启 DHCP 功能
    # 注意:无论做中继还是做服务器,都必须先执行这条

    步骤 4:在 VLANIF10 上配置 DHCP 中继(核心步骤)

    interface Vlanif 10
    dhcp select relay # 将该接口的 DHCP 模式设为"中继"模式
    # 含义:收到本网段客户端的 DHCP 请求后,
    # 不自己分配,而是转发给下游 DHCP 服务器
    dhcp relay server-ip 192.168.100.253
    # 指定上游 DHCP 服务器的 IP 地址(与拓扑一致)
    # 可重复执行多条,实现主备 DHCP 服务器冗余
    quit

    步骤 5:DHCP 服务器配置(以 eNSP 的 AR2200 为例)

    system-view # 进入系统视图
    sysname Server1 # 改设备名(可选)

    dhcp enable # 服务器同样要先全局使能 DHCP

    interface GigabitEthernet0/0/0 # 进入连接 SW1 的接口
    ip address 192.168.100.253 255.255.255.0 # 服务器固定 IP(与拓扑一致)
    quit

    ip pool pool_vlan10 # 创建地址池,名称可自定义
    network 192.168.10.0 mask 255.255.255.0 # 分配网段:必须与客户端网关同网段
    gateway-list 192.168.10.254 # 下发给客户端的网关地址(就是中继接口 IP)
    dns-list 202.96.134.133 # 下发给客户端的 DNS(可选)
    excluded-ip-address 192.168.10.251 # 排除打印机IP地址(假设这是预留给打印机的),防止分配给客户端
    lease day 1 # 地址租期为 1 天
    quit

    interface GigabitEthernet0/0/0
    dhcp select global # 接口调用全局地址池进行分配
    quit

    # ★★★ 关键一步:服务器必须配置到"客户端网段"的回程路由 ★★★
    # 中继转发的应答报文是单播发给 giaddr(即 192.168.10.254)的,
    # 服务器没有到 192.168.10.0/24 的路由,Offer 就发不回去,客户端永远拿不到地址
    ip route-static 192.168.10.0 255.255.255.0 192.168.100.254

    若使用 Windows Server 做 DHCP:新建作用域选 192.168.10.0/24,在「作用域选项」中把 003 路由器设为 192.168.10.254,并确保服务器有到 192.168.10.0/24 的路由(原理同上)。

    步骤 6:验证实验效果

    ① 先验证三层互通(链路通了再谈 DHCP)

    # 在 SW1 上 ping DHCP 服务器
    <SW1> ping 192.168.100.253

    # 在 DHCP 服务器上 ping 中继接口(能通说明回程路由 OK)
    <Server1> ping 192.168.10.254

    ② PC 侧验证(eNSP 操作)

  • 打开 PC1 → 「IP 配置」→ 选择 DHCP → 点「应用」;
  • 打开 PC 命令行,输入 ipconfig,看到 192.168.10.x 段地址即成功。
  • # PC 命令行显示示例(伪代码示意)
    C:\\> ipconfig
    IPv4 Address. . . . . . . . . . : 192.168.10.2
    Subnet Mask . . . . . . . . . . : 255.255.255.0
    Default Gateway . . . . . . . . : 192.168.10.254

    ③ 服务器侧查看租约分配情况

    <Server1> display ip pool name pool_vlan10 used

    ④ 交换机侧查看中继转发统计

    <SW1> display dhcp relay statistics

    ⑤ 查看接口当前生效配置

    # 进入 VLANIF10 视图后执行 display this,确认中继配置已生效
    <SW1> system-view
    [SW1] interface Vlanif 10
    [SW1-Vlanif10] display this

    六、原理详解:DHCP 中继的报文流转(四步走)

    表格

    阶段报文类型谁发给谁关键说明
    1 Discover PC → 广播 → 中继接口 (VLANIF10) 客户端不知道服务器在哪,只能全广播
    2 Discover 中继 → 单播 → 服务器 中继在报文中填入 giaddr = 192.168.10.254
    3 Offer 服务器 → 单播 → giaddr (中继) 服务器依据 giaddr 判断客户端在 192.168.10.0/24,从对应地址池选 IP
    4 Offer 中继 → 转发给 PC 中继把应答带回客户端
    5 Request / Ack PC ⇄ 中继 ⇄ 服务器 请求确认租约,流程同 2-4 反复往返

    关键点:giaddr(网关地址)是服务器 "选地址池" 的唯一依据,所以地址池网段必须和 VLANIF10(网关)同网段;这也解释了为什么服务器必须能路由到 192.168.10.0/24。

    七、常见故障排查

    表格

    现象排查思路
    PC 一直显示 "无法获取 IP" ① 先 ping 通网关 192.168.10.254;② 在 SW1 上 ping 192.168.100.253 确认中继与服务器互通
    服务器能收到请求但不回 Offer 最常见原因:服务器没有到 192.168.10.0/24 的回程路由(见步骤 5 ★),补 ip route-static 192.168.10.0 255.255.255.0 192.168.100.254
    中继配置了但 PC 还是拿不到 检查 VLANIF10 上是否执行了 dhcp select relay,且 dhcp relay server-ip 指向 192.168.100.253
    地址池疑似耗尽 display ip pool name pool_vlan10 used 查看已分配数与剩余数
    中继侧无转发记录 display dhcp relay statistics interface Vlanif 10 看统计是否增长

    八、总结

    • DHCP 中继的本质是:广播 → 单播 → 单播 → 广播 的报文翻译过程,VLANIF 就是中继点;
    • 三层交换机上只需三句话:dhcp enable + dhcp select relay + dhcp relay server-ip x.x.x.x;
    • 最容易翻车的坑不在中继本身,而在 DHCP 服务器的回程路由—— 服务器必须能到达客户端网段,Offer 才能送回来;
    • 本方案可直接扩展到多 VLAN 场景:每个 VLANIF 都配 dhcp select relay 指向同一台服务器,服务器为每个网段建一个地址池即可。
    赞(0)
    未经允许不得转载:171主机测评 » DHCP 中继实验 —— 三层交换机 VLANIF 做中继,客户端跨网段自动获取 IP
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址