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

大家都知道上網的最基本前提是要在終端上設置IP、子網掩碼、網關、DNS等地址信息,在家里或者在辦公室很多時候打開電腦后發現就可以上網,并沒有手動設置IP、掩碼、DNS地址也能上網,這是什么原因呢?其實這個原因很簡單,說明你的內網有"DHCP"服務器,通過它給你的終端自動分配了IP掩碼和網關等地址,省去了你手動配置過程,從而給網管人員和辦公人員都帶來了方便,簡化了管理過程。

今天就以本篇文章內容給大家詳細介紹一下"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服務過程:

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系統為例:

網絡拓撲結構圖如下:

配置步驟如下:

第一步:安裝isc-dhcp-server

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

第一步:配置isc-dhcp-server

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

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

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

第四步:將文件打開發現有很多例子,都是被注釋掉了的,選用一個例子,修改后的結果如下:

修改本機的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過程

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容