DHCP服務的配置與應用

DHCP:Dynamic Host Configuration Protocol  動態主機配置協議,對客戶機動態分配TCP/IP信息 :包括IP地址、子網掩碼、默認網關、首選DNS服務器等信息。

服務器端監聽端口:UDP 67

客戶端監聽端口:UDP 68

DHCP服務器是以地址租約的方式爲DCHP客戶端提供服務的,有兩種方式:

限定租期:當租約快到期時,客戶端必須向DHCP服務器提出續約請求,請求成功後可以繼續使用該IP地址。如果客戶端沒有續約或者續約不成功,服務器就會將該IP地址回收,分配給其他DHCP客戶端使用。

永久租用:當DHCP客戶端向DHCP服務器租用到IP地址後,這個地址就永久地分配給這個DHCP客戶端使用。

工作原理:

wps_clip_p_w_picpath-14121

當DHCP客戶端IP地址使用時間達到租期的一半時,它就會向DHCP服務器發送一個新的DHCPREQUEST,服務器在接收到請求時,沒有拒絕理由便會發送一個DHCPACK信息,當DHCP收到DHCPACK的請求後,就重新開始一個租用週期。

當DHCP客戶端重新啓動時,不管IP地址租約是否到期,都會以廣播的方式,給網絡中的DHCP服務器發送一個DHCPREQUEST信息,若沒有收到應答且租期還沒過期,那麼DHCP客戶端將繼續使用該IP地址。

當IP地址的租期超過一半但續約失敗時,該DHCP客戶端仍可使用該IP,但是將在租期達到87.5%時候再次利用廣播信息發送一個DHCPREQUEST信息,以便找到一臺可以繼續提供租期的DHCP服務器。如果DHCP服務器返回DHCPNACK信息,說明租約失敗,此時客戶端需重新開始DHCPDISCOVER四個過程。

進程名稱dhcpd

主配置文件 /etc/dhcpd.conf   /etc/sysconfig/dhcpd(參數性配置文件)

啓動腳本 /etc/init.d/dhcpd

下面我們就在來在linux上配置DHCP服務。

首先必須確保自己的主機爲靜態IP。如果網卡使用host-only連接方式則一定要把虛擬機的DHCP服務停掉,不然會影響實驗效果。

[root@station39 ~]# yum install dhcp -y

[root@station39 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

主配置文件需要手動創建,這裏我們將系統提供給我們的模板拷貝到/etc/下,稍加修改即可使用:

[root@station39 ~]# cd /usr/share/doc/dhcp-3.0.5/

[root@station39 dhcp-3.0.5]# cp dhcpd.conf.sample /etc/dhcpd.conf

主配置文件的相關參數:

ddns-update-style interim;     //** 指定DDNS的更新方式,DNS和DHCP服務器雙方協同

                            工作提供動態DNS的時候的工作方式

ignore client-updates;        //** 忽略客戶端更新請求

PS:當全局參數和局部參數出現衝突時,以局部參數爲準。作用範圍越小,優先級越高

wps_clip_p_w_picpath-10541

[root@station39 ~]# vim /etc/sysconfig/dhcpd

DHCPDARGS=eth0             //** 指定監聽的網卡

啓動之後查看一下監聽端口:

[root@station39 ~]# netstat -ntulp | grep 67

udp        0      0 0.0.0.0:67                  0.0.0.0:*                               16653/dhcpd

PS:dhclient 客戶端所使用的進程

dhclient  -d  eth0  //** 在前臺運行,默認運行在後臺

使用客戶端獲得一下IP來驗證一下效果:

wps_clip_p_w_picpath-29685

看,已經獲得了一個我們所定義的地址池內的IP。

PS:linux上DHCP服務器分配IP的方式是從大到小,而windows 上DHCP服務器分配IP的方式是從小到大,這裏你應該明白客戶端爲什麼獲得的是150的IP了。

爲客戶端分配一個固定的地址:

修改dhcpd.conf文件

host web {

                hardware ethernet 00:0C:29:84:22:C1;

                fixed-address 192.168.10.119;

        }

wps_clip_p_w_picpath-14125

重啓服務。

客戶端重新獲得一下IP試試:

wps_clip_p_w_picpath-21290

OK!完全沒問題!

爲固定IP定義參數:

# we want the nameserver to appear at a fixed address

        host web {

                option routers 192.168.10.10;

                option domain-name-servers  192.168.0.110;

                hardware ethernet 00:0C:29:84:22:C1;

                fixed-address 192.168.10.119;

        }

PS:在網卡的配置參數裏添加PEERDNS=no,使用自己配置的DNS地址,無論DHCP服務參數如何改變,都不改變/etc/resolv.conf 中的定義。

/var/lib/dhcpd/dhcpd.leases保留當前已經租出去的IP的客戶端所獲得的地址租約的信息。

wps_clip_p_w_picpath-14781

根據客戶端的類型給予其特定的IP:

class "virtual" {

     match if substring (hardware, 1,3) = 00:16:3e  or       

              substring  (hardware,1,3) = 00:16:36;

}

class "vmware" {

     match if substring (hardware, 1,3) = 00:0c:29

}            

class "microsoft-clients"

     match if substring (option  vendor-class-identifier,0,4) = "MSFT";   //** 根據供應商類

                                                                  別標識

            option routers 192.168.0.254;

            option domain-nameservers 192.168.0.90

}

pool {

    allow members of "virtual";             //**允許哪一類客戶端來獲得此地址

    range  192.168.0.90  192.168.0.110

}

pool {

    deny members of "virtual";        //** 拒絕哪一類客戶端來獲得此地址   

    deny members of "microsoft-clients";

     range 192.168.0.2 192.168.0.90;

}

pool {

    deny members of "virtual";

    allow members of "microsoft-clients";

     range 192.168.0.202 192.168.0.252;

}

DHCP 中繼 relay

我們在虛擬機上來模擬DHCP中繼代理的功能:

wps_clip_p_w_picpath-18324

實驗環境配置:DHCP server IP :192.168.10.1  網絡連接:Vmnet2

              Router: eth0:192.168.10.11   網絡連接:Vmnet2

                     eth1:192.168.20.10   網絡連接:橋接

              DHCP Relay :192.168.20.11    網絡連接:橋接

              物理機做客戶端

修改DHCPServer 的主配置文件/etc/dhcpd.cconf ,添加一個地址池:

subnet 192.168.20.0 netmask 255.255.255.0 {

   option routers 192.168.20.1;

   option domain-name "linna.com";

   option subnet-mask 255.255.255.0;

   range 192.168.20.11 192.168.20.50;

}

重啓服務

爲DHCP server添加網關

[root@station39 etc]# route add default gw 192.168.10.11

爲DHCP relay server添加網關

[root@station26 ~]# route add  default gw 192.168.20.10

修改/etc/sysconfig/dhcrelay文件

[root@station26 ~]# vim /etc/sysconfig/dhcrelay

INTERFACES="eth0"

DHCPSERVERS="192.168.10.1"

啓動中繼服務:

[root@station26 ~]# service dhcrelay start

爲做router的這臺主機打開內核路由功能

[root@server27 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

OK!已經配置完成,我們使用物理機來驗證一下效果:

wps_clip_p_w_picpath-17869

看!獲得的是20網段的地址,說明我們的DHCP中繼已經起作用了。

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