簡單的 IP 地址配置原來也有這么多門道
你知道的越多,不知道的就越多,業(yè)余的像一棵小草!
你來,我們一起精進!你不來,我和你的競爭對手一起精進!
編輯:業(yè)余草
來源:juejin.cn/post/7097515553497022472
推薦:https://www.xttblog.com/?p=5357
自律才能自由
上篇文章中《拒絕神化零拷貝!文末有送書福利!》評論區(qū)點贊前5名的中獎用戶,請盡快私信我收件人信息,我給大家快遞圖書!

簡單的 IP 地址配置原來也有這么多門道
一、從一個錯誤配置的例子入手
我們平時給計算機A配置IP時,如果附近的20臺計算機IP是192.168.0.20-192.168.0.40。如果你給計算機A的IP設(shè)置為18.188.8.88,然后你再去測試計算機A與附近其他計算機的連通性,ping它們,你可能會發(fā)現(xiàn),都ping不通啊。
「為什么呢?」
源IP地址和目的IP地址不是都明確了嗎?源IP地址是18.188.8.88,目的IP地址是192.168.0.20-192.168.0.40中的一個。
因為之前我們說過:
?「要始終牢記一個原則:計算機網(wǎng)絡(luò)中的任何一個數(shù)據(jù)包,像房子一樣,必須打牢地基,一層一層建上去,不可能有高層沒有低層。」
?
網(wǎng)絡(luò)層的下面還有數(shù)據(jù)鏈路層,需要知道計算機A的MAC地址以及目的主機的MAC地址。如果計算機A與附件這些計算機是同一個網(wǎng)段,那好辦,不是有「地址解析協(xié)議」(ARP)嗎?將包含目標IP地址的ARP請求廣播到局域網(wǎng)絡(luò)上的所有主機,就能獲得目標IP地址對應(yīng)主機的MAC地址。但是它們不是一個網(wǎng)段的,這種情況下,如果操作系統(tǒng)配置了網(wǎng)關(guān)地址,那么操作系統(tǒng)就會將數(shù)據(jù)包傳給網(wǎng)關(guān),否則,數(shù)據(jù)包就根本發(fā)不出去...
二、DHCP 動態(tài)主機配置協(xié)議
配置IP這么多道理,那么不會配置的計算機小白是不是就上不了網(wǎng)了啊?
其實,有一種自動配置IP地址的協(xié)議,叫做「動態(tài)主機配置協(xié)議(Dynamic Host Configuration Protocol)」 ,也就是我們熟知的DHCP。
除了IP地址,DHCP還可自動配置IP地址的子網(wǎng)掩碼、該網(wǎng)絡(luò)中可使用的DNS服務(wù)器的P地址、作為與外部網(wǎng)絡(luò)的出入口的默認網(wǎng)關(guān)IP地址、 地址的租約期限(到期日期)等。還可配置如時間同步服務(wù)器 (NTP 服務(wù)器) 的地址。

如上圖,當一臺計算機連接到網(wǎng)絡(luò)時,它會向同一網(wǎng)絡(luò)上的所有設(shè)備發(fā)送數(shù)據(jù)包,這稱之為「DHCP發(fā)現(xiàn)」。如果存在DHCP服務(wù)器,DHCP 服務(wù)器使用單播來發(fā)送自己的回應(yīng)報文,并為其分配IP地址等之前提到的信息。至于為什么申請IP地址的計算機還沒有完成IP地址的配置,卻能夠接受單播報文,這給回答解說得比較好:《DHCP offer 報文到底是單播還是廣播》https://www.zhihu.com/question/280872108/answer/438845996
但是,如果網(wǎng)絡(luò)中存在多個DHCP服務(wù)器,那么計算機一般會選擇最先到達的那個單播報文。
計算機確定好要選擇的DHCP Offer單播報文之后,會告訴所有DHCP服務(wù)器你選擇哪一臺DHCP服務(wù)器分配的地址,讓你沒有選擇的DHCP服務(wù)器收回分配給你的地址。
當DHCP服務(wù)器收到計算機的DHCP request 之后,會單播一個DHCP ACK 消息包。至此,IP地址分配完成。

《DHCP消息格式 - NE40E V800R010C10SPC500 特性描述》https://support.huawei.com/enterprise/zh/doc/EDOC1100055151/25cd2dfc
上圖是DHCP報文的格式,筆者在此不詳細說明了,上面華為的中文文檔介紹得很詳細。
至于IP地址到達租約期限或者你不用了,DHCP就會將IP地址收回并放入可分配的IP地址池子。
續(xù)租很簡單,租期達到50%的時候,計算機以單播的方式往DHCP 服務(wù)器發(fā)送一個DHCP Request,告訴它,我地址快要到期了,需要續(xù)租。DHCP服務(wù)器會發(fā)送一個DHCP ACK告訴你續(xù)租成功。如果收到的是DHCP NAK報文,那么就得重新申請了新的IP地址了。如果租期達到87.5%時,仍未收到DHCP服務(wù)器的應(yīng)答,那么就會廣播DHCP Request。DHCP服務(wù)器會發(fā)送一個DHCP ACK告訴你續(xù)租成功。如果收到的是DHCP NAK報文,那么就得重新申請了新的IP地址了。
如果很不幸,租期時間到了,還是沒有收到服務(wù)器的DHCP ACK報文或者DHCP NAK報文,那么客戶端只能停用該IP地址,重新申請。
