实验拓扑与目标
拓扑结构



说明:本实验假设SW1、SW2使用G0/0/1、G0/0/2端口作为上联端口连接R1
实验目标
- 在R2上为两个不同网段(VLAN 10和VLAN 20)的PC提供DHCP服务
- 实现跨网段DHCP中继,使客户端能从远端DHCP服务器获取IP
- 在交换机上配置VLAN和接口
- 配置DHCP Snooping安全机制
- 掌握DHCP排错与验证方法
详细配置步骤与命令行解析
第一步:基础网络配置
1. 路由器R1 - 接口IP配置
sysname R1
# 配置连接外网的接口
interface GigabitEthernet0/0/0
ip address 192.168.100.1 255.255.255.0
#
# 配置连接客户端的两个网关接口
interface GigabitEthernet0/0/1
ip address 10.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 10.1.2.1 255.255.255.0
解析:为各接口配置IP地址,包括外网接口和两个客户端网段的网关地址。
2. 交换机S1 - VLAN与接口配置
sysname SW1
# 创建VLAN
[SW1]vlan batch 10
# 将连接PC的接口划入VLAN 10
[SW1-Ethernet0/0/1] port link-type access
[SW1-Ethernet0/0/1] port default vlan 10
[SW1-Ethernet0/0/2] port link-type access
[SW1-Ethernet0/0/2] port default vlan 10
# 连接路由器的接口配置为access
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
解析:创建用户VLAN,Access口接PC,Trunk口上联路由器传递VLAN信息。
3. 交换机S2 - VLAN与接口配置
sysname SW2
# 创建VLAN
[SW2]vlan batch 20
# 将连接PC的接口划入VLAN 20
[SW2-Ethernet0/0/1] port link-type access
[SW2-Ethernet0/0/1] port default vlan 20
[SW2-Ethernet0/0/2] port link-type access
[SW2-Ethernet0/0/2] port default vlan 20
# 连接路由器的接口配置为access
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
解析:S2配置与S1类似,但针对VLAN 20网段,确保网络分段隔离。
第二步:DHCP服务器配置(在R2上开启DHCP服务)
1. 启用DHCP服务
# 系统视图下
dhcp enable
解析:华为设备默认DHCP服务未开启,必须先执行此命令。
2. 创建DHCP地址池
# 为VLAN 10创建地址池
ip pool vlan10
gateway-list 10.1.1.1
network 10.1.1.0 mask 255.255.255.0
excluded-ip-address 10.1.1.2 10.1.1.10
lease day 3 hour 0 minute 0
dns-list 8.8.8.8
#
# 为VLAN 20创建地址池
ip pool vlan20
gateway-list 10.1.2.1
network 10.1.2.0 mask 255.255.255.0
excluded-ip-address 10.1.2.2 10.1.2.10
lease day 3 hour 0 minute 0
dns-list 8.8.8.8
命令行解析:
ip pool [name]:创建并命名地址池network:定义地址池的网络范围gateway-list:指定客户端的默认网关dns-list:分配DNS服务器地址excluded-ip-address:排除不分配的IP(如网关地址)lease:设置租约时间
3. 在接口上应用全局地址池
[R2-GigabitEthernet0/0/0]display this
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 192.168.100.2 255.255.255.0
dhcp select global
解析 :dhcp select global表示接口使用全局DHCP地址池分配IP。
第三步:DHCP中继配置
1. 配置路由互通
# 配置到R2到R1的路由
ip route-static 10.1.0.0 255.255.0.0 192.168.100.1
# 配置到R1到R2的路由
ip route-static 0.0.0.0 0.0.0.0 192.168.100.2
解析:确保R1能够将DHCP请求正确转发到远端服务器。
2. 在R1上配置DHCP中继
# 在接口视图下
[R1-GigabitEthernet0/0/1]display this
[V200R003C00]
#
interface GigabitEthernet0/0/1
ip address 10.1.1.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.100.2
#
[R1-GigabitEthernet0/0/2]display this
[V200R003C00]
#
interface GigabitEthernet0/0/2
ip address 10.1.2.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.100.2
#
注意:远端服务器上的地址池不需要与自身直连网络匹配,但网关必须指向中继接口地址。
第四步:DHCP Snooping安全配置
1. 交换机SW1上配置DHCP Snooping
# 开启DHCP Snooping功能
dhcp enable
dhcp snooping enable
# 在VLAN 10上启用
dhcp snooping enable vlan 10
# 指定上联口为信任口
interface GigabitEthernet0/0/1
dhcp snooping trusted
# 防攻击配置
dhcp snooping check dhcp-rate enable
#功能:在接口上启用DHCP报文速率检查。当接口接收DHCP报文的速率超过设定的阈值时,
#会采取相应的动作(默#认是丢弃超过阈值的报文并告警)。
dhcp snooping check dhcp-rate 15
#功能:设置DHCP报文速率的阈值为每秒15个报文。即该接口每秒最多接收15个DHCP报文,超过的部分将被丢弃。
#这两条命令通常用于防止DHCP泛洪攻击,攻击者可能会发送大量的DHCP请求以耗尽DHCP服务器的资源或进行
#拒绝服务攻击。通过限制每个接口的DHCP报文接收速率,可以减轻这种攻击的影响。
# 启用IP源防护-防止IP欺骗和加强网络安全的命令
#用于启用IP报文源地址检查功能,该功能会检查经过该接口的IP报文的源地址是否与DHCP Snooping绑定表(或静态绑定表)匹配
[SW1-Ethernet0/0/1]ip source check user-bind enable
2. 交换机S2上配置DHCP Snooping
# 开启DHCP Snooping功能
dhcp enable
dhcp snooping enable
# 在VLAN 20上启用
dhcp snooping enable vlan 20
# 指定上联口为信任口
interface GigabitEthernet0/0/2
dhcp snooping trusted
# 防攻击配置
dhcp snooping check dhcp-rate enable
#功能:在接口上启用DHCP报文速率检查。当接口接收DHCP报文的速率超过设定的阈值时,
#会采取相应的动作(默#认是丢弃超过阈值的报文并告警)。
dhcp snooping check dhcp-rate 15
#功能:设置DHCP报文速率的阈值为每秒15个报文。即该接口每秒最多接收15个DHCP报文,超过的部分将被丢弃。
#这两条命令通常用于防止DHCP泛洪攻击,攻击者可能会发送大量的DHCP请求以耗尽DHCP服务器的资源或进行
#拒绝服务攻击。通过限制每个接口的DHCP报文接收速率,可以减轻这种攻击的影响。
# 启用IP源防护-防止IP欺骗和加强网络安全的命令
#用于启用IP报文源地址检查功能,该功能会检查经过该接口的IP报文的源地址是否与DHCP Snooping绑定表(或静态绑定表)匹配
[SW1-Ethernet0/0/1]ip source check user-bind enable
解析:DHCP Snooping通过信任端口机制,只允许上联口的DHCP服务器响应通过,有效防止非法DHCP服务器攻击。IP源防护进一步防止IP欺骗攻击。
DHCP中继原理详解
工作流程(以PC1获取IP为例):
- 发现阶段:PC1发送DHCP DISCOVER广播(目标IP: 255.255.255.255)
- 中继接收:R1的G0/0/1接口收到广播,识别为DHCP请求
- 修改转发 :
- 将广播改为单播,目标IP = 192.168.100.2(服务器)
- 在DHCP报文中插入giaddr字段 = 10.1.1.1(中继接口IP)
- 服务器处理:DHCP服务器根据giaddr确定客户端所属网段,从对应地址池分配IP
- 响应返回:服务器单播回复R1,R1再转发给PC1
关键点:
- giaddr字段是中继的核心,它告诉服务器客户端所在的子网
- 中继代理会修改DHCP报文中的源IP,使其显示为中继接口IP
- 服务器必须有到客户端网络的路由,才能正常响应
验证与排错命令
1. 基础验证命令
# 查看地址池分配情况
display ip pool name vlan10
# 检查DHCP中继
display dhcp relay all
# 查看中继接口状态和信息
# display dhcp server statistics
# 查看已分配的IP地址
# 检查DHCP Snooping表
display dhcp snooping user-bind all
2. 客户端验证
# 在PC上
ipconfig /release
ipconfig /renew
4. 典型排错案例
案例:PC获取到169.254.x.x地址
- 分析:此为APIPA地址,表明DHCP请求未成功
- 排查步骤 :
- 检查PC与网关连通性: ping 10.1.1.1
- 检查R1上DHCP中继配置: display dhcp relay
- 验证R1到DHCP服务器的连通性: ping 192.168.100.2
- 检查DHCP服务器地址池是否耗尽: display ip pool
- 若启用Snooping,检查信任端口配置
常见问题与解决方案
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 客户端获取不到IP | DHCP服务未开启 | 执行dhcp enable |
| 获取到错误网段IP | 地址池配置错误 | 检查地址池的network和网关 |
| 中继不工作 | 未指定服务器IP | 确认dhcp relay server-ip配置正确 |
| 服务器收不到请求 | 路由不可达 | 确保服务器与中继间路由畅通 |
| 部分PC无法获取IP | DHCP Snooping误拦 | 检查信任口配置 |
| 地址分配速度慢 | DHCP请求/响应丢失 | 检查网络拥塞或配置DHCP中继备份 |
企业网络最佳实践
1. 地址池规划
- 保留10-15%的地址空间不分配,用于服务器和网络设备静态IP
- 为不同类型的设备创建不同的地址池(如办公设备、IoT设备、访客设备)
2. 租期设置指南
- 办公终端:8小时(工作日时长)
- 移动设备/访客:2小时
- 重要服务器:应使用静态IP,不通过DHCP分配
- IP电话:7天(减少不必要的重注册)
3. 高可用设计
- 部署多台DHCP服务器,使用80/20规则分配地址池
- 配置DHCP中继备份(多台中继路由器)
- 监控地址池使用率,当达到75%时触发告警
4. 安全加固
- 始终启用DHCP Snooping
- 配置Option 82以支持更精细的控制
- 结合IPSG和DAI实现全面安全防护
- 限制每端口可获取的IP数量,防止地址耗尽攻击
实验总结
核心知识点
- DHCP基础:掌握地址池创建、网关/DNS分配、租约设置
- 中继核心:理解giaddr的作用,掌握跨网段IP分配的流程
- 安全加固:通过DHCP Snooping防止网络中的非法DHCP服务器
- 排错技能:熟练使用display和debugging命令定位问题
提示:在实际企业环境中,DHCP服务通常由专用服务器(如Windows Server或Linux)提供,而非路由器。本实验通过路由器模拟,重点在于理解工作原理与配置逻辑。
