Linux 的 PXE 與 UEFI PXE 依賴服務(wù)器配置

Linux 的 PXE 與 UEFI PXE 依賴服務(wù)器配置

PXE(preboot execute environment)是一個(gè) C/S 模式应民,是以工作站通過網(wǎng)絡(luò)遠(yuǎn)程服務(wù)器下載映像,通過網(wǎng)絡(luò)來批量部署系統(tǒng)蕾管。

一. PXE 原理過程

客戶端 PXE 網(wǎng)卡啟動(dòng) --> 通過 Bootp 協(xié)議廣播 dhcp 請(qǐng)求 --> DHCP 服務(wù)器 --> 獲取 IP,TFTP 服務(wù)器地址 --> 從 TFTP 服務(wù)器下載boot/{vmlinuz,initrd.img};或者讀取 NFS 文件共享服務(wù)器共享boot目錄 --> 啟動(dòng)系統(tǒng) --> 到制定 url 去下載 ks.cfg 文件 --> 根據(jù)(ks.cfg 文件去 NFS/HTTP/FTP服務(wù)器自動(dòng)下載軟件包)安裝系統(tǒng) --> 完成安裝

  1. 原理過程

支持來自網(wǎng)絡(luò)中遠(yuǎn)程服務(wù)器上的操作系統(tǒng)的啟動(dòng)過程啟動(dòng)過程中菩暗,終端會(huì)要求 DHCP 服務(wù)器分配 IP 地址掰曾,然后使用 TFTP/FTP 或者 MTFTP(multicast trivial file transfer protocol)協(xié)議下載啟動(dòng)軟件包(initramfs.img、vmlinuz)到本機(jī)內(nèi)存中并執(zhí)行停团,由這個(gè)啟動(dòng)軟件包終端基本軟件設(shè)置旷坦,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)映像。

  1. FTP 協(xié)議與 TFTP 協(xié)議對(duì)比

FTP:文件傳輸協(xié)議佑稠,可以應(yīng)用在任意大于兩臺(tái)主機(jī)的環(huán)境下使用秒梅,F(xiàn)TP 不僅是協(xié)議,也是一個(gè)應(yīng)用程序舌胶。
TFTP:簡(jiǎn)單文件傳輸協(xié)議捆蜀,是 FTP 的簡(jiǎn)化版。應(yīng)用場(chǎng)景:只有你知道“確切的文件名”與“確定的位置”才可以選擇使用 TFTP。

  • FTP 是完整辆它、面向會(huì)話誊薄、常規(guī)用途是文件傳輸協(xié)議。TFTP 是用作特殊目的文件傳輸協(xié)議娩井。
  • 交互使用 FTP 協(xié)議暇屋,TFTP 僅允許單向傳輸?shù)奈募?/li>
  • FTP 提供身份驗(yàn)證,TFTP 不提供身分驗(yàn)證洞辣。
  • FTP 使用以 TCP 的端口:21(控制端口)咐刨、20(數(shù)據(jù)端口,但數(shù)據(jù)端口不一定是20端口扬霜,這和FTP應(yīng)用模式有關(guān)定鸟。如果是主動(dòng)模式,21號(hào)是數(shù)據(jù)端口著瓶;如果為被動(dòng)模式联予,由服務(wù)器端和客戶端協(xié)商決定 “FTP Port模式”與“FTP Passive模式”);TFTP 是使用 UDP 端口的 69 號(hào)端口進(jìn)行文件傳輸材原。
  • FTP 依賴于 TCP 協(xié)議沸久,是面向連接并提供可靠的控件。TFTP 依賴 UDP 協(xié)議余蟹,為了減小開銷卷胯,幾乎不提供空間。

二. PXE 服務(wù)器搭建

  1. 基礎(chǔ)環(huán)境需求

搭建 pxe 服務(wù)器環(huán)境需要有:一個(gè) DHCP 服務(wù)器威酒、TFTP/FTP 服務(wù)器和一個(gè)文件服務(wù)器(文件服務(wù)器可以是:ftp服務(wù)器窑睁、http服務(wù)器、nfs等文件服務(wù)器)葵孤。并且需要在客戶機(jī)的固件担钮、網(wǎng)卡支持這樣的服務(wù)。

  1. PXE 啟動(dòng)過程
    • 調(diào)整固件配置尤仍,設(shè)置開機(jī)啟動(dòng)項(xiàng)為網(wǎng)絡(luò)啟動(dòng)箫津。
    • 客戶機(jī)開機(jī)進(jìn)入網(wǎng)絡(luò)啟動(dòng)模式,此時(shí)客戶機(jī)沒有 IP 地址需要發(fā)送廣播報(bào)文(PXE 網(wǎng)卡內(nèi)置了 DHCP 客戶端程序)宰啦,在同一局域網(wǎng)內(nèi)服務(wù)器端鲤嫡,DHCP 服務(wù)器響應(yīng)客戶端請(qǐng)求,分配給客戶端相應(yīng)的 IP 地址與掩碼等信息绑莺。
    • 客戶端得到 IP 地址后暖眼,與 tftp 通信,下載啟動(dòng)軟件包與啟動(dòng)配置文件纺裁。
    • NFS 文件共享服務(wù)器提供文件共享的目錄boot诫肠、LiveOS目錄司澎。
部署各服務(wù)器

一. 部署 TFTP 服務(wù)器

  1. 安裝 tftp、xinetd
# fedora,Centos
dnf install tftp xinetd tftp-server
  1. 配置栋豫、測(cè)試 TFTP
# 配置 TFTP
vim /etc/xinetd.d/tftp
# TFTP 服務(wù)器默認(rèn)的根文件路徑:“/var/lib/tftpboot”

# 關(guān)閉防火墻挤安、啟用服務(wù)
/etc/init.d/iptables stop   # 關(guān)閉防火墻
systemctl restart xinetd        # 重啟 xinetd 服務(wù),因?yàn)?                            # TFTP 服務(wù)受控于xinetd
                            # xinetd是管理服務(wù)的服務(wù)
                            # 是不需要端口的
systemctl enable tftp       # 開機(jī)自啟
systemctl restart tftp      # 重啟服務(wù)

# 驗(yàn)證 TFTP 服務(wù)是否起來
netstat -nlp | grep 69
# 若出現(xiàn)以下信息則代表已啟動(dòng)
udp 0 0.0.0.0.0:69  0.0.0.0:*

# 設(shè)置服務(wù)開機(jī)自動(dòng)運(yùn)行級(jí)別
chkconfig --livel 345 xinetd on
chkconfig --livel 345 tftp on

# 測(cè)試 TFTP 服務(wù)器
cd /var/lib/tftpboot
touch test_tftpboot.txt
cd                          # 回到家目錄
# 進(jìn)入 tftp: tftp localhost;tftp “ip地址 DHCP 服務(wù)器配置文件指定的”
tftp> get tftp_tftpboot.txt
tftp> quit
ls -al tftp_tftpboot.txt        # 查看是否獲取到tftp_tftpboot.txt文件

二. 部署 DHCP 服務(wù)器

DHCP 使用 UDP 的67號(hào)端口丧鸯,運(yùn)行原理:請(qǐng)求DHCP服務(wù)器蛤铜、提供IP地址、選擇IP地址丛肢、IP地址提供確認(rèn)围肥、重新租約、更新租約蜂怎。

DHCP客戶          DHCP服務(wù)器
    ->IP租用請(qǐng)求->
    <-IP租用提供<-
    ->IP租用選擇->
    <-IP租用確認(rèn)<-
#1. 第一步請(qǐng)求DHCP服務(wù)器
客戶端在局域網(wǎng)廣播發(fā)送 DHCP discovery包穆刻,尋找DHCP服務(wù)器,
即向255.255.255.255發(fā)送特定的廣播信息杠步,每一臺(tái)安裝了
TCP/IP協(xié)議的主機(jī)都會(huì)有這個(gè)廣播地址氢伟,但只有DHCP服務(wù)器才會(huì)做出回應(yīng)
#2. 第二步提供IP地址
服務(wù)器收到DHCP discovery包后,向客戶機(jī)發(fā)送一個(gè)包含分配
的IP地址和其它設(shè)置的 DHCP offer 包幽歼,目的告訴客戶機(jī)朵锣,我能
為你提供IP地址。
#3. 第三步選擇IP地址
客戶機(jī)收到DHCP offer提供信息包后甸私,(如果客戶機(jī)在一段時(shí)間
內(nèi)沒有接收到DHCP服務(wù)器發(fā)出dhcp offer包诚些,則會(huì)重新
發(fā)送dhcp discover。如果廣播區(qū)域內(nèi)不止一臺(tái)dhcp服務(wù)器颠蕴,
則由客戶機(jī)決定使用哪個(gè))客戶機(jī)選擇第一個(gè)接收到的提供信息包,
以廣播的方式再發(fā)送一個(gè)DHCP request請(qǐng)求信息包助析,
客戶機(jī)向服務(wù)器請(qǐng)求IP地址犀被。
#4. 第四步提供IP地址確認(rèn)
服務(wù)端收到客戶機(jī)回應(yīng)的DHCP request 請(qǐng)求信息包之后,便向
客戶機(jī)發(fā)送一個(gè)DHCP ack 確認(rèn)信息包外冀,告訴客戶機(jī)可以使用
它提供的IP地址寡键。
#5. 第五步重新登陸
以后DHCP客戶機(jī)每次使用此IP地址時(shí),就不需要再發(fā)送DHCP discovery包了雪隧,
而是直接發(fā)送一個(gè)包含前一次所分配的IP地址的DHCP request請(qǐng)求
信息西轩。當(dāng)DHCP服務(wù)器收到這一信息以后,它會(huì)繼續(xù)讓客戶機(jī)
使用此IP地址脑沿,并回答一個(gè)DHCP ack確認(rèn)信息藕畔。如果此IP地址
已無法再分配給原來的客戶機(jī)使用時(shí),則DHCP服務(wù)器給客戶機(jī)回答
一個(gè)DHCP nack否認(rèn)信息庄拇。當(dāng)原來的客戶機(jī)收到此DHCP nack否認(rèn)
信息后注服,它就必須重新發(fā)送DHCP discovery尋找信息來請(qǐng)求新的IP地址韭邓。
#6. 第六步更新租約
DHCP服務(wù)器向客戶機(jī)出租的IP地址都有一個(gè)租借期限,期滿后DHCP
服務(wù)器便會(huì)收回出租的IP地址溶弟。如果客戶機(jī)要延長(zhǎng)其IP租約女淑,必須
更新其IP租約」加客戶機(jī)啟動(dòng)時(shí)和IP租約期限過一半時(shí)鸭你,
客戶機(jī)都會(huì)自動(dòng)向DHCP服務(wù)器發(fā)送更新其IP租約的信息。
  1. 安裝 dhcp
dnf install -y dhcp
  1. 配置擒权、測(cè)試 DHCP
# vim /etc/dhcp/dhcpd.conf

# dhcpd.conf
# 設(shè)置租時(shí)間袱巨、最大租時(shí)間
default-lease-time 600;
max-lease-time 7200; 
# 定義域名
option domain-name "XXXXX"
# 定義地址池的子網(wǎng)和掩碼、定義地址池的大小
subnet 10.1.255.0.0 netmast 255.255.255.0 {
    range 10.1.255.10 10.1.255.100;
# 定義引導(dǎo)服務(wù)器菜拓,即tftp服務(wù)器的引導(dǎo)文件和tftp服務(wù)器地址
# 注意此處的 filename 是有針對(duì)性的瓣窄,此處的文件只是基于 linux-X86的架構(gòu)有效
    
}

簡(jiǎn)便的方式是設(shè)置靜態(tài) IP、指定 IP 地址與子網(wǎng)掩碼纳鼎、關(guān)閉防火墻俺夕、重啟 DHCP 服務(wù)

# 設(shè)置靜態(tài) IP 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROT=static
IPADDR=192.168.1.200
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes

# 配置 DHCP 服務(wù)器
ddns-update-style interim;
allow booting;
allow bootp;
next-server 192.168.1.200;
filename "vmlinuz";

default-lease-time 1800;
max-lease-time 7200;
ping-check true;

subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.210 192.168.1.230;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
}

# 關(guān)閉防火墻、重啟 DHCP 服務(wù)
systemctl stop firewalld
systemctl restart dhcp
# 或者重啟 NetworkManager 服務(wù)贱鄙,重啟網(wǎng)絡(luò)服務(wù)系統(tǒng)也會(huì)重新從 DHCP 服務(wù)器重新獲取 IP
  1. 服務(wù)端與客戶端的測(cè)試
#1. 服務(wù)器端:
# 在服務(wù)器上監(jiān)聽日志:tail -f /var/log/messages

#2. 客戶端:
# 打開兩個(gè) terminal 去顯示網(wǎng)絡(luò)信息與時(shí)實(shí)日志信息
# 重啟網(wǎng)絡(luò):systemctl restart NetworkManager
# 監(jiān)聽日志:tail -f /var/log/messages
# 查看網(wǎng)關(guān):route  -n  |  grep  UG
#查看路由: cat  /etc/resolv.conf
  1. 配置好DHCP后劝贸,檢查、測(cè)試網(wǎng)絡(luò)是否通
#1 使用ifconfig觀察本地網(wǎng)絡(luò)設(shè)置是否正確
#2 ping 127.0.0.1來檢查本地的TCP/IP協(xié)議有沒有設(shè)置好
ping 127.0.0.1ping的通說明tcp協(xié)議棧沒有問題

#3 ping本機(jī)IP地址逗宁,這樣是為了檢查本機(jī)的IP地址是否設(shè)置有誤
ping 主機(jī)地址 ping的通說明網(wǎng)卡沒有問題

#4 ping本網(wǎng)網(wǎng)關(guān)或本網(wǎng)IP地址來檢查硬件設(shè)備或者本地網(wǎng)絡(luò)是否正常,ping的通說明包可以到達(dá)路由器
ping 192.168.1.255

#5 ping本地DNS地址映九,這樣做是為了檢查DNS是否能夠?qū)P正確解析
ping localhost

#6 ping遠(yuǎn)程IP地址,這主要是檢查本網(wǎng)或本機(jī)與外部的連接是否正常
  • 可能出現(xiàn)的問題 ping IP :“Destination Host Unreachable”
1瞎颗、 局域網(wǎng)使用DHCP動(dòng)態(tài)分配IP地址時(shí)件甥,DHCP出現(xiàn)故障或者失敗
2、 子網(wǎng)掩碼設(shè)置錯(cuò)誤
3哼拔、 路由表返回錯(cuò)誤信息
  • 重啟網(wǎng)卡: systemctl restart network
  • 關(guān)閉 selinux
# 臨時(shí)關(guān)閉selinux:
setenforce 0
# 永久關(guān)閉selinux:
vim  /etc/selinux/config
SELINUX=disabled   # 將enforcing改為disabled
reboot             # 重啟系統(tǒng)永久生效

三. 部署 NFS 服務(wù)器

  1. NFS 運(yùn)行機(jī)制

NFS是Network File System的縮寫引有,即網(wǎng)絡(luò)文件系統(tǒng),一種用于分散式文件系統(tǒng)的協(xié)定倦逐,功能作用是通過網(wǎng)絡(luò)讓不同的機(jī)器譬正、不同的操作系統(tǒng)能夠彼此分享個(gè)別的數(shù)據(jù)。讓應(yīng)用程序在客戶端通過網(wǎng)絡(luò)訪問位于服務(wù)器磁盤中的數(shù)據(jù)檬姥,是在類Unix間實(shí)現(xiàn)磁盤文件共享的一種方法曾我。

  1. RPC 介紹

RPC是Remote Procedure Call,即遠(yuǎn)程過程調(diào)用健民,是能使客戶端執(zhí)行其他系統(tǒng)中程序的一種機(jī)制抒巢。NFS在文件傳送或信息傳送過程中依賴于RPC協(xié)議,NFS本身是沒有信息傳輸?shù)膮f(xié)議和功能秉犹,但NFS可以通過網(wǎng)絡(luò)進(jìn)行資料的分享虐秦,這是因?yàn)镹FS使用了RPC的功能平酿。

  1. NFS 與 RPC 關(guān)系

可以說NFS本身就是使用RPC的一個(gè)程序,或者說NFS也是一個(gè) RPC SERVER悦陋,所以只要用到NFS的環(huán)境系統(tǒng)蜈彼,不論是NFS SERVER還是NFS CLIENT都要開啟RPC服務(wù)(通俗的理解其關(guān)系:NFS是一個(gè)文件系統(tǒng),而RPC是負(fù)責(zé)信息的傳輸)俺驶。

  • 安裝幸逆、配置基礎(chǔ)環(huán)境
# 安裝 nfs rpc
dnf install nfs-ttils rpcbind
# 關(guān)閉防火墻
systemctl stop firewalld #防止防火墻開機(jī)自起:disable
# 關(guān)閉 selinux
setenforce 0 #臨時(shí)關(guān)閉SELINUX
getenforce   #查看SELINUX是否關(guān)閉

  • 配置 NFS
cat > /etc/exports << "EOF"
/var/nfs *(ro,no_root_squash)
/var/bm *(rw,no_root_squash)
EOF
mkdir -pv /var/nfs
  1. 啟動(dòng) rpc、nfs服務(wù)
systemctl restart rpcbind
systemctl restart nfs-service
  1. 相關(guān)命令
  • export
-a 重新啟動(dòng)/etc/exports中的內(nèi)容 
-r 重新讀取/etc/exports 中的信息 暮现,并同步更新/etc/exports还绘、/var/lib/nfs/xtab
-u 卸載單一目錄(和-a一起使用為卸載所有/etc/exports文件中的目錄)
-v :在export的時(shí)候,將詳細(xì)的信息輸出到屏幕上栖袋。
  • showmount
-a 顯示已經(jīng)于客戶端連接上的目錄信息
-e IP或者h(yuǎn)ostname 顯示此IP地址分享出來的目錄
  • rpcinfo
查看rpc執(zhí)行信息拍顷,可以用于檢測(cè)rpc運(yùn)行情況的工具,利用rpcinfo -p 可以查看出RPC開啟的端口所提供的程序有哪些
  • selinux三種模式
enforcing ===>強(qiáng)制模式塘幅,SELinux已經(jīng)啟動(dòng)
permissive===>寬容模式昔案,SELinux已經(jīng)啟動(dòng),
             但不會(huì)禁止电媳,只是會(huì)提出警告信息
disabled  ===>關(guān)閉模式踏揣,關(guān)閉SELinux
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市匾乓,隨后出現(xiàn)的幾起案子捞稿,更是在濱河造成了極大的恐慌,老刑警劉巖拼缝,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娱局,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡咧七,警方通過查閱死者的電腦和手機(jī)衰齐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猪叙,“玉大人娇斩,你說我怎么就攤上這事仁卷⊙妫” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵锦积,是天一觀的道長(zhǎng)芒帕。 經(jīng)常有香客問我,道長(zhǎng)丰介,這世上最難降的妖魔是什么背蟆? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任鉴分,我火速辦了婚禮,結(jié)果婚禮上带膀,老公的妹妹穿的比我還像新娘志珍。我一直安慰自己,他們只是感情好垛叨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布伦糯。 她就那樣靜靜地躺著,像睡著了一般嗽元。 火紅的嫁衣襯著肌膚如雪敛纲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天剂癌,我揣著相機(jī)與錄音淤翔,去河邊找鬼。 笑死佩谷,一個(gè)胖子當(dāng)著我的面吹牛旁壮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播琳要,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼寡具,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了稚补?” 一聲冷哼從身側(cè)響起童叠,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎课幕,沒想到半個(gè)月后厦坛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乍惊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年杜秸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片润绎。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撬碟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出莉撇,到底是詐尸還是另有隱情呢蛤,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布棍郎,位于F島的核電站其障,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涂佃。R本人自食惡果不足惜励翼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一蜈敢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汽抚,春花似錦抓狭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膨蛮,卻和暖如春叠纹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敞葛。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工誉察, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惹谐。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓持偏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親氨肌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸿秆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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