从另一个网络中的 PXE 服务器通过 Debian 路由器启动

从另一个网络中的 PXE 服务器通过 Debian 路由器启动

我需要你的帮助。我使用 Debian 9.3.0 设置了一个网络。

这个项目的目标是,我可以在网络 B 中启动客户端。因此,我设置了一个带有 2 个 NIC 的路由器,并将它们配置为

网络 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 中的 filenameoption,

下一个服务器选项仍在配置中。

但是现在,如果我想在网络 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-Network”中的 DHCP 被禁用,我在新网络上安装了 dhcp-relay,conf:

# 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 服务选项?

因为这个家伙得到它是这样的: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 帮助程序服务,以便在网络之间正确转发 DHCP 广播流量。

编辑1:

提供 PXE => TFTP 服务器 + DHCP 服务器以及 PXE 参数。然后您必须确保您没有 2 个 PXE 服务器;1) SCCM 2) 新网络上的 DHCP 服务器。

如果您只想使用 SCCM 中的 TFTP 服务,那么您必须停止其 DHCP 服务,然后在新网络上添加 DHCP 服务器。

如果 DHCP 流量不需要跨越路由器边界(即 DHCP 服务器位于新的网络段上),那么您不必启动 IP 帮助服务。

编辑2:

  1. 如果 DHCP 服务器直接为 10.5.200.0 子网提供服务,则应避免使用 IP 助手
  2. PXE DHCP 配置已包含“next-server”和“filename”参数,只需避免其他 PXE 相关的 DHCP 选项(如 66/67 等)。
  3. 仅通过更改 DHCP 服务器不会获得更好的结果。
  4. 获取 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.efi64 位 UEFI 启动 PC 提供 NBP。您必须根据具体情况调整参数。

相关内容