DHCP服務器的構建



DHCP:Dynamic Host Configuration Protocol(動態主機配置協議)

服務器端監聽在UDP/67進行客戶端的響應

客戶端監聽在UDP/68向服務器端進行請求


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

  1. 客戶端發起廣播,向區域內所有DHCP服務器請求獲取一個IP(依靠MAC地址進行表示自己)

  2. DHCP服務器收到後以單播響應給客戶端一個IP、DNS、Gateway(這是客戶端還沒有IP,依靠MAC地址進行識別)

  3. 客戶端使用最先給它響應的DHCP服務器分發的地址,並以廣播的形式通知區域內所有DHCP服務器,用了誰的IP

  4. 客戶端使用了哪個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服務器便可

  1. 客戶端已廣播形式發起請求(discovery)

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

  3. DHCP服務器收到請求後以單播進行響應(offset)

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

  5. client以廣播形式確認用了哪個DHCP服務器的IP(request)

  6. 路由器以單播形式轉發client的確認給DHCP服務器

  7. DHCP服務器以單播形式進行ACK確認(ACK)

  8. 路由器以單播形式將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

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