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子模块进行处理,如下:








猜你喜欢

转载自blog.csdn.net/wuyongpeng0912/article/details/50444842