DHCP理论+实验案例
DHCP理论+实验案例
DHCP(Dynamic Host Configuration Protocol)是一种用于自动分配IP地址的协议,广泛应用于各种网络环境中。本文将从DHCP的基本概念、报文类型、工作原理、配置方法以及DHCP中继的实现等多个方面进行详细讲解,并通过具体的实验案例帮助读者更好地理解和应用DHCP协议。
一、DHCP概述
1.DHCP产生的背景
(1)当网络规模比较大的时候,给终端设备配置IP地址会比较繁琐。
(2)手工配置的IP地址可能会出现地址重复导致地址冲突
(3)让IP地址的利用率更高
二、DHCP的报文及工作原理
1.DHCP的报文封装
DHCP是封装在UDP之上,目的端口号是67,源端口号是68这是终端设备发送给服务器的,如果是服务器发送给终端设备的DHCP则目的端口号为68,源端口号为67。
2.DHCP的报文类型
- discover(发现报文):终端用于寻找DHCP服务器,是一个广播报文,源IP是0.0.0.0,目的IP是255.255.255.255。
- Offer(通告报文):DHCP服务器用于发送分配给终端的IP和网关以及DNS,掩码等信息。该报文是单播报文,源IP地址是服务器的IP地址,目的地址是分配给终端的IP地址。
- request:客户端用于回应服务器的offer报文,确认使用哪台DHCP服务器分配的IP地址,该报文是广播报文。
- ACK报文(确认报文):服务器用于回应终端,表示确认。该报文是单播报文,源地址是服务器的IP地址,目的地址是分配给终端的IP地址。
- release:终端用于释放DHCP获取的IP地址,单播报文,源IP就是自己获取的地址,目的就是服务器的IP地址
- decline:当获取的地址和现网中的IP地址冲突时,获取地址的终端会发出decline报文,该报文是广播报文。
注:因为DHCP属于一个有状态的协议所以DHCP会记录获取IP的终端的MAC和租约信息以及获取地址的一个状态(冲突,使用,超时,空闲)
3.DHCP的工作原理
(1).终端设备开启DHCP动态自动获取地址时会周期性的发送DHCP的discover广播报文寻找DHCP服务器。
(2)这时DHCP服务器如果收到了终端发送的discover报文时会回应DHCP offer单播报文,该报文会携带IP、网关、DNS...等信息,如果这个广播域内有多个DHCP服务器且都回应了offer报文,终端会使用收到的第一个offer报文。
(3)接收完DHCP服务器的offer报文后,终端设备会发送DHCP request广播报文来告示这个广播域内的所有DHCP服务器自己使用了哪一台DHCP服务器的地址。
(4)当服务器收到终端设备发送的DHCP request报文时,会回应DHCP ACK报文来对终端设备做确认。
三、DHCP的配置
1.配置方式
DHCP服务器的配置方式分为:
(1)接口配置方式
(2)全局配置方式
通常情况下我们都使用全局地址池的配置方式来配置DHCP服务器
2.终端获取地址的顺序
静态绑定(配置了指定地址与MAC进行了静态绑定的状态)>ldle(空闲状态,华为是从大到小分配)>Expired(超时状态)>Conflict(地址冲突状态)
四、DHCP实验
1.基于接口的DHCP
拓扑
这个拓扑中交换机就当是傻瓜交换机我们不需要配置任何命令
(1)基础配置
AR1
system-view
sysname AR1
interface GigabitEthernet 0/0/0
ip address 10.1.1.254 255.255.255.0
(2)DHCP参数配置
dhcp enable(开启dhcp功能)
interface GigabitEthernet0/0/0
ip address 10.1.1.254 255.255.255.0
dhcp select interface(配置DHCP为基于接口模式)
dhcp server lease day 7 hour 0 minute 0(配置DHCP服务器租约时间)
dhcp server dns-list 8.8.8.8(配置DNS)
到这里我们就配置结束了我们现在打开抓包软件然后把主机的IP地址设置为DHCP动态自动获取模式
获取成功后我们可以在主机上使用ipconfig来查看我们获取到的地址,也可以在服务器上查看DHCP地址表
通过这几张图我们能看出来华为的DHCP是从大到小来分配地址的。
2.基于全局的DHCP
拓扑
(1)基础配置
这里与上面相同就不过多解释了
(2)DHCP配置
ip pool 1(全局模式下创建DHCP地址池名称为1)
gateway-list 10.1.1.254(配置网关)
network 10.1.1.0 mask 255.255.255.0(配置DHCP地址池可分配地址范围)
static-bind ip-address 10.1.1.250 mac-address 5489-9844-5450(静态绑定指定IP)
lease day 7 hour 0 minute 0(配置租约)
dns-list 8.8.8.8(配置DNS)
quit
interface GigabitEthernet0/0/0
ip address 10.1.1.254 255.255.255.0
dhcp select global(配置DHCP服务器模式为全局模式)
这里我们可以看到接口模式与全局模式获取地址时并无过多差异
我们可以看到使用了静态绑定后的地址状态为Static-bind used对应上面所说的,DHCP服务器的分配原则,优先分配静态绑定的IP。
3.地址冲突实验
拓扑
我们知道路由器在配置地址时会发送免费ARP来检测是否会有地址冲突,在以上这个拓扑环境中我们可以做个实验来看看当网络中有地址冲突时DHCP终端与客户端是如何来解决的。
(1)基础配置
AR1
system-view
sysname AR1
interface GigabitEthernet 0/0/0
ip address 10.1.1.254 255.255.255.0
(2)DHCP配置
dhcp enable
interface GigabitEthernet0/0/0
dhcp select interface
dhcp server dns-list 8.8.8.8
到这里就配置完了,接下来我们先把PC1的地址配置成与AR2DHCP获取到的地址相同在使用AR2去获取DHCP地址时就会发送地址冲突的报文给DHCP服务器
AR2配置
interface GigabitEthernet0/0/0
ip address dhcp-alloc
我们看到AR2获取地址后检测到有冲突的IP地址发送了一份DHCP Decline广播报文发送给DHCP服务器,当DHCP服务器收到后会把该地址置为冲突状态,AR2会重新发送discover获取新的地址。
当然我们可以优化这种情况,我们可以在DHCP服务器上配置dhcp server ping这条命令,配置完这条命令之后DHCP服务器在分配地址之前会先往网络中发送一个目的IP为分配地址源IP为自己的ICMP的ping报文来检测网络中是否有冲突地址,如果有收到回应ping通了那就表示有冲突地址,DHCP服务器则会把此地址置为冲突状态从后面的地址开始分配。
配置
dhcp server ping packet 5 timeout 10(全局模式配置,发送5个报文10秒内看看会不会收到回应)
五、DHCP中继
概述、
通常情况下我们的DHCP服务器和终端设备都在同一个网络当中,这是因为DHCP中的部分报文是以广播的形式传播的,如果不在同一网络当中则这些广播报文无法跨三层设备传递则无法获取DHCP地址。
但是有特殊情况下我们的服务器和终端设备必须得跨不同的网络来进行获取地址,这时就需要配置我们的DHCP中继代理,DHCP中继其实就是在终端设备与DHCP服务器之间配置一个中继代理,中继代理会接收终端设备的DHCP报文然后以单播的方式转发给DHCP服务器,同样DHCP服务器在收到中继代理发送的DHCP请求报文时也会发送DHCP回应报文给中继代理转发,类似于一个中转站,中间人。
DHCP中继代理会把终端设备发送的源目IP进行更改,将原本的广播报文改为单播报文。
注:配置中继代理时路由一定需要可达
六、DHCP中继实验
拓扑
(1)基础配置
AR2
system-view
#
sysname AR2
interface GigabitEthernet0/0/0(连接DHCP服务器的端口)
ip address 10.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1(连接PC1的端口)
ip address 10.1.10.1 255.255.255.0
#
interface GigabitEthernet0/0/2(连接PC2的端口)
ip address 10.1.20.1 255.255.255.0
#
AR1
system-view
#
sysname AR1
#
interface GigabitEthernet0/0/0(连接中继代理的端口)
ip address 10.1.1.254 255.255.255.0
(2)DHCP配置
AR2
dhcp enable(开启DHCP功能)
#
interface GigabitEthernet0/0/1
ip address 10.1.10.1 255.255.255.0
dhcp select relay(配置DHCP服务器模式为中继代理模式)
dhcp relay server-ip 10.1.1.254(配置DHCP服务器的IP地址)
#
interface GigabitEthernet0/0/2
ip address 10.1.20.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 10.1.1.254
#
AR1
dhcp enable
#
ip pool PC1
gateway-list 10.1.10.1
network 10.1.10.0 mask 255.255.255.0
lease day 7 hour 0 minute 0
dns-list 8.8.8.8
#
ip pool PC2
gateway-list 10.1.20.1
network 10.1.20.0 mask 255.255.255.0
lease day 7 hour 0 minute 0
dns-list 8.8.8.8
#
interface GigabitEthernet0/0/0
ip address 10.1.1.254 255.255.255.0
dhcp select global
#
(3)路由配置
ip route-static 0.0.0.0 0.0.0.0 10.1.1.1(配置到达终端设备网络的路由)
DHCP client - 中继代理设备
中继代理设备 - DHCP服务器
PC1
中继代理设备收到的DHCP报文
DHCP服务器地址表