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子模塊進行處理,如下:








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章