dhcp 續約review報文_Linux的私房菜 DHCP

ee719695ea4ab0dc2f3c2a428766ff4d.png

DHCP服務

DHCP的全稱是動態主機配置協議,用來自動給客戶機分配TCP/IP信息的網絡協議。

Dynamic Host Configuration Protocol,前身是BOOTP協議,是一個局域網的網絡協議,使用UDP協議工作,統一使用兩個IANA分配的端口:67(服務器端),68(客戶端)

8875043c22b3e0a13b243173c0e4887d.png

DHCP實際上是在應用層實現,請求報文分裝在UDP數據報文中,其中UDP是不可靠的,面向無連接的傳輸協議。

DHCP通常被應用于局域網環境,其主要作用是用于集中管理,分配IP地址,客戶端client動態獲得IP地址,Gateway地址,DNS服務器地址等信息,并能夠提升地址的使用率。

簡單來說,DHCP是沒有賬號密碼登錄,自動給內網機器分配IP地址信息的協議。在實際應用上,大大減少了管理員的工作量,避免輸入錯誤的可能,避免ip地址沖突;當更改IP地址段時,不需要重新配置每個用戶IP地址,提高了IP地址的利用率,方便客戶端的配置。

5ddc4fd8cc1ebfed8538262d44df6d88.png

DHCP具體是怎么樣的實現流程?

舉一個生活列子來說

就是快遞員拿著喇叭在樓下喊:

“某某某的快遞下樓拿一下”

然后大家都往樓下看

最后真正的收件人回應:

“是我的快遞”

然后你兩建立連接

當然我這個列子可能不是很恰當,那小編就帶大家以原理干貨的形式來講解。

4841171b62c81ea763031de654c8520e.png

發現階段,即DHCP客戶機尋找DHCP服務器的階段。DHCP客戶機以廣播方式(因為DHCP服務器的IP地址對于客戶機來說是未知的)發送DHCP discover發現信息來尋找DHCP服務器,即向地址255.255.255.255發送特定的廣播信息。網絡上每一臺安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP服務器才會做出響應。

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

選擇階段,即DHCP客戶機選擇某臺DHCP服務器提供的IP地址的階段。如果有多臺DHCP服務器向DHCP客戶機發來的DHCP offer提供信息,則DHCP客戶機只接受第一個收到的DHCP offer提供信息,然后它就以廣播方式回答一個DHCP request請求信息,該信息中包含向它所選定的DHCP服務器請求IP地址的內容。之所以要以廣播方式回答,是為了通知所有的DHCP服務器,他將選擇某臺DHCP服務器所提供的IP地址。

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

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

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

客戶端使用續租達到50%,以單播的形式向服務器請求續約。

如果續約失敗,則繼續使用ip,達到續租的87.5%,以廣播的形式向服務器續租。

如果續約失敗,客戶端則使用租約至100%,重新發送DHCP Discover包,重新廣播尋找DHCP服務器。

ff229724a48fe4f9c7c833fd04fb2601.png

步驟如上圖所示:

1.客戶端廣播DHCP?discover消息

2.服務器端提供地址續租(offer)

3.客戶端選擇并請求地址租用(request)

4.服務器確認地址租用給客戶端(ACK)

?續約的四部曲,在這里就先告一段落

下面是一些名詞解釋,以及每個過程的作用

DHCP DISCOVER?

客戶端開始DHCP過程發送的包,是DHCP協議的開始

DHCP OFFER

服務器接收到DHCP DISCOVER之后做出的響應,它包括了給予客戶端的IP(yiaddr)、客戶端的MAC地址、租約過期時間、服務器的識別符以及其他信息

DHCP REQUEST?

客戶端對于服務器發出的DHCP OFFER所做出的響應。在續約租期的時候同樣會使用。

DHCP ACK?

服務器在接收到客戶端發來的DHCP REQUEST之后發出的成功確認的報文。在建立連接的時候,客戶端在接收到這個報文之后才會確認分配給它的IP和其他信息可以被允許使用。

DHCP NAK?

DHCP ACK的相反的報文,表示服務器拒絕了客戶端的請求。

DHCP RELEASE?

一般出現在客戶端關機、下線等狀況。這個報文將會使DHCP服務器釋放發出此報文的客戶端的IP地址

DHCP INFORM?

客戶端發出的向服務器請求一些信息的報文

DHCP DECLINE?

當客戶端發現服務器分配的IP地址無法使用,如IP地址沖突時,將發出此報文,通知服務器禁止
使用該IP地址。

93048f9ef154951db666f7fa1b11ac00.png

實驗環境:

兩臺虛擬機,網絡連接模式定義為VMnet*模式

實驗目的:

客戶端發送請求給服務端,實現DHCP服務的

”客戶端發送數據包“ ? ”服務器接收“ ? “客戶端發出請求” ? “服務端進行接收”

注意事項:

檢查防火墻是否關閉:

關閉防火墻

CentOS 6

chkconfig ?iptables ?off

CentOS 7

systemctl ?disable firewalld

檢查selinux是否關閉:

getenforce ?(Permissive) 顯示關閉

修改配置文件

sed -i '7s/enforcing/disabled/' /etc/selinux/config

5d417084514b99709815098ec1d2789f.png

關閉vm虛擬機的dhcp功能 ?在網絡適配器中將其勾掉

實驗步驟:

yum -y install dhcp

打開配置文件 ?vim /etc/dchpd.conf

9a196efe2828d22c8cebe718d8cac408.png

cp-a/usr/share/doc/dhcp4.1.1/dhcpd.conf.sample ./dhcpd.conf

將這個dhcp-4.1.1文件 改名復制到dhcpd.conf中

選擇 yes

vim dhcp.conf?

找到subnet 來分配網段

b55a9f3c814ff1a45015b2ac358f1455.png

subnet 192.168.199.0 代表是所有網段的ip

注意!!

客戶端和主機ip 不在同一網段,導致互相無法ping通

所以subnet后面的ip 地址必須是和主機ip 同網段。

1d90af986c1fc4d0668823ca44335a7c.png

使用客戶端的虛擬機來獲取dhcp,在配置文件setup ?勾選dhcp

f0967313b9efd165ad2803651d831941.png

重啟網絡配置 ?service ?network ?restart

tail -f ?/var/log/messages ?監聽dhcp 服務

圖/ 能能

文/ 能能

97年氣氛組的神

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270975.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270975.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270975.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

硬件編程:硬件開發中常用的幾種通信接口總結

在嵌入式系統中,板上通信接口是指用于將各種集成電路與其他外圍設備交互連接的通信通路或總線。以下內容為常用板上通信接口:包括I2C、SPI、UART、1-Wire:I2C總線I2C總線是一種同步、雙向、半雙工的兩線式串行接口總線。這里,半雙…

集合初始化時,指定集合初始值大小

集合初始化時,指定集合初始值大小

hadoop常用linux命令,# Hadoop學習筆記(二)——Linux常用命令

ifconfigLinux ifconfig命令用于顯示或設置網絡設備。ifconfig可設置網絡設備的狀態,或是顯示目前的設置。ifconfig.png語法ifconfig [網絡設備][down up -allmulti -arp -promisc][add][del][][io_addr][irq][media][mem_start][metric][mtu][netmask][tunnel][-br…

數據庫:計算地球上兩個坐標點之間里程

今天給大家分享計算地球上兩個坐標點之間里程不同數據庫版本的腳本。1、SQLServer腳本–-計算地球上兩個坐標點(經度,緯度)之間距離sql函數 CREATE FUNCTION [dbo].[fnGetDistance](LatBegin REAL , LngBegin REAL, LatEnd REAL, LngEnd REA…

jvm 崩潰日志設置_JVM致命錯誤日志(hs_err_pid.log)分析(轉載)

當jvm出現致命錯誤時,會生成一個錯誤文件 hs_err_pid.log,其中包括了導致jvm crash的重要信息,可以通過分析該文件定位到導致crash的根源,從而改善以保證系統穩定。當出現crash時,該文件默認會生成到工作目錄下&#x…

使用entrySet遍歷Map類集合KV,而不是keySet方式進行遍歷

使用entrySet遍歷Map類集合KV,而不是keySet方式進行遍歷

【Qt開發】Qt Creator在Windows上的調試器安裝與配置

Qt Creator在Windows上的調試器安裝與配置 如果安裝Qt時使用的是Visual Studio的預編譯版,那么很有可能就會缺少調試器(Debugger),而使用MSVC的Qt對應的原生調試器是CDB(對應MinGW的Qt使用GDB調試器)。本文…

linux rsync 帶密碼,Linux配置ssh無密碼驗證,rsync

1.我先聲明主機pangzhiminglinux 192.168.200.129CentOS2 192.168.200.130方法大概是這樣:如果想從pangzhiminglinux的普通用戶無驗證登錄到CentOS2的普通用戶(單方向的),那么就要在兩個主機都建立一個相同名字,相同密碼的普通…

Java:Lombok插件用法筆記

1、Lombok是什么東東?官方介紹Lombok項目是一個Java庫,它可以自動嵌入你的編輯器和構建工具中,從而減少你的代碼量。永遠不要再寫另一個getter或equals方法,它帶有一個注釋的你的類有一個功能全面的生成器,自動化你的日…

bzoj2058: [Usaco2010 Nov]Cow Photographs(逆序對)

題目大意:給出n個數的序列,每次可以交換相鄰的兩個數,問把序列變成編號i在編號i1左邊,編號1在編號n右邊(一個環)最少需要多少步。如:35421最少交換兩次變為34512。 一開始看到這題,只會O(n),后來…

sap實施和開發哪個前景_2021年了!還不知道 SAP顧問的職業前景?

一、先說什么是SAP。百度詞條的解釋:SAP有兩個意思一為“System Applications and Products”的簡稱,是SAP公司的產品——企業管理解決方案的軟件名稱。也代指SAP公司。二為SAP開發的ERP(Enterprise-wide Resource Planning)軟件名…

Linux找最大最小值的命令,Linux中awk命令正確的求最大值、最小值、平均值、總和...

test.txt文件內容&#xff1a;911352142118求最大值&#xff1a;awk BEGIN {max 0} {if ($10 > max0) max$1} END {print "Max", max} test.txtMax 118求最小值&#xff1a;awk BEGIN {min 65536} {if ($10 < min0) min$1} END {print "Min", min}…

?分布式數據庫技術基礎:數據分布介紹

1、數據分布的定義數據分布是指在分布式環境中通過合理分布數據&#xff0c;提高數據操作自然并行度&#xff0c;以達到最優的執行效率的目的。在構建分布式數據庫系統運行環境時&#xff0c;必須考慮數據如何分布在系統的各個場地上。數據分布主要關注的問題是在分布式數據中&…

uname命令 linux,Linux uname命令詳解

Linux uname命令用于顯示系統信息。uname可顯示電腦以及操作系統的相關信息。語法參數&#xff1a;uname [參數]參數&#xff1a;-a或--all&#xff1a;顯示全部的信息&#xff1b;-m或--machine&#xff1a;顯示電腦類型&#xff1b;-n或-nodename&#xff1a;顯示在網絡上的主…

ios開發text kit_IOS開發入門之TextKit詳解

本文將帶你了解IOS開發入門iOS 開發 富文本詳解之TextKit詳解&#xff0c;希望本文對大家學IOS有所幫助。textkit結構textkit使用步驟#Mark - 1. 自定義label --class CZLabel: UILabel---四個屬性//1.屬性文本存儲private lazy var textStorage NSTextStorage()//2.負責文本…

分布式數據庫技術基礎:數據分片介紹

1、數據分片定義數據分片也成為數據分割&#xff0c;是分布式數據庫的特征之一。一般在一個分布式數據庫中&#xff0c;全局數據庫是由各個局部數據庫邏輯組合而成的&#xff0c;反之各個局部數據庫是由全局數據庫的某種分割邏輯而得的。數據分片得到的各部分元組成為該關系的邏…

9.02

1.input標簽&#xff1a;<input> 標簽用于搜集用戶信息。根據不同的 type 屬性值&#xff0c;輸入字段擁有很多種形式。 輸入字段可以是文本字段、復選框、掩碼后的文本控件、單選按鈕、按鈕等等。例如&#xff1a;Frist name:<input type"text" name"…

分布式數據庫技術基礎:分布透明性相關知識

1、分布透明性介紹數據分布獨立性&#xff1a;主要是指用戶或用戶程序使用分布式數據庫如同使用集中式數據庫那樣&#xff0c;不必關系全局數據的分布情況。也就是說全局數據的邏輯分片、片段的物理位置分配、各場地數據庫的數據模型等情況對用戶和用戶應用程序是透明的。因此分…