openwrt dhcp不分配_【装维技巧】DHCP工作原理详解(上)
以上問題,各位兄弟們有遇到過嗎
莫急,小維來為各位小伙伴們支招
其實吧,有了動態(tài)主機配置協(xié)議DHCP(Dynamic Host Configuration Protocol),上面的問題都可以解決了。小伙伴們再也不用擔(dān)心手工配錯,費神費力了。DHCP能夠?qū)崿F(xiàn)動態(tài)為主機分配IP地址,而且是目前應(yīng)用很廣泛的一種技術(shù)。例如:辦公室、網(wǎng)吧里的固定PC;咖啡廳、機場等提供WIFI接入的地方用手機上網(wǎng);這些都會用到DHCP。今天就由小維來給大家普及下DHCP的各種工作原理。內(nèi)容較長,我們分為2期進(jìn)行講解。DHCP工作原理
一
什么是DHCP?
DHCP,動態(tài)主機配置協(xié)議,前身是BOOTP協(xié)議,是一個局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作,常用的2個端口:67(DHCP server),68(DHCP client)。
DHCP通常被用于局域網(wǎng)環(huán)境,主要作用是集中的管理、分配IP地址,使client動態(tài)的獲得IP地址、Gateway地址、DNS服務(wù)器地址等信息,并能夠提升地址的使用率。簡單來說,DHCP就是一個不需要賬號密碼登錄的、自動給內(nèi)網(wǎng)機器分配IP地址等信息的協(xié)議。
二
DHCP協(xié)議中的報文
DHCP報文共有一下幾種:
?DHCP DISCOVER :客戶端開始DHCP過程發(fā)送的包,是DHCP協(xié)議的開始
?DHCP OFFER :服務(wù)器接收到DHCP DISCOVER之后做出的響應(yīng),它包括了給予客戶端的IP(yiaddr)、客戶端的MAC地址、租約過期時間、服務(wù)器的識別符以及其他信息
?DHCP REQUEST :客戶端對于服務(wù)器發(fā)出的DHCP OFFER所做出的響應(yīng)。在續(xù)約租期的時候同樣會使用。
?DHCP ACK :服務(wù)器在接收到客戶端發(fā)來的DHCP REQUEST之后發(fā)出的成功確認(rèn)的報文。在建立連接的時候,客戶端在接收到這個報文之后才會確認(rèn)分配給它的IP和其他信息可以被允許使用。
?DHCP NAK :DHCP ACK的相反的報文,表示服務(wù)器拒絕了客戶端的請求。
?DHCP RELEASE :一般出現(xiàn)在客戶端關(guān)機、下線等狀況。這個報文將會使DHCP服務(wù)器釋放發(fā)出此報文的客戶端的IP地址
?DHCP INFORM :客戶端發(fā)出的向服務(wù)器請求一些信息的報文
?DHCP DECLINE :當(dāng)客戶端發(fā)現(xiàn)服務(wù)器分配的IP地址無法使用(如IP地址沖突時),將發(fā)出此報文,通知服務(wù)器禁止使用該IP地址。
DHCP的工作流程:
三
DHCP協(xié)議包的組成
?Xid :隨機生成的一段字符串,兩個數(shù)據(jù)包擁有相同的xid說明他們屬于同一次會話
?Ciaddr :客戶端會在發(fā)送請求時將自己的ip地址放在此處
?Yiaddr :服務(wù)器會將想要分配給客戶端的ip地址放在此處
?Siaddr :一般來說是服務(wù)器的ip地址.但是注意!根據(jù)openwrt源碼給出的注釋,當(dāng)報文的源地址、siaddr、option->server_id字段不一致(有經(jīng)過跨子網(wǎng)轉(zhuǎn)發(fā))時,通常認(rèn)為option->srever_id字段為真正的服務(wù)器ip,siaddr有可能是多次路由跳轉(zhuǎn)中的某一個路由的ip (下圖中wireshark抓包中也有標(biāo)明siaddr為nextserver ip address)
?Chaddr?:客戶端的mac地址
?Giaddr :如果需要跨子網(wǎng)進(jìn)行DHCP地址發(fā)放,則在此處填入經(jīng)過的路由器的ip地址
?Sname :服務(wù)器主域名
?Options :可以自由添加的部分,用于存放客戶端向服務(wù)器請求信息和服務(wù)器的應(yīng)答信息
winter
轉(zhuǎn)載自:蘇州裝維之家
置頂加星
江蘇裝維之家
掃碼|關(guān)注我們
一個為裝維服務(wù)的
專業(yè)、有趣、有愛的公眾號
總結(jié)
以上是生活随笔為你收集整理的openwrt dhcp不分配_【装维技巧】DHCP工作原理详解(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 替换 多个逗号_如何使用my
- 下一篇: mysql使用shell脚本部署_she