다른 네트워크의 PXE SERVER에서 Debian 라우터를 통해 부팅

다른 네트워크의 PXE SERVER에서 Debian 라우터를 통해 부팅

당신의 도움이 필요해요. Debian 9.3.0으로 네트워크를 설정했습니다.

이 프로젝트의 목표는 네트워크 B에서 클라이언트를 부팅할 수 있는 것입니다. 그래서 NIC 2개로 구성된 라우터를 설정했습니다.

네트워크 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-Server로의 ping은 성공했습니다.

그래서 중계 에이전트에게 넘기기로 했어요.

나는 서버 IP를 (40.4.200.218)에 넣고 인터페이스 enp16s0을 기본값으로 설정했습니다.

conf 파일을 삭제하고 dhcp.conf에서 파일 이름 옵션을 삭제했습니다.

다음 서버 옵션은 아직 구성에 있습니다.

하지만 이제 네트워크 B의 클라이언트 어디에서나 ping을 실행하려면 네트워크에 연결할 수 없다는 메시지가 나타납니다.

그리고 네트워크를 통해 부팅하려는 경우 오류:PXE-E52: ProxyDHCP 제안이 수신되었습니다. DHCP 제안을 받지 못했습니다. 어떻게 해야 할지 모르겠습니다..

conf가 필요하거나 뭐든지 작성하면 게시하겠습니다. 당신이 나를 도울 수 있기를 바랍니다

그런데 PXE/tftp는 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-Network"의 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 open timeout이 됩니다.

와이어샤크는 이렇게 말합니다. 여기에 이미지 설명을 입력하세요

편집 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 도우미 서비스를 활성화하여 네트워크 간에 DHCP 브로드캐스트 트래픽을 적절하게 전달합니다.

편집 1:

PXE 제공 => TFTP 서버 + PXE 매개변수가 있는 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/pxelinux이 예에서는 BIOS 부팅 PC 및 efi64/syslinux.efi64Bit UEFI 부팅 PC에 NBP를 제공합니다 . 특정 시나리오를 고려하여 매개변수를 조정해야 합니다.

관련 정보