我需要你的幫助。我使用 Debian 9.3.0 設定了網路。
這個專案的目標是我可以啟動網路 B 中的客戶端。
網路 A:------------Debian 路由器:--------網路 B
40.4.200.0/24----------10.5.200.254/24-----10.5.200.0/24
dhcp.conf-->
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
#test
#Member Network A
auto enp0s25
iface enp0s25 inet static
address 40.4.200.252
netmask 255.255.255.0
gateway 40.4.200.254
#My NEW NETWORK B
auto enp16s0
iface enp16s0 inet static
address 10.5.200.254
netmask 255.255.255.0
之後我將設定 isc-dhcp-server 並對其進行設定 DHCP 也獲得了 10.5.200.254。
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
INTERFACES="enp16s0";
ddns-update-style none;
option domain-name "peoplenetde.org";
option domain-name-servers 40.4.200.202, 172.29.1.10;
default-lease-time 86400 ;
max-lease-time 172800;
authoritative;
log-facility local7;
#option 66
option tftp-server-name "40.4.200.218";
#option67
option bootfile-name "smsboot\x64\wdsmgfw.efi";
allow booting;
allow bootp;
subnet 10.5.200.0 netmask 255.255.255.0 {
option domain-name-servers 40.4.200.202, 179.29.1.10;
option broadcast-address 10.5.200.255;
option subnet-mask 255.255.255.0;
option routers 10.5.200.254;
range 10.5.200.100 10.5.200.200;
group {
next-server 40.4.200.218;
filename "smsboot\x64\wdsmgfw.efi";
host ubuntu {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address 10.5.200.10; }
}
}
所以我想在連接中繼代理之前先使用文件名執行此操作。
它不起作用,每次“PXE-E32:tftp打開超時”iptables -L 都告訴我一切都是允許的。
經過大量研究仍然不行,我直接用中繼代理嘗試了。
但從網路 B 中的客戶端對網路 A 中的 PXE 伺服器執行 ping 操作成功。
所以我決定交給中繼代理。
我將伺服器IP設定為(40.4.200.218)並將介面enp16s0設定為預設值
conf文件,並刪除dhcp.conf中的filename選項,
下一個伺服器選項仍在配置中。
但現在,如果我想在網路 B 的客戶端上的任何地方進行 ping 操作,它會顯示網路無法存取。
如果我想透過網路啟動,則會發生錯誤:PXE-E52:已收到 proxyDHCP 優惠。沒有收到 DHCP 優惠,我不知道該怎麼辦。
如果您需要任何配置或其他任何東西,只需寫下它,我就會發布它。希望你能幫我
順便說一句,PXE/tftp安裝在SCCM上,也由他管理。
也許中繼代理會使用任何 DHCP 伺服器,因為網路 B 中的用戶端不再有任何 IP 位址。
我不想要什麼,我只想要他轉寄 BOOTP。
編輯 2:2018 年 2 月 27 日
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
INTERFACES="enp16s0";
option domain-name "Debiann.com";
option domain-name-servers 10.5.200.254;
default-lease-time 86400 ;
max-lease-time 172800;
authoritative;
log-facility local7;
#option 66
option tftp-server-name "40.4.200.218";
#option67
allow booting;
allow bootp;
subnet 10.5.200.0 netmask 255.255.255.0 {
option domain-name-servers 10.5.200.254;
option broadcast-address 10.5.200.255;
option subnet-mask 255.255.255.0;
group {
next-server 40.4.200.218;
host ubuntu {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address 10.5.200.10; }
}
}
因此「SCCM-網路」中的 DHCP 被停用,我在新網路 conf 上安裝了 dhcp-relay :
# Defaults for isc-dhcp-relay initscript
# sourced by /etc/init.d/isc-dhcp-relay
# installed at /etc/default/isc-dhcp-relay by the maintainer scripts
#
# This is a POSIX shell fragment
#
# What servers should the DHCP relay forward requests to?
SERVERS="40.4.200.218"
# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests?
INTERFACES="enp16s0"
# Additional options that are passed to the DHCP relay daemon?
OPTIONS=""
如果我啟動 PC 按 F12 進行網路啟動:它沒有獲得 DHCP,所以我變成:
PXE-E53: No boot filename received
然後我返回 dhcp.conf 並再次添加帶有檔案名稱的 2 參數,所以我的conf現在是:
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
INTERFACES="enp16s0";
option domain-name "Debiann.com";
option domain-name-servers 10.5.200.254;
default-lease-time 86400 ;
max-lease-time 172800;
authoritative;
log-facility local7;
#option 66
option tftp-server-name "40.4.200.218";
#option67
option bootfile-name "smsboot\x64\wdsmgfw.efi";
allow booting;
allow bootp;
subnet 10.5.200.0 netmask 255.255.255.0 {
option domain-name-servers 10.5.200.254;
option broadcast-address 10.5.200.255;
option subnet-mask 255.255.255.0;
group {
next-server 40.4.200.218;
filename "smsboot\x64\wdsmgfw.efi";
host ubuntu {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address 10.5.200.10; }
}
}
現在我又變成了:PXE-E32:TFTP開啟超時。
編輯3:
好的,非常感謝您的幫忙!
我發現一個有相同問題的人的貼文(你幫助過的人):
UEFI 用戶端的 DnsMasq、DHCP 代理程式、PXE 問題
我會嘗試這樣配置它,但有一個問題...我們公司現在負責文件名的那個人生病了...但基本上我會有一個 dhcp-boot 選項,即
dhcp-boot=smsboot\x64\wdsmgfw.efi,MUCSVCM01,40.4.200.218
還有你剛剛告訴我的 3 個 pxe-service 選項?
因為這裡的這個人是這樣的:https://forums.fogproject.org/topic/8677/dnsmasq-bios-and-uefi
我的最終 dnsmasq.conf 將是這樣的,因為其他人有 verndorclasses 和更多 dhcp-boot 選項?
interface=enp16s0
listen-address=127.0.0.1
listen-address=10.5.200.254
local=/debrou.com/
expand-hosts
domain=debrou.com
dhcp-range=10.5.200.100,10.5.200.200,48h
dhcp-option=option:router,10.5.200.254
dhcp-option=19,1
dhcp-authoritative
dhcp-boot=smsboot\x64\wdsmgfw.efi,MUCSVCM01,40.4.200.218
# PXEClient:Arch:00000
pxe-service=X86PC, "Boot BIOS PXE", smsboot\x64\wdsmgfw,
# PXEClient:Arch:00007
pxe-service=BC_EFI, "Boot UEFI PXE-BC", smsboot\x64\wdsmgfw.efi
# PXEClient:Arch:00009
pxe-service=X86-64_EFI, "Boot UEFI PXE-64", smsboot\x64\wdsmgfw.efi
所以我用另一台筆記型電腦嘗試了這個(有uefi)同樣的錯誤(NBP太大)
檢查了 BIOS,它也在舊版上關閉了舊版,再次嘗試,但它甚至沒有進入啟動過程(它是 HP 430 G4),其他人也有這個問題,所以我認為這不是配置錯誤。
答案1
如果 PXE 和 TFTP 由 SCCM 處理,那麼您將建立與 DHCP 設定相衝突的新 PXE 伺服器。
定義 SCCM 是否確實提供 PXE/DHCP 服務,如果是這種情況,請將新網路新增至工作 DHCP 伺服器並在路由器上啟用 IP Helper 服務,以便在網路之間正確轉送 DHCP 廣播流量。
編輯1:
提供 PXE => TFTP 伺服器 + DHCP 伺服器以及 PXE 參數。然後你必須確保你沒有 2 台 PXE 伺服器; 1) SCCM 2) 新網路上的 DHCP 伺服器。
如果您只想使用 SCCM 的 TFTP 服務,則必須停止其 DHCP 服務,然後在新網路上新增 DHCP 伺服器。
如果 DHCP 流量不需要跨越路由器邊界(即 DHCP 伺服器位於新網段),則您不必啟動 IP 幫助程式服務。
編輯2:
- 如果 DHCP 伺服器直接為 10.5.200.0 子網路提供服務,則應避免使用 IP Helpers
- PXE DHCP 設定包含「下一個伺服器」和「檔案名稱」參數,只需避免其他 PXE 相關的 DHCP 選項,如 66/67 等。
- 僅透過更改 DHCP 伺服器不會獲得更好的結果。
- 取得 Wireshark 流量擷取並在封包層級查看用戶端真正從 DHCP 伺服器取得的內容。
編輯3:
啟用 PXE 的 DHCP 伺服器必須解析啟動時聲明的 PXE 架構,並相應地提供對應的 NBP。即 Dnsmasq
# PXEClient:Arch:00000
pxe-service=X86PC, "Boot BIOS PXE", bios/pxelinux
# PXEClient:Arch:00007
pxe-service=BC_EFI, "Boot UEFI PXE-BC", efi64/syslinux.efi
# PXEClient:Arch:00009
pxe-service=X86-64_EFI, "Boot UEFI PXE-64", efi64/syslinux.efi
在此範例中,我們bios/pxelinux
為 BIOS 開機 PC 和efi64/syslinux.efi
64 位元 UEFI 開機 PC 提供 NBP。您必須考慮您的特定場景來調整參數。