DHCP源码分析_dhcpd后台进程子模块

dhcpd是dhcp服务器端后台进程文件,dhcpd后台程序总是读取配置文件 /etc/dhcpd.conf。


一,守护进程的基本流程

 

 

 

 

dhcpd基本流程为:

 

main()

{

/ *设置isc和dns库管理* /

/ *建立客户分类系统* /

/ *初始化omapi系统* /

/ *为通用对象设置OMAPI封装器* /

/ *为各种服务器数据库内部对象建立OMAPI封装器* /

/ *记录标准错误* /

/ *解析命令行参数* /

/ *如果选项有,获得用户和组信息* /

/ *绕过ISC组声明* /

/ *默认DHCP/BOOTP端口。* /

/ *dhcp选项域设置初始化* /

/ *在解析之前添加ddn更新枚举类型* /

/ *设置各种钩子函数* /

/ *设置标准名称服务更新例程。* /

/ *初始化icmp支持* /

/ *读取dhcpd.conf文件…* /

/ *启动数据库* /

/ *发现所有网络接口,并初始化它们* /

/ *成为守护进程的第一部分* /

/ *成为会话的引导,并获得pid* /

/ *接收数据包并调用dispatch()函数调度* /

}

 

二,DHCP服务器工作流程

 

1,初始化DHCP服务器。

2,初始化请求模块,监听客户请求。

3,当客户请求到来时,调用处理线程来处理应答客户端请求。

4,处理线程处理完请求信息,返回给客户端处理结果。等待下一个客户请求。

 

 


在处理请求模块中调用dispatch()函数,根据不同类型的包,接收和调度packet。处理请求模块在处理任务时,首先根据包类型的不同,调用do_packet/do_packet6函数分析处理客户请求信息包,若调用do_packet则先判断请求包的类型是bootp还是dhcp。最后,分别调用bootp子模块和dhcp/dhcpv6子模块进行处理,如下:

 

 

 

 

 

 

 



posted @ 2023-02-17 18:03  分类DHCP  阅读(339)  评论(0编辑  收藏  举报