DHCP地址分配服務

導讀DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作。DHCP有3個端口,其中UDP67和UDP68爲正常的DHCP服務端口,分別作爲DHCP服務器和DHCP客戶端的服務端口;546號端口用於DHCPv6 Client,而不用於DHCPv4,是爲DHCP failover服務,這是需要特別開啓的服務,DHCP failover是用來做“雙機熱備”的。

DHCP功能概述

DHCP通常被應用在局域網絡環境中(有限和無線),主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率。

DHCP協議採用客戶端/服務器模型,主機地址的動態分配任務由網絡主機驅動。當DHCP服務器接收到來自網絡主機申請地址的信息時,纔會向網絡主機發送相關的地址配置等信息,以實現網絡主機地址信息的動態配置。DHCP具有以下功能:

1. 保證任何IP地址在同一時刻只能由一臺DHCP客戶機所使用。

2. DHCP應當可以給用戶分配永久固定的IP地址。

3. DHCP應當可以同用其他方法獲得IP地址的主機共存(如手工配置IP地址的主機)。

4. DHCP服務器應當向現有的BOOTP客戶端提供服務。

DHCP的分配機制

1) 自動分配方式(Automatic Allocation),DHCP服務器爲主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器端租用到IP地址後,就可以永久性的使用該地址。

2) 動態分配方式(Dynamic Allocation),DHCP服務器給主機指定一個具有時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用。

3) 手工分配方式(Manual Allocation),客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機。

DHCP的工作模式

DHCP地址分配服務DHCP地址分配服務

全部數據報都是以廣播的方式發送的

1. 首先,客戶端發送DHCP Discover報文到DHCP服務器。

2. 然後,服務器接收到響應後就發送DHCP Offer報文迴應DHCP客戶端。所有的DHCP Server都能夠接收到DHCP Client發送的DHCP Discover報文,所有的DHCP Server都會給出響應,向DHCP Client發送一個DHCP Offer報文。DHCP Offer報文中“Your(Client) IP Address”字段就是DHCP Server能夠提供給DHCP Client使用的IP地址,且DHCP Server會將自己的IP地址放在“option”字段中以便DHCP Client區分不同的DHCP Server。DHCP Server在發出此報文後會存在一個已分配IP地址的紀錄。

3. 其次,DHCP客戶端接收到DHCP Offer之後就會發送DHCP request到DHCP服務器。DHCP Client只能處理其中的一個DHCP Offer報文,一般的原則是DHCP Client處理最先收到的DHCP Offer報文。DHCP Client會發出一個廣播的DHCP Request報文,在選項字段中會加入選中的DHCP Server的IP地址和需要的IP地址。

4. 最後,DHCP服務器響應客戶端發送DHCP ack報文到客戶端。DHCP Server收到DHCP Request報文後,判斷選項字段中的IP地址是否與自己的地址相同。如果不相同,DHCP Server不做任何處理只清除相應IP地址分配記錄;如果相同,DHCP Server就會向DHCP Client響應一個DHCP ACK報文,並在選項字段中增加IP地址的使用租期信息。

5. DHCP Client接收到DHCP ACK報文後,檢查DHCP Server分配的IP地址是否能夠使用。如果可以使用,則DHCP Client成功獲得IP地址並根據IP地址使用租期自動啓動續延過程;如果DHCP Client發現分配的IP地址已經被使用,則DHCP Client向DHCPServer發出DHCP Decline報文,通知DHCP Server禁用這個IP地址,然後DHCP Client開始新的地址申請過程。

在使用租期超過50%時刻處,DHCP Client會以單播形式向DHCP Server發送DHCPRequest報文來續租IP地址。如果DHCP Client成功收到DHCP Server發送的DHCP ACK報文,則按相應時間延長IP地址租期;如果沒有收到DHCP Server發送的DHCP ACK報文,則DHCP Client繼續使用這個IP地址。

在使用租期超過87.5%時刻處,DHCP Client會以廣播形式向DHCP Server發送DHCPRequest報文來續租IP地址。如果DHCP Client成功收到DHCP Server發送的DHCP ACK報文,則按相應時間延長IP地址租期;如果沒有收到DHCP Server發送的DHCP ACK報文,則DHCP Client繼續使用這個IP地址,直到IP地址使用租期到期時,DHCP Client纔會向DHCP Server發送DHCP Release報文來釋放這個IP地址,並開始新的IP地址申請過程。

DHCP中繼代理

DHCPRelay叫做DHCP中繼代理。DHCP中繼代理,就是在DHCP服務器和客戶端之間轉發DHCP數據包。當DHCP客戶端與服務器不在同一個子網上,就必須有DHCP中繼代理來轉發DHCP請求和應答消息。DHCP中繼代理的數據轉發,與通常路由轉發是不同的,通常的路由轉發相對來說是透明傳輸的,設備一般不會修改IP包內容。而DHCP中繼代理接收到DHCP消息後,重新生成一個DHCP消息,然後轉發出去。

在DHCP客戶端看來,DHCP中繼代理就像DHCP服務器;在DHCP服務器看來,DHCP中繼代理就像DHCP客戶端。此外,如果想讓一臺DHCP服務器建立多個IP域爲不同的VLAN或網絡都提供DHCP服務,那麼就必須要使用DHCP中繼的功能。DHCP中繼可以使用主機搭建,也可以通過三層交換機來設置,如下圖:

DHCP地址分配服務DHCP地址分配服務

DHCP安裝配置

安裝DHCP

$ yum install dhcp

複製dhcp提供的模板文件到/etc下名字爲dhcpd.conf是dhcp的配置文件

$ cp -p /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

主配置文件/etc/dhcpd.conf的配置

ddns-update-style none;                          //動態更新DNS的
subnet 192.168.10.0 netmask 255.255.255.0 {      //聲明一個IP地址段和對應的子網掩碼
option routers  192.168.10.1;                    //客戶端獲取的網關
option subnet-mask  255.255.255.0;               //網關子網掩碼
option domain-name-servers  192.168.10.1;        //客戶端獲取的域名服務器IP
range  192.168.10.11 192.168.10.100;             //客戶端獲取的IP地址池(dynamic-bootp此協議不用了)
default-lease-time      21600;
max-lease-time           43200;
host Server01 {                                  //爲客戶機固定分配IP地址
            hardware ethernet b0:c0:c3:22:46:81;
            fixed-address  192.168.10.88;
            next-server                          //用於PXE當中指定文件服務器的獲取引導文件的
}
host Server02 {                                  //爲客戶機固定分配IP地址
            hardware ethernet b0:c0:c3:22:46:81;
            fixed-address  192.168.10.88;
}
}

在DHCP服務器上可以查看租約信息

$ cat /var/lib/dhcpd/dhcpd.leases

或者

$ cat /var/log/messages

DHCP客戶端命令

# 動態獲取地址
$ dhclient
 
# 釋放eth0網卡的ip地址
$ dhclient -r eth0

本文地址:https://www.linuxprobe.com/?p=131044


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