天天看點

DHCP伺服器的建構

DHCP:Dynamic Host Configuration Protocol(動态主機配置協定)

伺服器端監聽在UDP/67進行用戶端的響應

用戶端監聽在UDP/68向伺服器端進行請求

當一個區域中有多個DHCP-Server時,則用戶端發起請求後誰先響應就用誰的IP,具體過程如下:

用戶端發起廣播,向區域内所有DHCP伺服器請求擷取一個IP(依靠MAC位址進行表示自己)

DHCP伺服器收到後以單點傳播響應給用戶端一個IP、DNS、Gateway(這是用戶端還沒有IP,依靠MAC位址進行識别)

用戶端使用最先給它響應的DHCP伺服器分發的位址,并以廣播的形式通知區域内所有DHCP伺服器,用了誰的IP

用戶端使用了哪個DHCP伺服器的IP,哪個DHCP伺服器就給予确認一下

具體的四個封包如下

client-->DHCPDISCOVERY 發現封包(廣播)

server-->DHCPOFFER 提供封包(單點傳播)

client-->DHCPREQUEST 請求封包(廣播)

server-->DHCPACK 确認封包(單點傳播)

而一般來說如果DHCP伺服器分發的IP都是有時間限定的,比如定義IP有效時間為6小時,則用戶端使用到隻剩3小時時就必須進行IP續租,但是如果去續租的時候伺服器沒有給予響應,則會在等一半時間,到了隻剩1.5小時是再去續租,如果一直到時間結束還沒有續租成功則用戶端會釋放此IP(發一個release封包),重新申請一個IP

注:續租是以單點傳播形式進行的

如果DHCP伺服器和用戶端沒有在一個網段(中間有路由器相隔),則就不能直接分發IP,因為路由器不傳遞廣播封包,這時可以将路由器配置成為一個DHCP中繼器,讓中繼器收到用戶端的廣播後以單點傳播的形式轉發給DHCP伺服器便可

用戶端已廣播形式發起請求(discovery)

路由器(有中繼功能)收到廣播後以單點傳播形式轉發請求

DHCP伺服器收到請求後以單點傳播進行響應(offset)

路由器收到DHCP的響應後以廣播形式轉發給client

client以廣播形式确認用了哪個DHCP伺服器的IP(request)

路由器以單點傳播形式轉發client的确認給DHCP伺服器

DHCP伺服器以單點傳播形式進行ACK确認(ACK)

路由器以單點傳播形式将ACK确認發送給client

一般來說一個DHCP伺服器可以為多個網段的客戶機提供DHCP服務,但必須有一個位址池中的IP與DHCP伺服器的網卡IP處在一個網段(表示為本地用戶端提供DHCP服務)

此外DHCP伺服器還能以标示MAC位址的方式,為某個特定主機提供特定的IP(此IP必須不在位址池中)

比如為你老闆的主機單獨分發IP

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

[root@node1 ~]# rpm -ql dhcp

/etc/dhcp/dhcpd.conf dhcp的配置檔案

/usr/sbin/dhcpd 将伺服器配置成為dhcp伺服器用的

/usr/sbin/dhcrelay 将伺服器配置成為中繼器用的

/var/lib/dhcpd/dhcpd.leases 記錄了哪個IP被續租了

[root@node1 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcpd.conf

[root@node1 ~]# vim /etc/dhcpd.conf 

subnet 192.168.0.0 netmask 255.255.255.0 {

  range 192.168.0.128  192.168.0.254; 位址池範圍為192.168.0.128-192.168.0.254,linux系統從最大的IP開始配置設定,而windows從最小的配置設定

  option domain-name-servers 192.168.1.1,192.168.1.2,192.168.1.3 ;指定三個DNS伺服器(Linux最多指定三個)

  option domain-name "internal.example.org"; 指定/etc/resolve.conf中的搜尋域

  option routers 192.168.0.1;指定預設網關,分發IP時直接将網關也指定

  option broadcast-address 192.168.0.23; 指定廣播位址

 default-lease-time 600; 預設租約時間長為600秒

 max-lease-time 7200; 最大租約時間長為7200秒

}

host passacaglia { 依據MAC位址提供一個特定的IP

  hardware ethernet 0:0:c0:5d:bd:95; 為0:0:c0:5d:bd:95主機分發IP192.168.0.188

  fixed-address  192.168.0.188;

[root@node1 ~]# service dhcpd start 啟動伺服器

這樣一個dhcp伺服器就配置完成了配置設定的位址範圍為192.168.0.128 到192.168.0.254;

DNS伺服器為192.168.0.1,192.168.0.2,192.168.0.3

網關為192.168.0.1

繼續閱讀