他のネットワークのPXEサーバからDebianルータ経由で起動する

他のネットワークのPXEサーバからDebianルータ経由で起動する

あなたの助けが必要です。Debian 9.3.0 でネットワークをセットアップしました。

このプロジェクトの目標は、ネットワークBでクライアントを起動できるようにすることです。そこで、2つのNICを設定したルーターをセットアップして、

ネットワーク A:--------------DebianRouter:-------ネットワーク 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 open timeout」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 にマウントされており、これも SCCM によって管理されています。

ネットワーク B のクライアントには IP アドレスがないため、リレー エージェントは DHCP サーバーを使用する可能性があります。

私が望んでいるのは、彼が 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 は無効になっており、新しいネットワークに 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:

わかりました。ご協力ありがとうございました!

同じ問題を抱えている人(あなたが助けた人)の投稿を見つけました:

DnsMasq、DHCP プロキシ、UEFI クライアントの PXE に関する問題

私はそのように設定しようとしますが、1つ問題があります...ファイル名を知っている会社のメンバーが病気です...しかし、基本的に1つの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 ヘルパー サービスを有効にして、ネットワーク間で DHCP ブロードキャスト トラフィックを適切に転送します。

編集1:

PXE パラメータを使用して、PXE => TFTP サーバー + DHCP サーバーを提供します。次に、新しいネットワーク上に 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」パラメータで完了します。66/67 などの他の PXE 関連 DHCP オプションは避けてください。
  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/pxelinuxBIOS ブート PC およびefi64/syslinux.efi64 ビット UEFI ブート PC 用の NBP を提供します。特定のシナリオを考慮してパラメータを調整する必要があります。

関連情報