DHCP协议

● 动态主机配置协议(Dynamic Host Configuration Protocol, DHCP) 是一个用于局域网的网络协议,位于OSI模型的应用层,使用UDP协议工作,主要用于自动分配IP地址给用户,方便管理员进行统一管理。
● DHCP服务器端使用UDP 67 Port,客户端使用UDP 68 Port。
● DHCP运行分为四个基本过程,分别为 : 请求IP租约、提供IP租约、选择|P租约、确认IP租约
● 客户端在获得了一个IP地址以后,就可以发送一个ARP请求来避免由于DHCP服务器地址池重叠而引发的IP冲突。

封包格式

DHCP报文格式

op htype hlen hops
xid(4)
sexs(2) flags(2)
ciaddr(4)
yiaddr(4)
siaddr(4)
giaddr(4)
chaddr(16)
sname(64)
file(128)
options(variable)

OP:若是client送给server的封包,设为1,反向为2。
HTYPE:硬件类别,Ethernet(以太网) 为1.
HLEN:硬件地址长度,Ethernet 为6.
HOPS:若封包需经过路由器传送,每站加1 ,若在同一网内,为0。
TRANSACTION ID: DHCP REQUEST时产生的数值,以作DHCPREPLY时的依据。
SECONDS:Client 端启动时间(秒)。
FLAGS:从0到15共16 bitsH,最左一bit 为1时表示server将以广播方式传送封包给client,其余尚未使用。
ciaddr:要是client端想继续使用之前取得之IP地址,则列于这里。
yiaddr : 从server送回client之DHCP OFFER和DHCPACK封包中,此栏填写分配给client的IP地址。
siaddr : 若client需要透过网络开机,从server送出之DHCP OFFER、DHCPACK.DHCPNACK封包中,此栏填写开机程序代码所在server之地址。
giaddr : 若需跨网域进行DHCP发放,此栏为relay agent的地址,否则为0。
chaddr : Client 的硬件地址。
sname : Server 的名称字符串,以0x00结尾。
file : 若client需要透过网络开机,此栏将指出开机程序名称,稍后以TFTP传送。