你們都知道上網的最基本前提是要在終端上設置IP、子網掩碼、網關、DNS等地址信息,在家裏或者在辦公室不少時候打開電腦後發現就能夠上網,並無手動設置IP、掩碼、DNS地址也能上網,這是什麼緣由呢?其實這個緣由很簡單,說明你的內網有"DHCP"服務器,經過它給你的終端自動分配了IP掩碼和網關等地址,省去了你手動配置過程,從而給網管人員和辦公人員都帶來了方便,簡化了管理過程。
今天就以本篇文章內容給你們詳細介紹一下"DHCP"實現的基本原理以及常見的幾種搭建DHCP服務器的方法!linux
1、DHCP實現原理ubuntu
1. DHCP是什麼服務器
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工做。它是一種流行的Client/Server協議,通常用於爲主機或者爲路由器等指定相關的配置信息。DHCP服務在企業和家庭中獲得了大量的應用,它可以自動分配ip地址以及一些其餘的相關信息,整個過程對客戶透明。網絡
2. 部署DHCP服務的好處ide
減小管理員的工做量
避免輸入錯誤的可能
避免ip地址衝突
當網絡更改ip地址段時,不須要再從新配置每個用戶的ip地址
提升了ip地址的利用率
方便客戶端的配置工具
3. DHCP分配方式測試
自動分配方式(Automatic Allocation),DHCP服務器爲主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器端租用到IP地址後,就能夠永久性的使用該地址。
動態分配方式(Dynamic Allocation),DHCP服務器給主機指定一個具備時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址能夠被其餘主機使用。
手工分配方式(Manual Allocation),客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機。ui
4. DHCP工做過程this
DHCP客戶機在啓動時,會搜尋網絡中是否存在DHCP服務器。若是找到,則給DHCP服務器發送一個請求。DHCP服務器接到請求後,爲DHCP客戶機選擇TCP/IP配置的參數,並把這些參數發送給客戶端。 若是已配置衝突檢測設置,則DHCP服務器在將租約中的地址提供給客戶機以前會使用Ping測試做用域中每一個可用地址的連通性。這可確保提供給客戶的每一個IP地址都沒有被使用手動TCP/IP配置的另外一臺非DHCP計算機使用。spa
根據客戶端是否第一次登陸網絡,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租約的信息。
2、常見的幾種搭建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過程