重學(xué)計算機網(wǎng)絡(luò)(三) - DHCP & IP的"孽緣"

和其他機器通訊,就需要一個通訊地址凉倚,要給網(wǎng)卡配置這么一個地址。

1 配置IP地址

可以使用ifconfig嫂沉,也可以使用ip addr稽寒。設(shè)置好了以后,用這兩個命令趟章,將網(wǎng)卡up一下杏糙,就可以開始工作了。

1.1 net-tools

$ sudo ifconfig eth1 10.0.0.1/24
$ sudo ifconfig eth1 up

1.2 iproute2

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

如果配置的是一個和誰都不搭嘎的地址呢蚓土?

例如宏侍,旁邊的機器都是192.168.1.x,我非得配置一個16.158.23.6蜀漆,會出現(xiàn)什么現(xiàn)象呢谅河?

不會出現(xiàn)任何現(xiàn)象,就是包發(fā)不出去唄

為什么發(fā)不出去呢嗜愈?

192.168.1.6 就在你這臺機器的旁邊旧蛾,甚至在同一交換機莽龟,而你把機器的地址設(shè)為 16.158.23.6

在這臺機器上蠕嫁,你企圖去ping 192.168.1.6,覺得只要將包發(fā)出去毯盈,同一個交換機的另一臺機器馬上就能收到剃毒,是嘛?

可Linux不是這樣的搂赋,沒你想得那么智能

你用肉眼看到那臺機器就在旁邊赘阀,它則需要根據(jù)自己的邏輯處理

只要是在網(wǎng)絡(luò)上跑的包,都是完整的脑奠,可以有下層沒上層基公,絕對不可能有上層沒下層

所以,它有自己的源IP地址 16.158.23.6宋欺,也有目標(biāo)IP地址 192.168.1.6轰豆,但包發(fā)不出去,這是因為MAC層還沒填

自己的MAC地址自己知道,但目標(biāo)MAC填啥呢齿诞?

是不是填 192.168.1.6 機器的MAC地址呢酸休?

當(dāng)然不是!

Linux會判斷要去的這個地址和我是一個網(wǎng)段嗎,或者和我的一個網(wǎng)卡是同一網(wǎng)段嗎祷杈?

只有是一個網(wǎng)段的斑司,它才會發(fā)送ARP請求,獲取MAC地址

如果發(fā)現(xiàn)不是呢但汞?

Linux默認(rèn)的邏輯宿刮,如果這是一個跨網(wǎng)段的調(diào)用互站,它不會直接將包發(fā)送到網(wǎng)絡(luò)上,而是將包發(fā)送到網(wǎng)關(guān)

如果配置了網(wǎng)關(guān)僵缺,Linux會獲取網(wǎng)關(guān)的MAC地址云茸,然后將包發(fā)出去

對于 192.168.1.6 機器,雖然路過家門的這個包谤饭,目標(biāo)IP是它标捺,但是無奈MAC地址不是它的,所以它的網(wǎng)卡是不會把包收進(jìn)去的

如果沒有配置網(wǎng)關(guān)呢揉抵?

那包壓根就發(fā)不出去

如果將網(wǎng)關(guān)配置為 192.168.1.6 呢亡容?

不可能,Linux不會讓你配置成功

因為 網(wǎng)關(guān)要和當(dāng)前的網(wǎng)絡(luò)至少一個網(wǎng)卡是同一個網(wǎng)段

怎能允你16.158.23.6的網(wǎng)關(guān)是192.168.1.6呢冤今?

所以闺兢,當(dāng)你需要手動配置一臺機器的網(wǎng)絡(luò)IP時,一定要好好問問你的網(wǎng)管

如果在機房里面戏罢,要去網(wǎng)管那申請屋谭,讓他給你分配一段正確的IP地址

當(dāng)然,真正配置的時候龟糕,一定不是直接用命令配置的桐磁,而是放在一個配置文件里面

不同系統(tǒng)的配置文件格式不同,但是無非就是CIDR讲岁、子網(wǎng)掩碼我擂、廣播地址和網(wǎng)關(guān)地址

2 DHCP - 動態(tài)主機配置協(xié)議

配置IP后一般不能變,配置一個服務(wù)端的機器還可以缓艳,但如果是客戶端的機器呢校摩?

我抱著一臺筆記本電腦在公司里走來走去,或者白天來晚上走阶淘,每次使用都要配置IP地址衙吩,那可怎么辦?還有人事溪窒、行政等非技術(shù)人員坤塞,如果公司所有的電腦都需要IT人員配置,肯定忙不過來啊霉猛。

需要有一個自動配置的協(xié)議尺锚,即動態(tài)主機配置協(xié)議(Dynamic Host Configuration Protocol),簡稱DHCP

那網(wǎng)管就輕松多了惜浅。只需要配置一段共享的IP地址

每一臺新接入的機器都通過DHCP協(xié)議瘫辩,來這個共享的IP地址里申請,然后自動配置好就可

等用完了,還回去伐厌,這樣其他的機器也能用承绸。

**數(shù)據(jù)中心里面的服務(wù)器,IP一旦配置好挣轨,基本不會變

這就相當(dāng)于買房自己裝修军熏。DHCP的方式就相當(dāng)于租房。你不用裝修卷扮,都是幫你配置好的荡澎。你暫時用一下,用完退租就可以了晤锹。**

3 DHCP的工作方式

當(dāng)一臺機器新加入一個網(wǎng)絡(luò)的時候摩幔,肯定啥情況都不知道,只知道自己的MAC地址

怎么辦鞭铆?先吼一句或衡,我來啦,有人嗎车遂?這時候的溝通基本靠“吼”

這一步封断,我們稱為DHCP Discover。

新來的機器使用IP地址 0.0.0.0 發(fā)送了一個廣播包舶担,目的IP地址為 255.255.255.255

廣播包封裝了UDP坡疼,UDP封裝了BOOTP

其實DHCP是BOOTP的增強版,但是如果去抓包的話柄沮,很可能看到的名稱還是BOOTP協(xié)議

在廣播包里回梧,新人大喊:我是新來的(Boot request)废岂,我的MAC地址是這個祖搓,我還沒有IP,誰能給租給我個IP地址湖苞!

  • 格式就像


如果一個網(wǎng)管在網(wǎng)絡(luò)里面配置了DHCP Server拯欧,他就相當(dāng)于這些IP的管理員

立刻能知道來了一個“新人”

這個時候,我們可以體會MAC地址唯一的重要性了

當(dāng)一臺機器帶著自己的MAC地址加入一個網(wǎng)絡(luò)的時候财骨,MAC是它唯一的身份镐作,如果連這個都重復(fù)了,就沒辦法配置了隆箩。

只有MAC唯一该贾,IP管理員才能知道這是一個新人,需要租給它一個IP地址捌臊,這個過程我們稱為DHCP Offer

同時杨蛋,DHCP Server為此客戶保留為它提供的IP地址,從而不會為其他DHCP客戶分配此IP地址。

DHCP Offer的格式就像這樣逞力,里面有給新人分配的地址曙寡。

DHCP Server 仍然使用廣播地址作為目的地址

因為,此時請求分配IP的新人還沒有自己的IP

DHCP Server回復(fù)說寇荧,我分配一個可用的IP給你举庶,你看如何?

除此之外揩抡,服務(wù)器還發(fā)送了子網(wǎng)掩碼户侥、網(wǎng)關(guān)和IP地址租用期等信息。

新來的機器很開心峦嗤,它的“吼”得到了回復(fù)添祸,并且有人愿意租給它一個IP地址了,這意味著它可以在網(wǎng)絡(luò)上立足了

當(dāng)然更令人開心的是寻仗,如果有多個DHCP Server刃泌,這臺新機器會收到多個IP地址,簡直受寵若驚!!!

它會選擇其中一個DHCP Offer署尤,一般是最先到達(dá)的那個耙替,并且會向網(wǎng)絡(luò)發(fā)送一個DHCP Request廣播數(shù)據(jù)包,包中包含客戶端的MAC地址曹体、接受的租約中的IP地址俗扇、提供此租約的DHCP服務(wù)器地址等,并告訴所有DHCP Server它將接受哪一臺服務(wù)器提供的IP地址箕别,告訴其他DHCP服務(wù)器铜幽,謝謝你們的接納,并請求撤銷它們提供的IP地址串稀,以便提供給下一個IP租用請求者

還沒得到DHCP Server的最后確認(rèn)除抛,客戶端仍然使用0.0.0.0為源IP地址、255.255.255.255為目標(biāo)地址進(jìn)行廣播

在BOOTP里面母截,接受某個DHCP Server的分配的IP到忽。

當(dāng)DHCP Server接收到客戶機的DHCP request之后,會廣播返回給客戶機一個DHCP ACK消息包清寇,表明已經(jīng)接受客戶機的選擇喘漏,并將這一IP地址的合法租用信息和其他的配置信息都放入該廣播包,發(fā)給客戶機华烟,歡迎它加入網(wǎng)絡(luò)大家庭

最終租約達(dá)成的時候翩迈,還是需要廣播一下,讓大家都知道盔夜。

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

既然是租房子负饲,就是有租期的搅方。租期到了,管理員就要將IP收回绽族。

如果不用的話姨涡,收回就收回了。就像你租房子一樣吧慢,如果還要續(xù)租的話涛漂,不能到了時間再續(xù)租,而是要提前一段時間給房東說

DHCP也是這樣

客戶機會在租期過去50%的時候检诗,直接向為其提供IP地址的DHCP Server發(fā)送DHCP request消息包

客戶機接收到該服務(wù)器回應(yīng)的DHCP ACK消息包匈仗,會根據(jù)包中所提供的新的租期以及其他已經(jīng)更新的TCP/IP參數(shù),更新自己的配置

這樣逢慌,IP租用更新就完成了悠轩。

網(wǎng)絡(luò)管理員不僅能自動分配IP地址,還能幫你自動安裝操作系統(tǒng)攻泼!

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

數(shù)據(jù)中心里面的管理員可能一下子就拿到幾百臺空的機器火架,一個個安裝操作系統(tǒng),會累死的忙菠。

所以管理員希望的不僅僅是自動分配IP地址何鸡,還要自動安裝系統(tǒng)。裝好系統(tǒng)之后自動分配IP地址牛欢,直接啟動就能用了

安裝操作系統(tǒng)骡男,應(yīng)該有個光盤吧。數(shù)據(jù)中心里不能用光盤吧傍睹,想了一個辦法就是隔盛,可以將光盤里面要安裝的操作系統(tǒng)放在一個服務(wù)器上,讓客戶端去下載

但是客戶端放在哪里呢拾稳?它怎么知道去哪個服務(wù)器上下載呢吮炕?客戶端總得安裝在一個操作系統(tǒng)上呀,可是這個客戶端本來就是用來安裝操作系統(tǒng)的呀熊赖?

其實来屠,這個過程和操作系統(tǒng)啟動的過程有點兒像。

  • 首先震鹉,啟動BIOS,讀取硬盤的MBR啟動扇區(qū),將GRUB啟動起來
  • 然后將權(quán)力交給GRUB捆姜,GRUB加載內(nèi)核传趾、加載作為根文件系統(tǒng)的initramfs文件
  • 再將權(quán)力交給內(nèi)核
  • 最后內(nèi)核啟動,初始化整個操作系統(tǒng)泥技。

安裝操作系統(tǒng)的過程浆兰,只能插在BIOS啟動之后了

因為沒安裝系統(tǒng)之前,連啟動扇區(qū)都沒有。因而這個過程叫做預(yù)啟動執(zhí)行環(huán)境 (Pre-boot Execution Environment)簸呈,PXE

PXE協(xié)議分為客戶端和服務(wù)器端榕订,由于還沒有操作系統(tǒng),只能先把客戶端放在BIOS里面

當(dāng)計算機啟動時蜕便,BIOS把PXE客戶端調(diào)入內(nèi)存里面劫恒,就可以連接到服務(wù)端做一些操作了。

首先轿腺,PXE客戶端自己也需要有個IP地址

因為PXE的客戶端啟動起來两嘴,就可以發(fā)送一個DHCP的請求,讓DHCP Server給它分配一個地址族壳。PXE客戶端有了自己的地址憔辫,那它怎么知道PXE服務(wù)器在哪里呢?對于其他的協(xié)議仿荆,都好辦贰您,要么人告訴他

例如,告訴瀏覽器要訪問的IP地址拢操,或者在配置中告訴它枉圃;例如,微服務(wù)之間的相互調(diào)用庐冯。

但是PXE客戶端啟動的時候孽亲,啥都沒有

好在DHCP Server除了分配IP地址以外,還可以做一些其他的事情展父。這里有一個DHCP Server的一個樣例配置:

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;
}

按照上面的原理返劲,默認(rèn)的DHCP Server是需要配置的,無非是我們配置IP的時候所需要的IP地址段栖茉、子網(wǎng)掩碼篮绿、網(wǎng)關(guān)地址、租期等

如果想使用PXE吕漂,則需要配置next-server亲配,指向PXE服務(wù)器的地址,另外要配置初始啟動文件filename

這樣PXE客戶端啟動之后惶凝,發(fā)送DHCP請求之后吼虎,除了能得到一個IP地址,還可以知道PXE服務(wù)器在哪里苍鲜,也可以知道如何從PXE服務(wù)器上下載某個文件思灰,去初始化操作系統(tǒng)。

解析PXE的工作過程

啟動PXE客戶端

通過DHCP協(xié)議告訴DHCP Server混滔,我,窮b洒疚,打錢!

DHCP Server便租給它一個IP地址歹颓,同時也給它PXE服務(wù)器的地址、啟動文件pxelinux.0

初始化機器

PXE客戶端知道要去PXE服務(wù)器下載這個文件后油湖,就可以初始化機器

便開始下載(TFTP協(xié)議),還需要有一個TFTP服務(wù)器

PXE客戶端向TFTP服務(wù)器請求下載這個文件巍扛,TFTP服務(wù)器說好啊,于是就將這個文件傳給它

執(zhí)行文件

然后乏德,PXE客戶端收到這個文件后撤奸,就開始執(zhí)行這個文件

這個文件會指示PXE客戶端,向TFTP服務(wù)器請求計算機的配置信息pxelinux.cfg

TFTP服務(wù)器會給PXE客戶端一個配置文件鹅经,里面會說內(nèi)核在哪里寂呛、initramfs在哪里。PXE客戶端會請求這些文件瘾晃。

啟動Linux內(nèi)核

一旦啟動了操作系統(tǒng)贷痪,以后就啥都好辦了

總結(jié)

DHCP協(xié)議主要是用來給客戶租用IP地址,和房產(chǎn)中介很像蹦误,要商談劫拢、簽約、續(xù)租强胰,廣播還不能“搶單”舱沧;

DHCP協(xié)議能給客戶推薦“裝修隊”PXE,能夠安裝操作系統(tǒng)偶洋,這個在云計算領(lǐng)域大有用處熟吏。

參考

  • 趣談網(wǎng)絡(luò)協(xié)議
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市玄窝,隨后出現(xiàn)的幾起案子牵寺,更是在濱河造成了極大的恐慌,老刑警劉巖恩脂,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帽氓,死亡現(xiàn)場離奇詭異,居然都是意外死亡俩块,警方通過查閱死者的電腦和手機黎休,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玉凯,“玉大人势腮,你說我怎么就攤上這事∽嘲。” “怎么了嫉鲸?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長歹啼。 經(jīng)常有香客問我玄渗,道長,這世上最難降的妖魔是什么狸眼? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任藤树,我火速辦了婚禮,結(jié)果婚禮上拓萌,老公的妹妹穿的比我還像新娘岁钓。我一直安慰自己,他們只是感情好微王,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布屡限。 她就那樣靜靜地躺著,像睡著了一般炕倘。 火紅的嫁衣襯著肌膚如雪钧大。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天罩旋,我揣著相機與錄音啊央,去河邊找鬼。 笑死涨醋,一個胖子當(dāng)著我的面吹牛瓜饥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浴骂,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乓土,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了溯警?” 一聲冷哼從身側(cè)響起趣苏,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤枪汪,失蹤者是張志新(化名)和其女友劉穎扶欣,沒想到半個月后尼荆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體指黎,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡丁恭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年乾巧,在試婚紗的時候發(fā)現(xiàn)自己被綠了模闲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攀唯。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蟀悦,死狀恐怖媚朦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情日戈,我是刑警寧澤询张,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站浙炼,受9級特大地震影響份氧,放射性物質(zhì)發(fā)生泄漏唯袄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一蜗帜、第九天 我趴在偏房一處隱蔽的房頂上張望恋拷。 院中可真熱鬧,春花似錦厅缺、人聲如沸蔬顾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诀豁。三九已至,卻和暖如春窥妇,著一層夾襖步出監(jiān)牢的瞬間舷胜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工秩伞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逞带,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓纱新,卻偏偏與公主長得像展氓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子脸爱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

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