DHCP讲解 DHCP端口号 DHCP主要有两个端口号,分别是UDP67和UDP68 DHCP客户端向DHCP服务器发送报文时采用68端口号,DHCP服务器向DHCP客户端发送报文时采用67端口号(服务端监听的端口为67,客户端监听的端口为68)
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客户端无状态配置 |