溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)下PXE服務(wù)器的詳細(xì)部署過程

發(fā)布時(shí)間:2021-08-05 21:52:02 來源:億速云 閱讀:175 作者:chen 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹“Linux系統(tǒng)下PXE服務(wù)器的詳細(xì)部署過程”,在日常操作中,相信很多人在Linux系統(tǒng)下PXE服務(wù)器的詳細(xì)部署過程問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux系統(tǒng)下PXE服務(wù)器的詳細(xì)部署過程”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

在大規(guī)模安裝服務(wù)器時(shí),需要批量自動(dòng)化方法來安裝服務(wù)器,來減少日常的工作量.
但是批量自動(dòng)化安裝服務(wù)器的基礎(chǔ)是網(wǎng)絡(luò)啟動(dòng)服務(wù)器(bootserver).
下面我們就介紹一下 網(wǎng)絡(luò)啟動(dòng)服務(wù)器的 安裝和配置方法,供大家實(shí)踐之用!
1. 本文用到的術(shù)語解釋
PXE
PXE(Pre-boot Execution Environment)是由Intel設(shè)計(jì)的協(xié)議,它可以使計(jì)算機(jī)通過網(wǎng)絡(luò)而不是從本地硬盤、光驅(qū)等設(shè)備啟動(dòng)。現(xiàn)代的網(wǎng)卡,一般都內(nèi)嵌支持PXE的ROM芯片。當(dāng)計(jì)算機(jī)引導(dǎo)時(shí),BIOS把PXE client調(diào)入內(nèi)存執(zhí)行,并顯示出命令菜單,經(jīng)用戶選擇后,PXE client將放置在遠(yuǎn)端的操作系統(tǒng)通過網(wǎng)絡(luò)下載到本地運(yùn)行.
DHCP
DHCP(Dynamic Host Control Protocol) 動(dòng)態(tài)主機(jī)控制協(xié)議.用于集中、動(dòng)態(tài)的給客戶機(jī)分配IP地址.
TFTP
TFTP(trivial file transfer protocol),一種開銷很小的文件傳輸協(xié)議,語法類似ftp.因簡(jiǎn)單、高效,常用于網(wǎng)絡(luò)設(shè)備的OS和配置更新.
2. PXE 原理
2.1. PXE Client Api (架構(gòu))
Linux系統(tǒng)下PXE服務(wù)器的詳細(xì)部署過程

圖 PXE API架構(gòu)圖。(圖片來源:PXE Specification Version 2.1)
上圖說明: 當(dāng)BIOS把PXE Client載入記憶體,此時(shí)便具有DHCP Client及TFTP Client的能力。
PXE Client具備DHCP Client能力,可以透過DHCP Server來取得IP位址。
PXE Client具備TFTP Client能力”,可通過TFTP來下載kernel image等文件。
2.2. PXE啟動(dòng)流程圖(pxe boot)
Linux系統(tǒng)下PXE服務(wù)器的詳細(xì)部署過程

上圖啟動(dòng)流程說明如下:
PXE Client 向 UDP 67端口 廣播 DHCPDDISCOVER 消息.
DHCP SERVER 或者 DHCP Proxy 收到廣播消息后,發(fā)送DHCPOFFER(包含ip地址)消息 到 PXE Client的 68 端口.
PXE Client 發(fā)送 DHCPREQUEST 消息到 DHCP SERVER ,獲取啟動(dòng)文件(boot file name).
DHCP SERVER 發(fā)送DHCPACK(包含Network Bootstrap Program file name)消息 到PXE Client.
PXE Client 向 Boot Server 獲取 NBP(Network Bootstrap Program) 文件.
PXE Client 從TFTP SERVER 下載 NBP,然后在客戶端執(zhí)行NBP文件
注意: 在NBP執(zhí)行初始化后,NBP會(huì)按照自己默認(rèn)的方式從TFTP SERVER中下載其他所需的配置文件.
這個(gè)時(shí)候 PXE 啟動(dòng)流程已經(jīng)完成了,剩下的工作都是有NBP來執(zhí)行完成的.
例如: pxelinux.0(NBP) 他會(huì)下載 default 配置文件,來顯示菜單,根據(jù)需要啟動(dòng)不同的kernel image.
如果是RIS(window安裝)的NBP,會(huì)啟動(dòng) Windows boot loader 來執(zhí)行安裝部署widows任務(wù).
3. PXE BOOT Server 配置過程
以下配置和測(cè)試 都是在 Centos5 上完成的,其他系統(tǒng)請(qǐng)酌情參考!
3.1. DHCP的安裝與配置
在PXE引導(dǎo)過程中,PXE Client通過DHCP Server 獲取ip地址,NBP文件名稱,然后從TFTP SERVER 下載NBP文件并在客戶端執(zhí)行,從而啟動(dòng)計(jì)算機(jī)。
請(qǐng)確認(rèn)系統(tǒng)中安裝 dhcp 軟件包
編輯 /etc/dhcpd.conf 配置文件,配置文件內(nèi)容如下

代碼如下:


 [root@linux]# cat /etc/dhcpd.conf
 ddns-update-style interim;
 allow booting;     #定義能夠PXE啟動(dòng)
 allow bootp;     #定義支持bootp
 next-server 192.168.0.1;   #TFTP Server的IP地址
 filename "pxelinux.0";   #bootstrap 文件(NBP)
 
 default-lease-time 1800;
 max-lease-time 7200;
 ping-check true;
 option domain-name-servers 192.168.0.1;
 
 subnet 192.168.0.0 netmask 255.255.255.0
 {
  range 192.168.0.128 192.168.0.220;
  option routers 192.168.0.1;
  option broadcast-address 192.168.0.255;
 }


注意:在 /etc/dhcpd.conf 配置文件中 filename "pxelinux.0"; 文件目錄是相對(duì)于 tftp 的根目錄(默認(rèn)是 /tftpboot),
所以文件的絕對(duì)路徑就是: /tftpboot/pxelinux.0";當(dāng)然也可以指定為其它的路徑.
配置完成后,重啟DHCP服務(wù),并將它設(shè)為開機(jī)自啟動(dòng)

代碼如下:


 [root@linux]# /etc/init.d/dhcpd start
 啟動(dòng) dhcpd:                                               [確定]
 [root@linux]# chkconfig --level 35 dhcpd on


3.2. 安裝配置TFTP服務(wù)器
在PXE引導(dǎo)過程中,PXE Client 使用TFTP協(xié)議從TFTP服務(wù)器下載bootstrap文件并執(zhí)行.
請(qǐng)確認(rèn)系統(tǒng)中安裝 tftp-server 軟件包
配置tftp服務(wù),tftp 服務(wù)由xinetd服務(wù)管理
編輯 /etc/xinetd.d/tftp 文件,將 disable = yes 改為:disable = no .配置文件內(nèi)容如下:

代碼如下:


 [root@linux]# cat  /etc/xinetd.d/tftp
 # default: off
 # description: The tftp server serves files using the trivial file transfer \
 #       protocol.  The tftp protocol is often used to boot diskless \
 #       workstations, download configuration files to network-aware printers, \
 #       and to start the installation process for some operating systems.
 # default: off
 # description: The tftp server serves files using the trivial file transfer \
 # protocol.  The tftp protocol is often used to boot diskless \
 # workstations, download configuration files to network-aware printers, \
 # and to start the installation process for some operating systems.
 service tftp
 {
  socket_type  = dgram
  protocol  = udp
  wait   = yes
  user   = root
  server   = /usr/sbin/in.tftpd
  server_args  = -s /tftpboot
  disable   = no
  per_source  = 11
  cps   = 100 2
  flags   = IPv4
 }


注意:TFTP服務(wù)器的根目錄是 /tftpboot,配置完成后重啟xinetd服務(wù),使TFTP服務(wù)器生效.

代碼如下:


 [root@linux]# /etc/init.d/xinetd restart


bootstrap 文件配置 (NBP),這里使用 pxelinux.0
bootstrap文件由syslinux軟件包提供,我們只要安裝了syslinux,將 pxelinux.0 這個(gè)文件復(fù)制到 /tftpboot 目錄即可:

代碼如下:


 [root@linux]# rpm -ql syslinux | grep "pxelinux.0"
 /usr/lib/syslinux/pxelinux.0
 [root@linux]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/


配置 pxelinux.0(NBP) 使用的配置文件
接下來創(chuàng)建/tftpboot/pxelinux.cfg/ 目錄,該目錄用于存放客戶端的配置文件

代碼如下:


 [root@linux]# mkdir /tftpboot/pxelinux.cfg


默認(rèn)配置文件default,文件內(nèi)容如下、

代碼如下:


 [root@linux]# cat /tftpboot/pxelinux.cfg/default
 
 default linux  # 默認(rèn)啟動(dòng)的是 'label linux' 中標(biāo)記的啟動(dòng)內(nèi)核
 prompt 1       # 顯示 'boot: ' 提示符
 timeout 60       # 等待超時(shí)時(shí)間,單位為 1/10 秒,超時(shí)后自動(dòng)啟動(dòng) 默認(rèn)指定的label    
 display boot.msg # 顯示boot.msg的內(nèi)容,文件路徑是相對(duì)tftp server 的根目錄(默認(rèn) /tftpboot),所以boot.msg文件絕對(duì)路徑在 /tftpboot/boot.msg .
 F1 boot.msg    # 按下'F1' 鍵后顯示的文件
 F2 options.msg
 F3 general.msg
 F4 param.msg
 F5 rescue.msg
 
 label  1    # 'label' 指定你在 'boot:' 提示符下輸入的關(guān)鍵字。
 kernel linux/rh54-x86-32/vmlinuz
 append initrd=linux/rh54-x86-32/initrd.img ramdisk_size=8192  ks=http://install.test.com/conf/ks_module.cfg ksdevice=link
 
 label  2
 kernel linux/rh54-x86-64/vmlinuz
 append initrd=linux/rh54-x86-64/initrd.img ramdisk_size=8192  ks=http://install.test.com/conf/ks_module.cfg ksdevice=link
 
 label  3
 kernel linux/rh56-x86-64/vmlinuz
 append initrd=linux/rh56-x86-64/initrd.img ramdisk_size=8192  ks=http://install.test.com/conf/ks_module.cfg ksdevice=link
 
 label  4
 kernel linux/rh56-x86-32/vmlinuz
 append initrd=linux/rh56-x86-32/initrd.img ramdisk_size=8192  ks=http://install.test.com/conf/ks_module.cfg ksdevice=link
 
 label  5
 kernel image/linux/rh48-x86-32/vmlinuz
 append initrd=image/linux/rh48-x86-32/initrd.img ramdisk_size=8192  ks=http://install.test.com/conf/ks_module.cfg ksdevice=link
 
 label  6
 kernel linux/rh48-x86-64/vmlinuz
 append initrd=linux/rh48-x86-64/initrd.img ramdisk_size=8192  ks=http://install.test.com/conf/ks_module.cfg ksdevice=link


注意事項(xiàng): 默認(rèn) pxelinux.0 和 pxelinux.cfg 一定要在同一個(gè)目錄下
3.3. pxelinx.0(NBP)程序配置文件搜索順序
由于多個(gè)客戶端可以從一個(gè)PXE服務(wù)器引導(dǎo),PXE引導(dǎo)映像使用了一個(gè)復(fù)雜的配置文件搜索方式來查找針對(duì)客戶機(jī)的配置文件.
假設(shè) 客戶端服務(wù)器的網(wǎng)卡的MAC地址為 88:99:AA:BB:CC:DD ,對(duì)應(yīng)的IP地址為192.168.1.195,那么客戶端的pxelinux.0 程序 搜索順序如下:
首先以MAC地址為文件名匹配的配置文件,如果不存在,繼續(xù)查找.
其次以IP地址來查找.根據(jù)IP地址16進(jìn)制命名的配置文件查找,從小范圍到打大分為查找(子網(wǎng)掩碼由小到大),如果不存在,繼續(xù)查找.
最后嘗試default文件
總體來說,pxelinux.0 搜索的文件的順序是(可以通過tcpdum得到結(jié)果):

代碼如下:


 /tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd
 /tftpboot/pxelinux.cfg/C0A801C3
 /tftpboot/pxelinux.cfg/C0A801C
 /tftpboot/pxelinux.cfg/C0A801
 /tftpboot/pxelinux.cfg/C0A80
 /tftpboot/pxelinux.cfg/C0A8
 /tftpboot/pxelinux.cfg/C0A
 /tftpboot/pxelinux.cfg/C0
 /tftpboot/pxelinux.cfg/C
 /tftpboot/pxelinux.cfg/default


到此,關(guān)于“Linux系統(tǒng)下PXE服務(wù)器的詳細(xì)部署過程”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI