預啟動執行環境(PXE,有時發音為精靈)
PXE或網路引導允許BIOS通過網路下載和引導作業系統(OS)。在Cisco NX-OS路由器中,這相當於啟動載入器[loader>],也就是Kickstart。
在PXE引導中,PXE客戶端的BIOS檢視配置的引導順序,如果配置了PXE引導,則確定硬體是否支援PXE引導。如果是,它會嘗試通過DHCP從網絡卡獲取IP地址。在DHCP請求中,PXE客戶端請求某些DHCP選項,例如67 [檔名]。在DHCP應答中,DHCP伺服器使用請求的選項進行應答。然後,PXE客戶端下載在DHCP響應中指定的檔名[網路載入程式(NBP)],並運行該檔名以使作業系統載入到伺服器上。
將PXE客戶端重定向到其他TFTP伺服器
預設情況下,PXE客戶端將嘗試TFTP從DHCP伺服器的DHCP響應中下載檔名,除非它從DHCP響應中收到選項66、next-server或選項60/43,將其重定向到其他IP地址。bootp和PXE中使用下一個伺服器地址來指定將不同的伺服器用於DHCP和TFTP。
next-server(選項12)和bootfile(選項0)DHCP選項通常指定初始引導載入程式的TFTP伺服器和檔名。客戶端可以選擇使用Bootfile在DHCPDISCOVER消息中請求特定型別的引導檔案。DHCP伺服器在DHCPOFFER中使用它來完全指定引導檔案目錄路徑和檔名。
還必須為檔名指定選項67。bootfile與選項67之間的區別在於DHCP響應中找到的檔名的位置。使用保留欄位時,響應在響應資料包的Options部分不編號,而是按特定順序提供。
例如,伺服器主機名和引導檔案顯示在下圖中的編號選項之前。
重要故障排除說明
如果PXE引導客戶端沒有在DHCP請求資料包中的選項55引數請求清單中請求特定DHCP選項,則即使在DHCP伺服器上配置了DHCP選項,該DHCP選項也不會在DHCP伺服器響應資料包中。獲得監聽器追蹤軌跡以驗證所請求和給定的選項非常重要。
附註:如果為DHCP伺服器的DHCP ip幫助地址(DHCP中繼)配置了ACI,則可以在第一跳枝葉交換機上使用tcpdump。由於枝葉交換機必須充當DHCP中繼,因此CPU必須處理DHCP資料包並將其轉發到DHCP伺服器。您可以使用管理員帳戶登入並使用命令
tcpdump -i any -w /tmp/packet.pcap "埠67"
捕獲主機和DHCP伺服器之間的DHCP資料包。如果枝葉交換機沒有任何OOB IP地址,您可以通過使用admin使用者名稱登入apic並使用
scp admin@<switch TEP>:/tmp/packet.pcap /home/admin
然後,可以使用GUI IP地址將檔案從APIC傳輸。
根據PXE伺服器支援的內容,可以有許多不同的檔名。Linux伺服器最常見的啟動載入程式檔名稱為"/pxelinux.0",通常位於/tftpboot目錄中。
可能用於PXE引導的DHCP選項
名稱 |
選項# |
組態 |
引導檔案 |
0 |
Bootfile <file> |
DEFAULT_ROUTER |
3 |
Default-router 10.250.118.1 |
網路 |
11 |
網路10.250.118.0 255.255.255.0 |
NEXT_SERVER |
12 |
Next-server 10.45.67.8 |
使用匹配選項60傳送 |
43 |
選件43 hex 06010708070000010afbd015 |
選項43的匹配字串 |
60 |
選項60「PXEClient」 |
單個TFTP伺服器 |
66 |
選項66 ip 10.240.221.21 |
PXE檔名 |
67 |
選項67「/pxelinux.0」 |
TFTP伺服器清單 |
150 |
選項150 10.240.208.21 |
如果DHCP伺服器將其選項60字串與客戶端傳送的選項60字串相匹配,則選項43將返回給PXE客戶端。選項43有幾個升序子選項(選項6和選項8等):
子選項6定義為
06:子選項6
01:1位元組長
07:使用PXE_BOOT_SERVERS清單,禁用組播和廣播發現(僅單播)
子選項8定義為
08:子選項8
07:08選項的大小(位元組)
0000:PXE伺服器型別0(PXE引導伺服器)
01:pxe伺服器數量
0afbd015:10.251.208.21
在DHCP配置中,該選項如下所示
選項43 hex 06010708070000010afbd015
根據https://support.microsoft.com/en-us/kb/259670,當DHCP伺服器設定了以下選項時:
60 =客戶端識別符號(設定為「PXEClient」)
66 =引導伺服器主機名或IP地址
67 =引導檔名
並且,當DHCP伺服器的初始DHCP提供包含這些引導選項時,會嘗試從PXE客戶端連線到DHCP伺服器上的埠4011,並發生錯誤「代理DHCP服務未回覆埠4011」。
附註:Microsoft不支援在DHCP伺服器上使用這些選項來重定向PXE客戶端。
客戶拓撲
在此示例中,使用者有2個不同的ACI交換矩陣。在ACI交換矩#1配置中,PXE客戶端通過DHCP運行,並從交換矩陣內的Microsoft伺服器啟動。在其他ACI交換矩陣中,PXE客戶端通過L3Out從外部IOS-XE 4507路由器上DHCP關閉,但使用同一Microsoft伺服器下載檔案,因此DHCP伺服器沒有充當TFTP伺服器。
客戶最終採用的解決方案是遷移到linux DHCP伺服器。分析DHCP資料包跟蹤時,客戶似乎錯誤配置了選項43字串,而IOS-XE DHCP伺服器從未正常工作。
要使其在ACI中正常工作,請執行以下操作:
- 必須配置DHCP中繼以中繼DHCP客戶端資料包
- 合約必須允許PXE客戶端所在的L3Out和EPG之間的DHCP和TFTP資料包
使用命令,您可能會看到TFTP資料包在枝葉交換機上的合約丟棄
calo2-leaf2# show logging ip access-list internal packet-log | grep <client ip address>
此命令將在2.0版中更改,以新增deny或permit關鍵字,並變成
calo2-leaf2# show logging ip access-list internal packet-log deny | grep <client ip address>
在該示例中,PXE客戶端不是請求選項66,而是指定選項60並在選項55引數清單中請求選項43。它還請求下一伺服器(選項12)。 注意,它通過選項67請求PXE檔名。
響應顯示引導檔案和選項67
枝葉交換機上的TCPdump: