DHCP服務原理與搭建(Linux系統+路由器,二選一方案)

大家都知道上網的最基本前提是要在終端上設置IP、子網掩碼、網關、DNS等地址信息,在家裏或者在辦公室很多時候打開電腦後發現就可以上網,並沒有手動設置IP、掩碼、DNS地址也能上網,這是什麼原因呢?其實這個原因很簡單,說明你的內網有"DHCP"服務器,通過它給你的終端自動分配了IP掩碼和網關等地址,省去了你手動配置過程,從而給網管人員和辦公人員都帶來了方便,簡化了管理過程。
DHCP服務原理與搭建DHCP服務原理與搭建
今天就以本篇文章內容給大家詳細介紹一下"DHCP"實現的基本原理以及常見的幾種搭建DHCP服務器的方法!

一、DHCP實現原理

1. DHCP是什麼

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作。它是一種流行的Client/Server協議,一般用於爲主機或者爲路由器等指定相關的配置信息。DHCP服務在企業和家庭中得到了大量的應用,它能夠自動分配ip地址以及一些其他的相關信息,整個過程對客戶透明。

2. 部署DHCP服務的好處

減少管理員的工作量
避免輸入錯誤的可能
避免ip地址衝突
當網絡更改ip地址段時,不需要再重新配置每一個用戶的ip地址
提高了ip地址的利用率
方便客戶端的配置

3. DHCP分配方式

自動分配方式(Automatic Allocation),DHCP服務器爲主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器端租用到IP地址後,就可以永久性的使用該地址。
動態分配方式(Dynamic Allocation),DHCP服務器給主機指定一個具有時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用。
手工分配方式(Manual Allocation),客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機。

4. DHCP工作過程

DHCP客戶機在啓動時,會搜尋網絡中是否存在DHCP服務器。如果找到,則給DHCP服務器發送一個請求。DHCP服務器接到請求後,爲DHCP客戶機選擇TCP/IP配置的參數,並把這些參數發送給客戶端。 如果已配置衝突檢測設置,則DHCP服務器在將租約中的地址提供給客戶機之前會使用Ping測試作用域中每個可用地址的連通性。這可確保提供給客戶的每個IP地址都沒有被使用手動TCP/IP配置的另一臺非DHCP計算機使用。

根據客戶端是否第一次登錄網絡,DHCP的工作形式會有所不同。

初次登錄時DHCP工作包括四個步驟:

(1) 第一步尋找DHCP服務器

當DHCP客戶端第一次登錄網絡的時候,計算機發現本機上沒有任何IP地址設定,將以廣播方式發送DHCP discover發現信息來尋找DHCP服務器,即向255.255.255.255發送特定的廣播信息。網絡上每一臺安裝了TCP/IP協議的主機都會接收這個廣播信息,但只有DHCP服務器纔會做出響應。

(2) 第二步分配IP地址

在網絡中接收到DHCP discover發現信息的DHCP服務器就會做出響應,它從尚未分配的IP地址池中挑選一個分配給DHCP客戶機,並向DHCP客戶機發送一個包含分配的IP地址和其他設置的DHCP offer提供信息。

(3) 第三步接受IP地址

DHCP客戶端接受到DHCP offer提供信息之後,選擇第一個接收到的提供信息,然後以廣播的方式回答一個DHCP request請求信息,該信息包含向它所選定的DHCP服務器請求IP地址的內容。

(4) 第四步IP地址分配確認

當DHCP服務器收到DHCP客戶端回答的DHCP request請求信息之後,便向DHCP客戶端發送一個包含它所提供的IP地址和其他設置的DHCP ack確認信息,告訴DHCP客戶端可以使用它提供的IP地址。然後,DHCP客戶機便將其TCP/IP協議與網卡綁定,另外,除了DHCP客戶機選中的DHCP服務器外,其他的DHCP服務器將收回曾經提供的IP地址。

重新登錄:

以後DHCP客戶端每次重新登錄網絡時,就不需要再發送DHCP discover發現信息了,而是直接發送包含前一次所分配的IP地址的DHCP request請求信息。當DHCP服務器收到這一信息後,它會嘗試讓DHCP客戶機繼續使用原來的IP地址,並回答一個DHCP ack確認信息。如果此IP地址已無法再分配給原來的DHCP客戶機使用時,則DHCP服務器給DHCP客戶機回答一個DHCP nack否認信息。當原來的DHCP客戶機收到此DHCP nack否認信息後,它就必須重新發送DHCP discover發現信息來請求新的IP地址。

如果客戶端DHCP request 內的IP地址在服務器端沒有被使用,DHCP服務器回覆DHCP ACK繼續使用IP。
如果客戶端DHCP request 內的IP地址在服務器端已被使用,DHCP服務器回覆DHCP NACK告訴客戶端IP已被使用。
回覆NACK後,重新開始DHCP初次登錄時的流程
更新租約:

DHCP服務器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿後DHCP服務器便會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其IP租約。DHCP客戶機啓動時和IP租約期限到達租約的50%時,DHCP客戶機都會自動向DHCP服務器發送更新其IP租約的信息。

二、常見的幾種搭建DHCP服務器的方法

1. 利用TPLinK等寬帶路由器內置的DHCP功能模塊提供服務

這種方法很簡單,首先就是登錄路由器,找到DHCP功能設置的位置,直接設置即可。

設置好保存重啓後,網內的計算機就可以自動獲取iP地址等信息了。

2. 辦公網環境利用三層交換機搭建DHCP服務

以華爲交換機舉例:
DHCP服務原理與搭建DHCP服務原理與搭建
在三層交換機配置DHCP服務過程:

system-view (進入全局模式)
[Huawei]sysname SW1 ( 設備命名)
[SW1]dhcp enable (使用DHCP功能)
[SW1]ip pool 10 (創建全局地址池,同時進入全局地址池視圖)
[SW1-ip-pool-10]network 192.168.10.0 mask 24 (配置全局地址池可動態分配的IP地址範圍)
[SW1-ip-pool-10]dns-list 8.8.8.8 (配置DNS )
[SW1-ip-pool-10]gateway-list 192.168.10.1 (配置網關)
[SW1-ip-pool-10]excluded-ip-address 192.168.10.201 192.168.10.254 (保留不被分配的地址)
[SW1-ip-pool-10]lease day 7 (IP租約期限)
[SW1-ip-pool-10]dis this (查詢當前模式的配置)
# ip pool 10
gateway-list 192.168.10.1 (網關)
network 192.168.10.0 mask 255.255.255.0 (IP地址範圍)
excluded-ip-address 192.168.10.201 192.168.10.254 (保留IP地址範圍)
lease day 7 hour 0 minute 0 (IP租約週期)
dns-list 8.8.8.8
[SW1-ip-pool-10]quit (退出
[SW1]ip pool 20
[SW1-ip-pool-20]network 192.168.20.0 mask 24
[SW1-ip-pool-20]dns-list 8.8.8.8
[SW1-ip-pool-20]gateway-list 192.168.20.1
[SW1-ip-pool-20]excluded-ip-address 192.168.20.201 192.168.20.254
[SW1-ip-pool-20]lease day 7
[SW1-ip-pool-20]q
------------------------------------------------
[SW1]vlan batch 10 20 (批量創建vlan)
[SW1]interface GigabitEthernet 0/0/1 (進入port 1)
[SW1-GigabitEthernet0/0/1]port link-type access (配置port 1 類型)
[SW1-GigabitEthernet0/0/1]port default vlan 10 (配置port 1 vlan)
[SW1-GigabitEthernet0/0/1]quit (退出)
[SW1]interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2]port link-type access
[SW1-GigabitEthernet0/0/2]port default vlan 20
[SW1-GigabitEthernet0/0/2]quit
( 配置VLANIF10接口下的客戶端從全局地址池中獲取IP地址)
[SW1]interface Vlanif 10 (創建vlanif 10)
[SW1-Vlanif10]ip address 192.168.10.1 24 (配置IP地址)
[SW1-Vlanif10]dhcp select global (在vlanif 10模式下調用全局地址池)
[SW1-Vlanif10]display this (查詢當前配置參數)
#
interface Vlanif10
ip address 192.168.10.1 255.255.255.0
dhcp select global
#
Return
[SW1-Vlanif10]quit
[SW1]interface Vlanif 20
[SW1-Vlanif20]ip address 192.168.20.1 24
[SW1-Vlanif20]dhcp select global
[SW1-Vlanif20]quit
[SW1]display ip pool (查看IP地址池配置情況)
[SW1]quit
save (保存配置,寫入設備)

3. 在Windows 系統裏搭建DHCP服務

以2008server爲例:

2008ser搭建DHCP服務器步驟:

第一步:安裝Windows Server 2008系統作爲服務器端;客戶端可安裝其他Windows系統。

第二步:進入2008ser系統,手動設置IP(未設置靜態IP,後面無法繼續)

第三步:打開服務器管理器:系統中點擊 "開始菜單程序"——> 管理工具 ——>服務器管理器

第四步:進入服務器管理器,點擊左側的"角色"然後點擊右側"添加角色"

第五步:進入添加角色嚮導默認下一步,

第六步:服務器角色界面,勾選DHCP服務器;

第七步:勾選DHCP服務器後,單擊"下一步"按鈕,屏幕上將會彈出DHCP服務器簡介窗口,默認下一步;

第八步: 進入選擇網絡連接綁定,勾選IP地址;安裝程序將自動檢查你的服務器是否具有一個靜態IP地址,第2步設置了則會被檢測顯示出來。

第九步:接下來到"IPv4DNS設置",需要輸入你的父域名和DNS服務器的IP地址,這個域將用於我們在這臺DHCP服務器上創建的所有作用域; 當DHCP更新IP地址信息的時候,相應的DNS更新會將計算機的名稱到IP地址的關聯進行同步。

第十步:是否要設置WINS服務器地址參數,默認"此網絡上的應用程序不需要WINS"選項; (若需要則正確設置好目標WINS服務器的IP地址。)

第十一步:接下來的"DHCP作用域"窗口中,點擊右側"添加"我們可以根據本地局域網的IP地址分配情況,設置好DHCP服務器的適用範圍,同時選中"激活此作用域"選項,並單擊"確定"添加完成。

第十二步: DHCPv6無狀態模式,選擇禁用模式;在Windows Server 2008中默認增加了對下一代IP地址規範IPv6的支持,不過就目前的網絡現狀來說很少用到IPv6,因此可以選擇對此服務器禁用DHCPv6無狀態模式。

第十三步: 在"確認"界面,確認後點擊安裝,開始自動安裝。進度條完成,DHCP也安裝完成。

最後同局域網中的客戶端設置爲自動獲得IP地址,即可獲得DHCP自動分配的IP;

4. Linux系統下搭建DHCP服務

以ubuntu系統爲例:

網絡拓撲結構圖如下:
DHCP服務原理與搭建DHCP服務原理與搭建
配置步驟如下:

第一步:安裝isc-dhcp-server

採用命令:apt-get install isc-dhcp-server:

第一步:配置isc-dhcp-server

首先對作爲DHCP服務器的"ubuntu 副本"進行設置:

第三步:進入超級用戶,編輯文件/etc/default/isc-dhcp-server文件:

在INTERFACES=""處填入網卡名enp0s3:

第四步:將文件打開發現有很多例子,都是被註釋掉了的,選用一個例子,修改後的結果如下:
DHCP服務原理與搭建DHCP服務原理與搭建

修改本機的IP地址,子網掩碼,默認網關,DNS等:

對該網卡進行重啓,對網絡進行重新啓動,將DHCP服務開啓:

第五步:Linux客戶機配置(虛擬機從虛擬機獲得IP):

網絡連接設置爲自動獲取IP地址:

在命令行中輸入dhclient命令重新分配IP地址,我們發現IP地址成功被分配到了,其中圖一是未得到分配的IP地址,圖二是重分配後得到的由DHCP服務器192.168.137.2分配而來的IP地址192.168.137.101:

通過wireshark抓包進行分析,可看到IP地址192.168.137.101的確是由DHCP服務器192.168.137.2提供的,並且可以看到它們之間的request-ack過程


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