交换机全局地址池DHCP配置实战:从原理到排错
发布时间:2026/9/7 2:47:51 锦皓数字建站

来聊一个在网络运维中非常基础、但又非常重要的场景交换机基于全局地址池给终端下发 IP 地址。很多朋友在学习或实际组网时会遇到这种情况公司买了一台三层交换机要求它不仅能做 VLAN 间路由还得承担 DHCP 服务器的角色给员工的电脑、摄像头、打印机等终端分配 IP 地址。网络规模不大单独部署一台 DHCP 服务器又显得“杀鸡用牛刀”这时候用交换机自带的 DHCP 功能就是最划算、最省事的方案。这篇文章我会从概念、原理、配置到排错完整梳理一遍。以华为设备配置为核心同时给到华三、锐捷等常见厂商的配置差异对照。如果你之前只是听说过“全局地址池”但没有完整配置过或者曾经配完之后发现终端拿不到 IP、网关不可达这篇文章值得收藏。1. 全局地址池 DHCP 到底是什么1.1 从 DHCP 的基本作用说起DHCPDynamic Host Configuration Protocol动态主机配置协议解决的是终端设备自动获取网络参数的问题。也就是说用户不需要在电脑上手动填 IP 地址、子网掩码、网关、DNS 这一堆参数而是设备开机后通过网络自动“领”到一个合法的网络身份。正常情况下DHCP 通信需要两个角色DHCP Client需要获取 IP 的终端设备比如电脑、手机、IP 摄像头、无线 AP 等。DHCP Server负责分配 IP 地址、提供网关、DNS 等参数的服务端。过去我们习惯用 Windows Server 或 Linux 服务器来搭建 DHCP 服务但维护一台服务器成本较高并且如果只是给一个几百台终端的局域网做动态分配交换机原生支持 DHCP 反而更灵活——它和 VLAN、三层网关天然集成配置直观故障点也更少。1.2 什么是“全局地址池”“全局地址池”英文叫 Global Address Pool这个“全局”是相对于“接口地址池”而言的。简单理解接口地址池Interface Address Pool把地址池直接绑定在某个三层接口或 VLANIF 接口上这个地址池只服务于通过该接口接入的终端。全局地址池Global Address Pool地址池在系统全局定义多个接口可以引用同一个地址池也可以由 DHCP Relay中继转发过来的请求从中获取地址。使用全局地址池最大的好处是集中管理、灵活复用。比如公司内部有多个业务 VLAN但终端网段规划得比较规整一个全局地址池可以被多个 VLAN 的地址池引用通过 network 网段和网关参数区分或者结合中继实现跨网段分配。它的核心特征是DHCP Server 收到请求后不是根据入接口来判断分哪个网段的地址而是根据报文里的 giaddr中继 IP或请求的网段信息来选择地址池。1.3 为什么生产环境常用全局地址池很多初学者会问既然接口地址池更“简单直接”为什么实际项目里反而全局地址池用得多原因有三个便于扩展网络后续增加 VLAN、修改地址规划时只需要调整全局地址池中的配置不用逐个接口修改。跨三层分配当终端和 DHCP 服务器不在同一个网段时比如各楼层通过核心交换机接入DHCP 服务配置在核心交换机上需要使用 DHCP Relay而 Relay 场景下接口地址池往往不如全局地址池灵活。参数复用全局地址池可以统一配置 DNS 服务器、租期、网关等公共参数设备多时维护成本低。2. 组网环境与配置前的规划2.1 本文适用设备与模拟环境配置示例以华为交换机为主原因在于华为的 VRPVersatile Routing Platform系统在网络设备市场上占有率高命令风格清晰并且官方 eNSP 模拟器可以帮你在没有真实设备的情况下完成实验验证。以下场景在以下环境中均可测试硬件设备华为 S5720、S5700、S6700 等三层交换机软件平台VRP V200R010 及以上版本不同版本命令略有差异但核心命令基本一致模拟环境eNSP 中使用 S5700 模拟器需要说明的是华为不同版本、不同型号的交换机DHCP 功能的支持情况略有差异。一些二层交换机如 S1700、S2700 基础款可能不支持 DHCP Server 功能只支持 DHCP Relay 或仅支持 DHCP Snooping。配置前请确认设备是否支持dhcp enable这条全局命令。2.2 组网拓扑与业务规划为了便于理解我们规划一个典型的小型办公网络一台三层交换机作为核心网关同时兼任 DHCP Server。下联两个业务 VLAN办公网段 VLAN 10、监控网段 VLAN 20。终端的网关都在三层交换机上VLANIF 接口。终端全部通过 DHCP 自动获取 IP 地址。地址规划建议如下项目VLAN 10办公VLAN 20监控网段192.168.10.0/24192.168.20.0/24网关192.168.10.254192.168.20.254地址池范围192.168.10.1 - 192.168.10.200192.168.20.1 - 192.168.20.200DNS223.5.5.5223.5.5.5租期1 天3 天这里需要说明几个细节地址池范围没有包含整个网段因为网关 .254、服务器等地址需要保留给静态分配的设备。办公网终端数量多、变化频繁租期设置为 1 天可以避免地址长期占用监控网终端固定租期长一些减少 DHCP 交互开销。如果公司内部有 DNS 服务器比如域控请把 DNS 指向内网 DNS没有的话可以用公共 DNS。2.3 配置前需要确认的信息清单在实际配置之前不要急着敲命令。先确认下面这些信息避免配完以后返工交换机是否支持 DHCP Server确认软件版本。终端所在的 VLAN 和网关规划。地址池网段、排除范围、租期、DNS、域名后缀。是否要保留静态地址如打印机、服务器、网络设备管理地址。网络里是否存在多个 DHCP Server避免冲突。交换机与上级网络之间是否还有路由设备如果下联还有三层设备需要考虑中继。当这些信息明确后我们就可以开始正式配置了。3. 核心原理交换机是怎么“分地址”的3.1 DHCP 的四个报文要在交换机上配置 DHCP至少要知道 DHCP 最基本的四个交互报文。一个完整的 DHCP 流程是这样的客户端发送DHCP Discover广播报文寻找网络中的 DHCP 服务器。服务器收到后发送DHCP Offer报文向客户端提供一个可用的 IP 地址。客户端选择该地址回复DHCP Request报文。服务器确认后发送DHCP Ack报文租约正式生效。交换机上的 DHCP Server 功能并不复杂本质上只是在报文到达时需要确定一件事情从哪个地址池拿地址给客户端3.2 全局地址池的地址选择规则当交换机作为 DHCP Server 时如果终端和交换机在同一个广播域同一个 VLAN交换机根据收到 Discover 报文的入接口所属的 VLANIF 网段匹配一个 network 在这个网段范围内的地址池然后从该地址池分配地址。这里有个关键点全局地址池不是直接“绑定”在某个 VLAN 上的而是通过 network 声明的网段来匹配的。例如 VLANIF 10 的地址是 192.168.10.254/24交换机收到 VLAN 10 内终端的 DHCP 请求后会在所有全局地址池中找一个 network 包含 192.168.10.0/24 的地址池然后从中分配地址。所以配置多个地址池时需要注意不要让多个地址池的 network 重叠否则交换机会匹配混乱可能出现分配出去的地址和实际网段对不上的情况。3.3 全局地址池和接口地址池怎么选对比项全局地址池接口地址池配置位置系统视图下全局定义在接口/VLANIF 视图下定义匹配方式根据 network 网段匹配绑定在接口上该接口下的请求必然使用该地址池适用场景多 VLAN、中继场景、统一管理单网段、小型网络维护难度集中管理适合规模较大的网络配置分散接口多时维护繁琐我的建议是大多数场景优先考虑全局地址池。尤其当你已经规划了多个 VLAN 时接口地址池往往会把配置分散到多个 VLANIF 接口反而不利于后期维护。3.4 DHCP 中继的一点补充如果网络里有多台三层设备终端网关不在配置 DHCP 的这台核心交换机上而是分布在各接入交换机的 VLANIF 上这时候终端发出的广播 Discover 报文无法跨越三层设备。解决办法是在接入交换机网关所在设备上配置 DHCP Relay 功能。终端将 DHCP 广播报文发给网关网关收到后单播转发给配置了 DHCP Server 的核心设备。这种情况下核心交换机上的 DHCP 地址池必须使用全局地址池因为中继后的报文到达 DHCP Server 时已经没有了原始入接口信息服务器需要根据报文中携带的 giaddr 来匹配地址池。本文重点讨论同网段终端网关就在配置 DHCP 的这台交换机上的场景中继场景在文末最佳实践中再做补充说明。4. 华为交换机配置全局地址池 DHCP 实战下面我们进入正题。配置过程分为几个清晰的步骤启用 DHCP 服务。创建 VLAN 并配置 VLANIF 网关地址。配置全局地址池。配置端口属性。验证结果。4.1 启用 DHCP 服务华为交换机默认不开启 DHCP 服务所以首先要手动打开。system-view [Switch] dhcp enable执行完成后系统会提示 DHCP 服务已开启。这一步如果漏了后面的地址池配置即使正确终端也无法获取地址。4.2 创建 VLAN 并配置 VLANIF接下来创建业务 VLAN并给 VLANIF 配置 IP 地址。这个 IP 就是终端的网关。system-view [Switch] vlan batch 10 20 [Switch] interface Vlanif 10 [Switch-Vlanif10] ip address 192.168.10.254 255.255.255.0 [Switch-Vlanif10] quit [Switch] interface Vlanif 20 [Switch-Vlanif20] ip address 192.168.20.254 255.255.255.0 [Switch-Vlanif20] quit说明一下vlan batch 10 20是一次性创建多个 VLAN 的快捷方式比逐个创建更高效。VLANIF 接口就是三层的网关接口必须和全局地址池的 network 处于同一网段。VLANIF 地址就是 DHCP 客户端拿到的“网关”参数配置地址池时gateway-list必须和这个 IP 一致。4.3 配置全局地址池这是整个实验的核心步骤。这里我们创建两个全局地址池分别对应两个业务 VLAN。system-view [Switch] ip pool pool_vlan10 [Switch-ip-pool-pool_vlan10] network 192.168.10.0 mask 255.255.255.0 [Switch-ip-pool-pool_vlan10] gateway-list 192.168.10.254 [Switch-ip-pool-pool_vlan10] dns-list 223.5.5.5 114.114.114.114 [Switch-ip-pool-pool_vlan10] excluded-ip-address 192.168.10.200 192.168.10.254 [Switch-ip-pool-pool_vlan10] lease day 1 [Switch-ip-pool-pool_vlan10] quit [Switch] ip pool pool_vlan20 [Switch-ip-pool-pool_vlan20] network 192.168.20.0 mask 255.255.255.0 [Switch-ip-pool-pool_vlan20] gateway-list 192.168.20.254 [Switch-ip-pool-pool_vlan20] dns-list 223.5.5.5 114.114.114.114 [Switch-ip-pool-pool_vlan20] excluded-ip-address 192.168.20.200 192.168.20.254 [Switch-ip-pool-pool_vlan20] lease day 3 [Switch-ip-pool-pool_vlan20] quit逐条解释这些命令的含义ip pool pool_vlan10创建名为 pool_vlan10 的全局地址池名字可以自己定建议见名知义。network 192.168.10.0 mask 255.255.255.0声明地址池可分配的网段。这个网段必须和某一台终端的网关所在网段匹配。gateway-list 192.168.10.254给终端下发的网关地址必须与 VLANIF 10 的 IP 一致否则终端能获取地址但无法跨网段访问。dns-list 223.5.5.5 114.114.114.114给终端下发 DNS 服务器第一个为主 DNS第二个为备 DNS。excluded-ip-address 192.168.10.200 192.168.10.254将部分地址排除在动态分配范围之外这些地址留给打印机、服务器或网络设备做静态配置。注意excluded-ip-address后面如果只写一个 IP表示排除单个地址写两个 IP 表示排除一段。通常我们会把网关地址、服务器地址排除掉避免冲突。lease day 1设置租期为 1 天。默认租期一般是 1 天如果不需要修改可以不写这条命令。4.4 配置端口加入 VLAN接下来配置连接终端的端口把端口划分到对应的 VLAN。system-view [Switch] interface GigabitEthernet 0/0/1 [Switch-GigabitEthernet0/0/1] port link-type access [Switch-GigabitEthernet0/0/1] port default vlan 10 [Switch-GigabitEthernet0/0/1] quit [Switch] interface GigabitEthernet 0/0/2 [Switch-GigabitEthernet0/0/2] port link-type access [Switch-GigabitEthernet0/0/2] port default vlan 20 [Switch-GigabitEthernet0/0/2] quit如果你下联的是另一台二层交换机上联口需要配置为 trunk 模式并放行对应 VLAN[Switch] interface GigabitEthernet 0/0/24 [Switch-GigabitEthernet0/0/24] port link-type trunk [Switch-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [Switch-GigabitEthernet0/0/24] quit4.5 验证配置配置完成后使用以下命令验证查看地址池配置信息[Switch] display ip pool预期输出类似于Pool name: pool_vlan10 Network: 192.168.10.0 mask 255.255.255.0 DNS: 223.5.5.5 114.114.114.114 Gateway: 192.168.10.254 Lease: 1 Day 0 Hour 0 Minute Excluded IP: 192.168.10.200 - 192.168.10.254查看地址池使用情况[Switch] display ip pool name pool_vlan10 used这个命令可以看到已经分配出去的 IP 地址、对应 MAC、租约剩余时间等详细信息。查看 DHCP 统计信息[Switch] display dhcp statistics这个命令可以查看 DHCP Discover、Offer、Request、Ack 等报文的收发统计排查问题时非常有用。4.6 终端验证将一台电脑配置为“自动获取 IP 地址”连接交换机的 G0/0/1 口。正常情况下在电脑命令行执行ipconfig可以看到如下类似输出IPv4 Address: 192.168.10.100 Subnet Mask: 255.255.255.0 Default Gateway: 192.168.10.254 DNS Servers: 223.5.5.5如果能够正确拿到这些参数说明 DHCP 全局地址池配置生效了。5. 华三、锐捷等厂商配置对照很多公司可能用的是华三H3C或锐捷的交换机。这些厂商的命令风格和华为接近但也有细微差异。这里列出华三和锐捷的常见配置思路方便你在不同厂商设备间切换时不至于晕头转向。5.1 华三交换机配置要点华三默认 DHCP 服务同样是关闭的需要手动开启。核心命令如下system-view [H3C] dhcp enable配置地址池[H3C] dhcp server ip-pool pool_vlan10 [H3C-dhcp-pool-pool_vlan10] network 192.168.10.0 mask 255.255.255.0 [H3C-dhcp-pool-pool_vlan10] gateway-list 192.168.10.254 [H3C-dhcp-pool-pool_vlan10] dns-list 223.5.5.5 114.114.114.114 [H3C-dhcp-pool-pool_vlan10] expired day 1 hour 0 minute 0 [H3C-dhcp-pool-pool_vlan10] forbid-ip 192.168.10.200 to 192.168.10.254华三的命令整体上和华为很相似但有几个细节需要注意expired day 1 hour 0 minute 0是设置租期的完整写法直接写expired day 1也可以。排除地址用的是forbid-ip不是excluded-ip-address。华三的 DHCP Server 在开启时还需要注意如果交换机是作为 DHCP Server 不做中继则只需要dhcp enable即可如果做中继需要额外配置dhcp relay相关命令。5.2 锐捷交换机配置要点锐捷的配置模式有一定差异尤其是地址池配置和接口 IP 绑定的方式。锐捷的 DHCP 地址池配置通常采用接口地址池与全局地址池结合的方式但也能配置全局地址池Ruijie enable Ruijie# configure terminal Ruijie(config)# service dhcp Ruijie(config)# ip dhcp pool pool_vlan10 Ruijie(dhcp-config)# network 192.168.10.0 255.255.255.0 Ruijie(dhcp-config)# default-router 192.168.10.254 Ruijie(dhcp-config)# dns-server 223.5.5.5 114.114.114.114 Ruijie(dhcp-config)# lease 1 Ruijie(dhcp-config)# exit Ruijie(config)# ip dhcp excluded-address 192.168.10.200 192.168.10.254锐捷的关键差异是需要先使用service dhcp开启 DHCP 服务。网关参数用的是default-router而不是gateway-list。排除地址是在全局配置模式下执行的ip dhcp excluded-address不在地址池视图内。租期命令不需要加day直接写数字即可单位是天。5.3 配置差异汇总表厂商开启服务创建地址池网关参数DNS 参数排除地址租期华为dhcp enableip poolgateway-listdns-listexcluded-ip-addresslease day华三dhcp enabledhcp server ip-poolgateway-listdns-listforbid-ipexpired day锐捷service dhcpip dhcp pooldefault-routerdns-serverip dhcp excluded-addresslease可以看到大思路都是“开服务 → 建地址池 → 配置参数”只是命令单词不同。掌握了原理后换厂商只是“翻译”的过程。6. 常见故障与排查思路DHCP 配置本身不难但项目里最常见的问题经常是“看起来配好了终端就是拿不到地址”。这里罗列几个高频故障场景和排查方向。6.1 常见问题对照表问题现象常见原因解决思路终端无法获取 IP 地址没有执行 dhcp enable检查是否已经开启 DHCP 服务终端获取到 IP 但无法上网网关参数配置错误检查 gateway-list 是否与 VLANIF 一致终端获取到其他网段的地址地址池 network 网段重叠检查所有全局地址池避免重叠部分地址无法分配地址被排除掉检查 excluded-ip-address 是否正确终端反复掉线重连租期过短或地址池耗尽扩大地址池范围或调整租期获取地址非常慢网络里有广播风暴或 DHCP 报文被阻断检查二层环路、端口隔离、DHCP Snooping手机/电脑能获取地址但 DNS 解析失败DNS 服务器不可达检查 dns-list 是否可达使用 ping 测试交换机重启后终端无法获取地址配置未保存及时执行 save6.2 排查思路建议遇到终端无法获取地址的问题时按以下顺序排查第一步确认配置是否生效display ip pool display dhcp status如果地址池为空或者 DHCP 状态为 Disable说明服务没开或配置被覆盖了。第二步确认终端和交换机是否二层互通在交换机上执行display mac-address看看能不能看到终端的 MAC 地址。如果看不到说明端口 VLAN 划分有问题或物理链路不通。第三步抓包或查看报文统计在交换机上执行display dhcp statistics重点看 Discover 报文有没有收到。如果没收到问题在二层链路如果收到了但没有发出 Offer问题在地址池匹配或地址池没有可用地址。第四步确认地址池是否有地址可用display ip pool name pool_vlan10 used如果地址池地址全部处于 Used 状态说明地址池容量不够需要扩容或排除掉异常占用。7. 最佳实践与工程建议基础配置完成后要想让这套 DHCP 服务在真实网络环境里稳定运行还需要注意以下几点。7.1 合理规划地址池范围给地址池分配范围时不要贪图方便直接把整个网段都放进去。建议网关地址默认放外面。服务器、打印机、网络设备等固定设备预留独立网段或静态 IP。管理 VLAN 的地址池范围可以收紧一些减少广播域无意义的主机数量。比如 192.168.10.0/24 网段可以规划 1-49 做静态地址50-200 做 DHCP 动态分配201-254 保留给未来扩展。7.2 正确设置租期租期不是一个可以随便拍脑袋的参数。对于办公网络租期建议 8 小时到 1 天原因在于员工流动频繁短租期可以让地址更快回收。对于监控摄像头、门禁、打印机这类固定设备租期可以设置为 7 天甚至更长减少无意义的续约报文。7.3 一定记得开启 DHCP Snooping在接入交换机上开启 DHCP Snooping 可以防止网络中有人私接路由或小路由器导致 DHCP 欺骗攻击。DHCP Snooping 的信任端口配置思路如下以华为为例[Switch] dhcp snooping enable [Switch] interface GigabitEthernet 0/0/24 [Switch-GigabitEthernet0/0/24] dhcp snooping trusted上联口通常配置为信任端口下联口不配置默认视为不可信端口。这样即便下联的某个终端私接了一个 DHCP 服务器它的报文也不会被终端接受。7.4 配置保存与备份这是老生常谈但依然有很多人在配置完忘记保存设备重启后一切重来。配置完成后务必执行save完整配置备份建议通过 FTP、SFTP 或 TFTP 定期导出到本地避免设备故障导致配置丢失。7.5 注意中继场景下的接口地址池与全局地址池如果你的 DHCP 服务器配置在核心交换机上但终端接入是通过汇聚交换机且网关在汇聚交换机上那么你的终端请求需要通过 DHCP Relay 转发到核心交换机。此时核心交换机上的地址池建议使用全局地址池同时汇聚交换机需要配置dhcp relay并指定 DHCP 服务器地址。华为交换机开启 DHCP Relay 的命令示意如下在汇聚交换机上配置[SW-Agg] dhcp enable [SW-Agg] interface Vlanif 10 [SW-Agg-Vlanif10] dhcp select relay [SW-Agg-Vlanif10] dhcp relay server-ip 192.168.254.1核心交换机上的地址池需要和终端网关所在网段匹配方能正确分配。7.6 日志监控与告警生产环境中建议开启 DHCP 日志和地址池水位告警。很多交换机的系统日志会上报DHCP相关事件。关注地址池使用率当地址池剩余地址不足 10% 时提前扩容比用户发现“连不上网”再排查要舒服得多。8. 下一步学什么交换机基于全局地址池配置 DHCP 服务器只是网络基础服务里的一个环节。掌握这个场景后你还可以继续深入学习VLAN 间路由与策略路由配置。DHCP Relay 中继的完整部署。DHCP Snooping 与 IP Source Guard 的联动防欺骗方案。基于 MAC 地址的 DHCP 静态绑定给特定设备固定分配 IP。使用 SNMP 或 Telemetry 监控地址池水位与 DHCP 成功率。如果你之前完全没接触过华为交换机可以从 eNSP 模拟器开始练习把本文中的配置在模拟器里完整跑一遍。模拟器最大的价值在于“随便折腾”你可以在完全不影响生产网络的前提下去验证想法、制造故障、学习排错。等到真实设备上配置时你会发现自己对命令和原理的理解会踏实很多。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。