【华为】DHCP中继工作原理及实验配置

在这里插入图片描述

前言

网络结构复杂且存在多个不同网段时,DHCP中继服务成为必需。
DHCP中继允许位于不同网段的客户端接收到DHCP信息,获取到IP地址,简化了网络管理员的工作,提供了一种有效的方式,使得位于不同网段的客户端可以自动获取IP地址和其他网络配置信息

这个也需要了解一定的DHCP的基础,可以看看这篇
链接: 【思科】DHCP配置和工作原理

工作原理

DHCP 报文

报文作用
DHCP DISCOVERDHCP交互的第一个报文,用来寻找DHCP服务器
DHCP Offer服务器响应DHCP DISCOVER的请求,提供IP和其他配置信息
DHCP Request广播回应服务器的DHCP OFFER报文
DHCP ACK服务器对客户端的DHCP REQUEST报文的确认报文

过程图解

在这里插入图片描述

过程详解

发现阶段

在第一阶段,客户端会广播发送DHCP Discover 报文,去寻找DHCP 服务器。
由于DHCP 服务器和客户端不在同一个网段内
服务器不能直接接收到DHCP Discover 报文,就只能通过DHCP 中继进行转发。

当有多个DHCP中继时候,也要去辨认这个DHCP
Discover包经过了几个中继,那么服务器又是怎么知道该服务器位于哪个网段,我要分配哪个网段IP地址
这些疑问都需要用到hops、giaddr这两个字段
.
hops字段:经过了几个中继,每经过一个中继,就会加1,最高能经过16台中继
giaddr字段:将经过的第一个中继接口设置为接收DHCP Discover 报文的接口IP地址

在DHCP 中继上,会检查这两个字段,如下:

  1. 检查DHCP报文中的hops字段,如果大于16,则丢弃DHCP报文;否则,将hops字段加1(表明经过一次DHCP中继),并继续下面的操作。

  2. 检查DHCP报文中的giaddr字段。如果是0,将giaddr字段设置为接收DHCP Discover 报文的接口IP地址。如果不是0,则不修改该字段,继续下面的操作。

  3. 将DHCP报文的目的IP地址改为DHCP服务器或下一跳中继的IP地址源地址改为中继连接客户端的接口地址,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继

如果DHCP客户端与DHCP服务器之间存在多个DHCP中继,后面的中继接收到DHCP Discover 报文的处理流程同前面所述。

提供阶段

DHCP服务器接收到DHCP DISCOVER报文后
选择与报文中giaddr字段为同一网段的地址池,先会进行IP地址冲突检测

IP地址冲突检测

  1. 会发送一个ICMP包,以中继的IP地址为源IP地址,以需要分配的IP地址为目的地址 如果没有回应,就说明该IP地址可用 如果有回应,就说明该地址被使用,继续选择下一个地址

  2. 它会广播发送ARP去询问该地址是否有人用 如果有回应,就说明该地址被使用,继续选择下一个地址 如果没有回应该广播ARP的话,就开始为客户端分配IP地址等参数 然后向giaddr字段标识的DHCP中继单播发送DHCP
    OFFER报文。

DHCP中继收到DHCP OFFER报文后,会进行如下处理:
检查报文中的giaddr字段,如果不是接口的地址,则丢弃该报文;否则,继续下面的操作。

DHCP中继检查报文的广播标志位。
如果广播标志位为1,则将DHCP OFFER报文广播发送给DHCP客户端;
否则将DHCP OFFER报文单播发送给DHCP客户端

选择阶段

如果有多个DHCP服务器向DHCP客户端回应DHCP Offer报文,则DHCP客户端一般只接收第一个收到的DHCP Offer报文,然后以广播方式发送DHCP Request报文,该报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址。

DHCP客户端广播发送DHCP Request报文通知所有的DHCP服务器,它将选择某个DHCP服务器提供的IP地址,其他DHCP服务器可以重新将曾经分配给客户端的IP地址分配给其他客户端。

确认阶段

当DHCP服务器收到DHCP客户端发送的DHCP Request报文后,DHCP服务器回应DHCP ACK报文,表示DHCP Request 报文中请求的IP地址分配给客户端使用。

当DHCP服务器收到DHCP客户端发送的DHCP Request报文后,如果DHCP服务器由于某些原因(例如协商出错或者由于发送Request过慢导致服务器已经把此地址分配给其他客户端)无法分配DHCP Request报文中的IP地址,则发送DHCP NAK报文作为应答,通知DHCP客户端无法分配此IP地址。DHCP客户端需要重新发送DHCP Discover报文来申请新的IP地址。

过程的报文交换

在这里插入图片描述
在这里插入图片描述

配置

拓扑

在这里插入图片描述

R1

[DHCP-Server]dhcp enable           ## 这个千万不要忘记啦,要记得打开DHCP功能哦

[DHCP-Server]int g0/0/0
[DHCP-Server-GigabitEthernet0/0/0]ip address 192.168.100.254 24   ##配置IP地址
 
 ====================================  创建DHCP 地址池 ========================================
[DHCP-Server]ip pool vlan10        
[DHCP-Server-ip-pool-vlan10]network 192.168.10.0 mask 24   ## 下发的网段范围
[DHCP-Server-ip-pool-vlan10]gateway-list 192.168.10.254    ## 默认网关
[DHCP-Server-ip-pool-vlan10]dns-list 8.8.8.8               ## DNS服务器
[DHCP-Server-ip-pool-vlan10]qu

[DHCP-Server]ip pool vlan20
[DHCP-Server-ip-pool-vlan20]network 192.168.20.0 mask 24
[DHCP-Server-ip-pool-vlan20]gateway-list 192.168.20.254
[DHCP-Server-ip-pool-vlan20]dns-list 8.8.8.8
[DHCP-Server-ip-pool-vlan20]qu
 ================================== 进入该接口,打开全局中DHCP 功能 ==============================
[DHCP-Server]int g0/0/0
[DHCP-Server-GigabitEthernet0/0/0]dhcp select global        ## 调用该地址池
[DHCP-Server-GigabitEthernet0/0/0]qu
 =========================================== 静态路由 ===========================================
[DHCP-Server]ip route-static 192.168.10.0 255.255.255.0 192.168.100.100 
[DHCP-Server]ip route-static 192.168.20.0 255.255.255.0 192.168.100.100
静态路由的目的是,实现对PC的网关可达,有在最后详细阐述了该静态路由的作用

DSW (核心层)

SVI接口当作PC的网关,并且配置上DHCP中继
[DSW-Vlanif10] dhcp select relay
[DSW-Vlanif10] dhcp relay server-ip 192.168.100.254


[DSW] dhcp enable           ## 这个千万不要忘记啦,要记得打开DHCP功能哦

## 需要先创建VLAN,才能配置SVI接口
[DSW]vlan 10
[DSW-vlan10]vlan 20
[DSW-vlan20]vlan 100
 =========================================  实现交换机与服务器通信  ========================================
## VLAN 100 是用来与服务器实现通信的,从而达成中继功能
[DSW]interface Vlan 100      
[DSW-Vlanif100] ip address 192.168.100.100 255.255.255.0
[DSW-Vlanif100]qu

## 要将交换机DSW与路由器相连的接口,改成Access端口
## 这样子,携带Tag标签的流量,就会被剥离掉,从而实现通信

[DSW]interface GigabitEthernet0/0/1
[DSW-GigabitEthernet0/0/1] port link-type access
[DSW-GigabitEthernet0/0/1] port default vlan 100
[DSW-GigabitEthernet0/0/1]#
 ========================================  配置PC网关地址(SVI接口) ======================================
[DSW]interface Vlan 10
[DSW-Vlanif10] ip address 192.168.10.254 255.255.255.0       ## PC的网关地址
[DSW-Vlanif10] dhcp select relay                             ## DHCP中继开启
[DSW-Vlanif10] dhcp relay server-ip 192.168.100.254          ## 配置DHCP服务器的地址:192.168.100.254 
[DSW-Vlanif10]qu

[DSW]interface Vlan 20
[DSW-Vlanif20] ip address 192.168.20.254 255.255.255.0
[DSW-Vlanif20] dhcp select relay
[DSW-Vlanif20] dhcp relay server-ip 192.168.100.254
[DSW-Vlanif20]qu

LSW (汇聚层)

[DSW]vlan 10
[DSW-vlan10]vlan 20

[LSW]interface Ethernet0/0/1
[LSW-Ethernet0/0/1] port link-type trunk
[LSW-Ethernet0/0/1] port trunk allow-pass vlan 10 20
[LSW-Ethernet0/0/1]qu

[LSW]interface Ethernet0/0/2
[LSW-Ethernet0/0/2] port link-type access
[LSW-Ethernet0/0/2] port default vlan 10
[LSW-Ethernet0/0/2]qu

[LSW]interface Ethernet0/0/3
[LSW-Ethernet0/0/3] port link-type access
[LSW-Ethernet0/0/3] port default vlan 20
[LSW-Ethernet0/0/3]qu

PC1

在这里插入图片描述
在这里插入图片描述

PC2

在这里插入图片描述

在这里插入图片描述

强调

大家可以在 这个抓包截图中发现 ,当PC去请求DHCP服务器的时候,一直请求不下来,为什么?
在这里插入图片描述
因为DHCP中继给DHCP服务器发的是单播,并且源IP地址是PC的网关,DHCP的服务器收到了DHCP中继的Discover报文,它开始查本地路由表时,并没有找到通往该PC网关的路由条目,就没有回包给中继,导致DHCP 的协商迟迟不成功。

DHCP_Server 的路由表
在这里插入图片描述

解决方法:
配置两条指向PC网关的静态路由

[DHCP-Server]ip route-static 192.168.10.0 255.255.255.0 192.168.100.100 
[DHCP-Server]ip route-static 192.168.20.0 255.255.255.0 192.168.100.100

现在的路由表

在这里插入图片描述
获取成功啦
在这里插入图片描述

配置文档

R1


#
dhcp enable
#
ip pool vlan10
 gateway-list 192.168.10.254 
 network 192.168.10.0 mask 255.255.255.0 
 dns-list 8.8.8.8 
#
ip pool vlan20
 gateway-list 192.168.20.254 
 network 192.168.20.0 mask 255.255.255.0 
 dns-list 8.8.8.8 
#
interface GigabitEthernet0/0/0
 ip address 192.168.100.254 255.255.255.0 
 dhcp select global
#
ip route-static 192.168.10.0 255.255.255.0 192.168.100.100
ip route-static 192.168.20.0 255.255.255.0 192.168.100.100
#

DSW

#
dhcp enable
#
vlan batch 10 20 100
#
interface Vlanif10
 ip address 192.168.10.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 192.168.100.254
#
interface Vlanif20
 ip address 192.168.20.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 192.168.100.254
#
interface Vlanif100
 ip address 192.168.100.100 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 100
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20
#

LSW

#
vlan batch 10 20
#
interface Ethernet0/0/1
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 10 20
#
interface Ethernet0/0/2
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/3
 port link-type access
 port default vlan 20
#

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张白夕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值