目录
DHCP
DHCP端口号
DHCP报文
DHCP工作过程
DHCP租期续租
DHCPv6
DHCPv6端口号
DHCPv6报文
DHCPv6工作原理
DHCP
DHCP端口号
DHCP主要有两个端口号,分别是UDP67和UDP68
DHCP客户端向DHCP服务器发送报文时采用68端口号,DHCP服务器向DHCP客户端发送报文时采用67端口号
DHCP报文
Discover 用来寻找DHCP服务器(广播)
Offer 服务器用来响应discover报文(携带了各种配置信息)(广播/单播)
Request 客户端初始化时用来回应服务器发送的Offer报文(广播);客户端重启时用来确认先前被分配的IP地址等配置信息(广播);客户端进行IP地址续约时发送(广播/单播)
Ack 服务器对Request报文的确认响应报文(客户端收到此报文后,才真正获得了IP地址和相关的配置信息)(广播/单播)
Decline 客户端发现服务器分配的地址冲突,发送此报文重新申请地址(单播)
Release 客户端主动释放服务器分配的IP地址(单播)
Inform 客户端获取IP地址后向服务器请求其他配置信息(网关地址、DNS服务器等信息)(单播)
Nak 服务器对客户端Request报文的拒绝响应报文(单播)
Relay DHCP中继设备向服务器发送的报文(单播)
客户端发送报文:Discover、Request、Deline、Release、Inform
服务器发送报文:Offer、Ack、Nak
DHCP工作过程
1、客户端发送一个广播discover报文
2、Server收到报文后,会向客户端发送offer报文(携带为客户端分配的地址)
3、客户端收到offer报文后,会服务器发送广播request报文
4、Server收到报文之后会回复一条ACK进行确认
5、客户端收到ack之后会执行DAD(重复地址检测),如果冲突了会给服务器发送decline报文,告知这个地址无法使用,然后重新获取IP地址
为什么DHCP Request报文也是广播的
当网络中有多台server服务器,就会分配多个offer;客户端会使用第一个收到的offer报文中携带的地址作为本机地址;此时发送广播request报文,即可以告诉offer报文所对应DHCP服务器我使用了哪个地址,也可以告诉其它服务器将offer里的地址回收,可以分配给其他主机了
服务器发送Offer和Ack有单播和广播两种情况,具体如何发送?
这取决于客户端发送的Discover和Request报文中携带的Boot Flags字段(大多数情况下都是单播)
如果Boot Flags = 0x8000 ,则服务器回应时发广播
如果Boot Flags = 0x0000 ,则服务器回应时发单播
DHCP租期续租
1、客户端发现租期只有一半时,发送单播Request报文(如果得不到服务器回应,还是会继续使用此地址)
2、客户端发现租期到87.5%时,发送广播Request报文(如果服务器还得不到回应,当租期到期后会发送Release释放此地址,重新发送Discover报文申请地址
注意:当服务器发生Request里的地址没有租约记录时,会发送nak报文进行回收
DHCPv6
DHCPv6没有广播报文,通过组播报文来实现,用到的组播地址有两个
FF02::1:2:所有DHCPv6服务器和中继代理的组播地址,用于客户端和相邻的服务器及中继代理之间通信
FF05::1:3:所有DHCPv6服务器组播地址,用于中继代理和服务器之间的通信
DHCPv6端口号
DHCPv6报文承载在UDPv6上
客户端侦听的UDP目的端口号是546;服务器、中继代理侦听的UDP端口号是547
即客户端发送时端口号为547,服务器发送时端口号为546
DHCPv6报文
Solicit 同dhcpv4 的discover
Advertise 同dhcpv4 的offer
Request 同dhcpv4 的request(请求IPv6地址)
Reply 同dhcpv4 的 ack/nck
Renew 同dhcpv4 的request(进行续约-单播)
Rebind 同dhcpv4 的request(Renew无应答,广播向任意服务器请求延长此地址)
Release 同dhcpv4 的release
Decline 同dhcpv4 的decline
Informmation-Request 同dhcpv4 inform
Confirm 客户端向任意可达的v6服务器发送此报文检查自己目前获得的IPv6地址是否适用与它所连接的链路
Reconfigure 服务器向客户端发送此报文,提示客户服务器上存在新的网络配置i休尼希
Relay-Forw 中继代理向服务器转发客户端的请求报文
Relay-Repl 服务器向中继代理发送报文(携带了转发给客户端的报文)
DHCPv6工作原理
四步获取地址
两步快速获取地址
1、DHCPv6客户端在发送的Solicit报文中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址和网络配置参数。
2、DHCPv6服务器接收到Solicit报文后,将进行如下处理:
如果DHCPv6服务器支持快速分配地址,则直接返回Reply报文,为客户端分配IPv6地址和其他网络配置参数,Reply报文中也携带Rapid Commit选项。
如果DHCPv6服务器不支持快速分配过程,则采用四步交互方式为客户端分配IPv6地址/前缀和其他网络配置参数。
无状态工作过程
1、DHCPv6客户端以组播方式向DHCPv6服务器发送Information-Request报文,该报文中携带Option Request选项,指定DHCPv6客户端需要从DHCPv6服务器获取的配置参数。
2、DHCPv6服务器收到Information-Request报文后,为DHCPv6客户端分配网络配置参数,并单播发送Reply报文,将网络配置参数返回给DHCPv6客户端。DHCPv6客户端根据收到Reply报文提供的参数完成DHCPv6客户端无状态配置。