03 DHCP與PXE:IP是怎么來的, 又是怎么沒的?

目錄:

http://www.reibang.com/p/1961df2a1336

如何配置 IP 地址?

在linux中可以使用ifconfig, 也可以使用ip addr岸裙。 設(shè)置好了以后, 用這兩個(gè)命令速缆, 將網(wǎng)卡 up 一·下降允, 就可以開始工作了。
使用 net-tools:

sudo ifconfig eth1 10.0.0.1/24
$ sudo ifconfig eth1 up

使用 iproute2:

sudo ip addr add 10.0.0.1/24 dev eth1
$ sudo ip link set up eth1

有了目標(biāo)ip地址激涤,還需要目標(biāo)MAC地址拟糕,而最終的目標(biāo)MAC地址需要經(jīng)過一個(gè)個(gè)網(wǎng)關(guān)才可以尋得判呕,而當(dāng)前需要尋得的是當(dāng)前局域網(wǎng)中的網(wǎng)關(guān)的MAC地址。

Linux 默認(rèn)的邏輯是送滞,如果這是一個(gè)跨網(wǎng)段的調(diào)用侠草,它便不會(huì)直接將包發(fā)送到網(wǎng)絡(luò)上,而是企圖將包發(fā)送到網(wǎng)關(guān)犁嗅。

**Linux會(huì)判斷這個(gè)目標(biāo)ip地址和自己的其中一個(gè)網(wǎng)卡是否同一個(gè)網(wǎng)段边涕,才會(huì)發(fā)送ARP請求,獲取網(wǎng)關(guān)的MAC地址褂微,然后將包發(fā)出去功蜓。 如果沒有配置網(wǎng)關(guān),包就發(fā)包出去宠蚂。 **

所以配置ip地址之前需要知道系統(tǒng)中網(wǎng)卡的網(wǎng)段式撼,或者向管理員申請分配一段正確的ip地址。 正配置的時(shí)候求厕,一定不是直接用命令配置的著隆,而是放在一個(gè)配置文件里面。 不同系統(tǒng)的配置文件格式不同呀癣,但是無非就是 CIDR美浦、子網(wǎng)掩碼、廣播地址和網(wǎng)關(guān)地址项栏。

動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)

除了手動(dòng)配置浦辨,還有一種是自動(dòng)分配配置。

自動(dòng)配置的協(xié)議沼沈,也就是稱動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol)流酬,簡稱DHCP。

有了這個(gè)協(xié)議庆冕,網(wǎng)絡(luò)管理員需要配置一段共享ip地址康吵,每一臺(tái)新接入的機(jī)器都通過DHCP吸引劈榨,來這個(gè)共享的IP地址里申請访递,然后自動(dòng)配置好就可以了,下線自動(dòng)歸還同辣。 拷姿。

如果是數(shù)據(jù)中心里面的服務(wù)器,IP 一旦配置好旱函,基本不會(huì)變响巢,這就相當(dāng)于買房自己裝修。DHCP 的方式就相當(dāng)于租房棒妨。你不用裝修踪古,都是幫你配置好的含长。你暫時(shí)用一下,用完退租就可以了伏穆。

DHCP 的工作方式

當(dāng)一臺(tái)機(jī)器新加入一個(gè)網(wǎng)絡(luò)的時(shí)候拘泞,啥情況都不知道, 只知道自己的 MAC 地址枕扫。 怎么辦陪腌?先吼一句, 我來啦烟瞧, 有人嗎诗鸭?這時(shí)候的溝通基本靠“吼”。 這一步参滴, 我們稱為DHCP Discover强岸。

通信都是廣播包的形式,新來的機(jī)器使用IP 地址 0.0.0.0 發(fā)送了一個(gè)廣播包砾赔,目的 IP 地址為255.255.255.255请唱。廣播包封裝了 UDP, UDP 封裝了 BOOTP过蹂。 其實(shí) DHCP 是 BOOTP 的增強(qiáng)版十绑。

1、新人叫一聲:我是新來的(Boot request) 酷勺,我是XXX(MAC地址)我還沒有 IP本橙, 誰能給租給我個(gè) IP 地址!
格式就像這樣:


Boot request.png

2脆诉、DHCP Server 分配 IP給新人
如果網(wǎng)絡(luò)里面配置了DHCP Server甚亭,根據(jù)MAC 地址唯一性立刻能知道來了一個(gè)“新人”,需要租給它一個(gè) IP 地址击胜,這個(gè)過程稱為DHCP Offer亏狰。 同時(shí), DHCP Server 為此客戶保留為它提供的 IP 地址偶摔, 從而不會(huì)為其他DHCP 客戶分配此 IP 地址暇唾。
DHCP Offer 的格式就像這樣, 里面有給新人分配的地址:

DHCP Offer.png

DHCP Server 仍然使用廣播地址作為目的地址辰斋,因?yàn)榇藭r(shí)新人自己還沒有自己IP策州。除IP外, 服務(wù)器還發(fā)
送了子網(wǎng)掩碼宫仗、 網(wǎng)關(guān)和 IP 地址租用期等信息够挂。

3、新人選擇其中一個(gè) DHCP Offer藕夫, 一般是最先到達(dá)的那個(gè)孽糖, 并且會(huì)向網(wǎng)絡(luò)發(fā)送一個(gè) DHCP Request 廣播數(shù)據(jù)包枯冈,
DHCP Request格式如下


DHCP Request.png

包中包含客戶端的 MAC 地址、 接受的租約中的 IP 地址办悟、 提供此租約的DHCP 服務(wù)器地址等霜幼, 并告訴所有 DHCP Server 它將接受哪一臺(tái)服務(wù)器提供的 IP 地址, 告訴其他 DHCP 服務(wù)器誉尖, 謝謝你們的接納罪既, 并請求撤銷它們提供的 IP 地址, 以便提供給下一個(gè) IP租用請求者铡恕。

4琢感、當(dāng) DHCP Server 接收到客戶機(jī)的 DHCP request 之后,會(huì)廣播返回給客戶機(jī)一個(gè) DHCP ACK消息包探熔, 表明已經(jīng)接受客戶機(jī)的選擇
DHCP ACK消息包格式如下

DHCP ACK.png

IP 地址的收回和續(xù)租

客戶機(jī)會(huì)在租期過去 50% 的時(shí)候驹针, 直接向?yàn)槠涮峁?IP 地址的 DHCP Server 發(fā)送 DHCP request 消息包。 客戶機(jī)接收到該服務(wù)器回應(yīng)的 DHCP ACK 消息包诀艰, 會(huì)根據(jù)包中所提供的新的租期以及其他已經(jīng)更新的 TCP/IP 參數(shù)柬甥, 更新自己的配置。 這樣其垄, IP 租用更新就完成了

預(yù)啟動(dòng)執(zhí)行環(huán)境(PXE)

例如數(shù)據(jù)中心要給幾百臺(tái)機(jī)器自動(dòng)安裝操作系統(tǒng)就需要PXE了苛蒲。

PXE是什么?

PXE(preboot execute environment绿满,預(yù)啟動(dòng)執(zhí)行環(huán)境)是由Intel公司開發(fā)的最新技術(shù)臂外,工作于Client/Server的網(wǎng)絡(luò)模式,支持工作站通過網(wǎng)絡(luò)從遠(yuǎn)端服務(wù)器下載映像喇颁,并由此支持通過網(wǎng)絡(luò)啟動(dòng)操作系統(tǒng)漏健,在啟動(dòng)過程中,終端要求服務(wù)器分配IP地址橘霎,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協(xié)議下載一個(gè)啟動(dòng)軟件包到本機(jī)內(nèi)存中執(zhí)行蔫浆,由這個(gè)啟動(dòng)軟件包完成終端(客戶端)基本軟件設(shè)置,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)姐叁。PXE可以引導(dǎo)多種操作系統(tǒng)瓦盛,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系統(tǒng)等。

PXE表現(xiàn)形式:

PXE最直接的表現(xiàn)是七蜘,在網(wǎng)絡(luò)環(huán)境下工作站可以省去硬盤谭溉,但又不是通常所說的無盤站的概念,因?yàn)槭褂迷摷夹g(shù)的PC在網(wǎng)絡(luò)方式下的運(yùn)行速度要比有盤PC快3倍以上橡卤。當(dāng)然使用PXE的PC也不是傳統(tǒng)意義上的TERMINAL終端,因?yàn)槭褂昧薖XE的PC并不消耗服務(wù)器的CPU损搬,RAM等資源碧库,故服務(wù)器的硬件要求極低柜与。

PXE啟動(dòng)原理

PXE 協(xié)議分為客戶端和服務(wù)器端,由于還沒有操作系統(tǒng)嵌灰,只能先把客戶端放在 BIOS 里面弄匕。當(dāng)計(jì)算機(jī)引導(dǎo)時(shí),BIOS把 PXE Client 調(diào)入內(nèi)存中執(zhí)行沽瞭,然后由 PXE Client 將放置在遠(yuǎn)端的文件通過網(wǎng)絡(luò)下載到本地運(yùn)行 迁匠。

PXE 客戶端自己也需要有個(gè) IP 地址,會(huì)發(fā)送一個(gè)DHCP 的請求驹溃, 讓 DHCP Server 給它分配一個(gè)地址城丧。DHCP Server 除了分配 IP 地址以外, 還可以做一些其他的事情豌鹤。
這里有一個(gè) DHCP Server 的一個(gè)樣例配置:

ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0
{
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option time-offset -18000;
default-lease-time 21600;
max-lease-time 43200;
range dynamic-bootp 192.168.1.240 192.168.1.250;
filename "pxelinux.0";
next-server 192.168.1.180;
}

如果想使用PXE亡哄, 則需要配置 next-server, 指向PXE 服務(wù)器的地址布疙, 另外要配置初始啟動(dòng)文件filename蚊惯。

PXE 客戶端啟動(dòng)之后, 發(fā)送 DHCP 請求之后灵临, 除了能得到一個(gè) IP 地址截型, 還可以知道 PXE服務(wù)器在哪里, 也可以知道如何從 PXE 服務(wù)器上下載某個(gè)文件儒溉, 去初始化操作系統(tǒng)菠劝。

PXE 的工作過程

PXE 的工作過程.png

首先, 啟動(dòng) PXE 客戶端睁搭。通過 DHCP 協(xié)議由DHCP Server 便租給客戶端一個(gè) IP 地址赶诊, 同時(shí)也給它 PXE 服務(wù)器的地址、 啟動(dòng)文件pxelinux.0园骆。

其次舔痪, PXE 客戶端知道要去 PXE 服務(wù)器下載這個(gè)文件后, 就可以初始化機(jī)器锌唾。于是便開始使用 TFTP 協(xié)議下載锄码,所以 PXE 服務(wù)器上, 往往還需要有一個(gè) TFTP 服務(wù)器晌涕。

然后滋捶, PXE 客戶端收到這個(gè)文件后, 就開始執(zhí)行這個(gè)文件余黎。 這個(gè)文件會(huì)指示 PXE 客戶端重窟, 向TFTP 服務(wù)器請求計(jì)算機(jī)的配置信息 pxelinux.cfg,里面會(huì)說內(nèi)核在哪里惧财、 initramfs 在哪里巡扇。 PXE 客戶端會(huì)請求這些件扭仁。

最后, 啟動(dòng) Linux 內(nèi)核厅翔。 一旦啟動(dòng)了操作系統(tǒng)乖坠, 以后就啥都好辦了。

小結(jié)

  • DHCP 協(xié)議主要是用來給客戶租用 IP 地址刀闷,和房產(chǎn)中介很像熊泵,要商談、簽約甸昏、續(xù)租顽分,廣播還不能“搶單”

  • DHCP 協(xié)議能給客戶推薦“裝修隊(duì)”PXE,能夠安裝操作系統(tǒng)

參考資料:

趣談網(wǎng)絡(luò)協(xié)議(極客時(shí)間)鏈接:
http://gk.link/a/106nW


GitHub鏈接:
https://github.com/lichangke/LeetCode

知乎個(gè)人首頁:
https://www.zhihu.com/people/lichangke/

簡書個(gè)人首頁:
http://www.reibang.com/u/3e95c7555dc7

歡迎大家來一起交流學(xué)習(xí)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筒扒,一起剝皮案震驚了整個(gè)濱河市怯邪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌花墩,老刑警劉巖悬秉,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異冰蘑,居然都是意外死亡和泌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門祠肥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來武氓,“玉大人,你說我怎么就攤上這事仇箱∠厮。” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵剂桥,是天一觀的道長忠烛。 經(jīng)常有香客問我,道長权逗,這世上最難降的妖魔是什么美尸? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮斟薇,結(jié)果婚禮上师坎,老公的妹妹穿的比我還像新娘。我一直安慰自己堪滨,他們只是感情好胯陋,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般惶岭。 火紅的嫁衣襯著肌膚如雪寿弱。 梳的紋絲不亂的頭發(fā)上犯眠,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天按灶,我揣著相機(jī)與錄音,去河邊找鬼筐咧。 笑死鸯旁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的量蕊。 我是一名探鬼主播铺罢,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼残炮!你這毒婦竟也來了韭赘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤势就,失蹤者是張志新(化名)和其女友劉穎泉瞻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苞冯,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡袖牙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舅锄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞭达。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖皇忿,靈堂內(nèi)的尸體忽然破棺而出畴蹭,到底是詐尸還是另有隱情,我是刑警寧澤鳍烁,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布叨襟,位于F島的核電站,受9級特大地震影響老翘,放射性物質(zhì)發(fā)生泄漏芹啥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一铺峭、第九天 我趴在偏房一處隱蔽的房頂上張望墓怀。 院中可真熱鬧,春花似錦卫键、人聲如沸傀履。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钓账。三九已至碴犬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間梆暮,已是汗流浹背服协。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啦粹,地道東北人偿荷。 一個(gè)月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像唠椭,于是被迫代替她去往敵國和親跳纳。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容