DHCP服务器的主要模块为dhcpd后台进程子模块、ipv4报文处理子模块、ipv6报文处理子模块、报文解析和封装子模块、租约管理子模块。
模块间调用关系如图:
dhcpd为服务器守护进程文件,用来初始化系统,解析命令参数等;
处理ipv4报文的模块以dhcp()为入口函数,dhcp()函数主要完成对不同类型的ipv4进行的处理;
处理ipv6报文的模块以dhcpv6()为入口函数,调用build_dhcpv6_reply()函数完成对不同类型ipv6数据包的处理;
报文解析和封装模块分析了在收到报文后,对其解析为packet结构体、再重新封装构造reply包返回给client的过程;
租约管理模块分析了ip地址租约的方式及过程。