DHCP協議和PXE


在學習IP地址基本概念之后,需要了解到如果需要和其他機器通訊,我們就需要一個通訊地址,我們需要給網卡配置一個地址。

如何配置 IP 地址?

可以用命令行自己配置一個地址。可以使用 ifconfig,也可以使用 ip addr。設置好了以后,用這兩個命令,將網卡 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

配置客戶端的IP地址我們需要用到DHCP和PXE:

概述:

  • DHCP 協議:主要是用來給客戶租用 IP 地址,和房產中介很像,要商談、簽約、續租,廣播還不能“搶單”;
  • PXE:DHCP 協議能給客戶推薦“裝修隊”PXE,能夠安裝操作系統,這個在雲計算領域大有用處。

ARP協議工作機制(鏈路層)

通過IP查找MAC地址需要用到ARP協議,如果目標ip地址和自己是一個網段,會直接在網段內進行廣播,如果不是一個網段,則不會直接將包發送到網絡上,而是企圖將包發送到網關上。所以如果跨網段調用,且沒配置網關,則包根

本發不出去。配置一個局域網主要需要配置CIDR、子網掩碼、廣播地址、網關地址。

DHCP 動態主機配置協議(Dynamic Host Configuration Protocol)(應用層)

網管首先配置一段共享的IP地址,新接入的機器通過DHCP協議從這段IP里面取一個未被使用的作為自己的IP,用完了再把ip還回去,非常像連接池,可以理解為一個ip池。

解析DHCP工作過程

新加入的機器使用IP地址0.0.0.0發送一個廣播包,目標ip是255.255.255.255,MAC層包頭內有自己的MAC地址,UDP協議,下層是BOOTP協議,而DHCP其實是BOOTP的增強版。

在這個廣播包里面,新人大聲喊:我是新來的(Boot request),我的 MAC 地址是這個,我還沒有 IP,誰能給租給我個 IP 地址!

 

DHCP Server發現了這個新人的廣播包后會再通過廣播包給新人分配一個ip地址,這個過程叫DHCP Offer。

 

新人收到了offer之后會再發送一個已經收到的廣播包,如果同時收到多個offer,一般選擇第一個收到的offer,這個過程叫DHCP Request。

DHCP收到Request后,會回復一個DHCP ACK的廣播包,確認這個新人此時可以正式用給它分配的ip地址了。

在一個租期到達50%的時候,需要繼續向DHCP Server發送DHCP Request消息包進行續租。

IP 地址的收回和續租

既然是租房子,就是有租期的。租期到了,管理員就要將 IP 收回。如果不用的話,收回就收回了。就像你租房子一樣,如果還要續租的話,不能到了時間再續租,而是要提前一段時間給房東說。DHCP 也是這樣。

客戶機會在租期過去 50% 的時候,直接向為其提供 IP 地址的 DHCP Server 發送 DHCP request 消息包。客戶機接收到該服務器回應的 DHCP ACK 消息包,會根據包中所提供的新的租期以及其他已經更新的 TCP/IP 參數,更新自己

的配置。這樣,IP 租用更新就完成了。

好了,一切看起來完美。DHCP 協議大部分人都知道,但是其實里面隱藏着一個細節,很多人可能不會去注意。接下來一個有意思的事情:網絡管理員不僅能自動分配 IP 地址,還能幫你自動安裝操作系統!

PXE 預啟動執行環境(Preboot Execution Environment)

PXE客戶端放在BIOS里面,計算機啟動時,BIOS把PXE客戶端加載到內存,PXE客戶端啟動后首先通過DHCP獲取一個ip地址,並且DHCP Server可以把PXE客戶端地址配置在next-server選項,把啟動文件配置在filename選項,這樣

PXE客戶端就知道PXE服務端ip地址和安裝操作系統需要的啟動文件了,PXE客戶端通過TFTP一些現在啟動文件。

解析PXE工作過程

首先,啟動 PXE 客戶端。第一步是通過 DHCP 協議告訴 DHCP Server,我剛來,一窮二白,啥都沒有。DHCP Server 便租給它一個 IP 地址,同時也給它 PXE 服務器的地址、啟動文件 pxelinux.0。

其次,PXE 客戶端知道要去 PXE 服務器下載這個文件后,就可以初始化機器。於是便開始下載,下載的時候使用的是 TFTP 協議。所以 PXE 服務器上,往往還需要有一個 TFTP 服務器。PXE 客戶端向 TFTP 服務器請求下載這個文件,TFTP 服務器說好啊,於是就將這個文件傳給它。

然后,PXE 客戶端收到這個文件后,就開始執行這個文件。這個文件會指示 PXE 客戶端,向 TFTP 服務器請求計算機的配置信息 pxelinux.cfg。TFTP 服務器會給 PXE 客戶端一個配置文件,里面會說內核在哪里、initramfs 在哪里。PXE 客戶端會請求這些文件。

最好,啟動 Linux 內核。一旦啟動了操作系統,以后就啥都好辦了。

 

更多學習內容:

簡書-DHCP和PXE協議

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM