PXE 서버 - 부팅 클라이언트 요구 시 포트 제한 브로드캐스트

PXE 서버 - 부팅 클라이언트 요구 시 포트 제한 브로드캐스트

네트워크 부팅을 요청하는 클라이언트에 대해서만 올바른 IP 주소를 지정하도록 PXE 서버를 설정하고 싶습니다.

따라서 다른 범위에 있는 2개의 IP 주소로 네트워크 어댑터를 구성했습니다. 192.168.1.19는 /24에서 브로드캐스트하는 일반 네트워크입니다.

PXE 서버 부팅의 경우 다른 IP 세트를 사용하여 나머지 네트워크 구성과 분리하려고 합니다. 서버에는 2개의 IP 범위에 대해서만 /24에서 브로드캐스트되는 두 번째 IP 192.168.0.19가 있습니다. (PXE 부팅을 사용하는 최대 2대의 컴퓨터가 함께 부팅됨)

# cat /etc/network/interfaces
iface enp5s0 inet static
address 192.168.1.19
netmask 255.255.255.0
gateway 192.168.1.1

iface enp5s0:1 inet static
address 192.168.0.19
netmask 255.255.255.0

요점은 부팅을 요청하는 컴퓨터만 해당 2개의 IP 중 하나를 가져야 한다는 것입니다. 그러나 재부팅 후에도 임대하고 해제하지 않습니다. 클라이언트에서 네트워크를 수동으로 재설정해야 합니다. 그럼에도 불구하고 때로는 동일한 IP를 다시 가져옵니다. 내 라우터가 192.168.1.1로 설정되어 있기 때문에 좁습니다. 나는 그것이 같은 범위에 우선순위를 두어야 한다고 생각했습니다.

클라이언트에서 네트워크 부팅이 비활성화된 경우 파일 공유 및 기타 LAN 서비스를 얻으려면 일반 네트워크 범위에서 IP를 가져와야 합니다. 켜져 있으면 PXE 부팅 구성용으로만 하나 가져와서 완료되면 릴리스해야 합니다.

작동시키기 위한 두 번째 테스트:

이 구성이 작동하도록 테스트했습니다.dnsmasq대신에. 여기에서 찾을 수 있습니다.내 현재 네트워크 설정기타 세부정보는 다음과 같습니다.

root@lubuton:~# service dnsmasq restart
root@lubuton:~# service dnsmasq status
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-06-19 09:30:18 CEST; 8s ago
    Process: 75253 ExecStartPre=/etc/init.d/dnsmasq checkconfig (code=exited, status=0/SUCCESS)
    Process: 75261 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
    Process: 75270 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
   Main PID: 75269 (dnsmasq)
      Tasks: 1 (limit: 18871)
     Memory: 652.0K
        CPU: 38ms
     CGroup: /system.slice/dnsmasq.service
             └─75269 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e06d44b80b8f1d39a95c0b0d7c65d08458e88040>

Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, IP range 192.168.2.31 -- 192.168.2.40, lease time 1h
Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, IP range 192.168.2.21 -- 192.168.2.30, lease time 1h
Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, IP range 192.168.2.11 -- 192.168.2.20, lease time 1h
Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, IP range 192.168.2.2 -- 192.168.2.10, lease time 1h
Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, sockets bound exclusively to interface enp5s0
Jun 19 09:30:18 lubuton dnsmasq-tftp[75269]: TFTP root is /srv/tftp
Jun 19 09:30:18 lubuton dnsmasq[75269]: reading /etc/resolv.conf
Jun 19 09:30:18 lubuton dnsmasq[75269]: using nameserver 127.0.0.53#53
Jun 19 09:30:18 lubuton dnsmasq[75269]: read /etc/hosts - 7 addresses
Jun 19 09:30:18 lubuton systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
lines 1-23/23 (END)
root@lubuton:~# service tftpd-hpa status
● tftpd-hpa.service - LSB: HPA's tftp server
     Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
     Active: active (running) since Sun 2022-06-19 03:27:58 CEST; 6h ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 1 (limit: 18871)
     Memory: 392.0K
        CPU: 6ms
     CGroup: /system.slice/tftpd-hpa.service
             └─17162 /usr/sbin/in.tftpd --listen --user tftp --address 192.168.2.1:69 --secure --create /srv/tftp

Jun 19 03:27:58 lubuton systemd[1]: Starting LSB: HPA's tftp server...
Jun 19 03:27:58 lubuton tftpd-hpa[17154]:  * Starting HPA's tftpd in.tftpd
Jun 19 03:27:58 lubuton tftpd-hpa[17154]:    ...done.
Jun 19 03:27:58 lubuton systemd[1]: Started LSB: HPA's tftp server.

고객 입장에서:PXE-E53: No bootfilename recieved

여기에서 내 기본 네트워크 구성을 찾을 수 있습니다. 이것은 /etc/dnsmasq.d/pxe.confPXE 서버를 설정하는 데 사용하는 것입니다.

interface=enp5s0,lo
bind-interfaces
log-dhcp
dhcp-host=pxe.home.lan,192.168.2.1
dhcp-range=enp7s4f0,192.168.2.2,192.168.2.10
dhcp-range=enp7s4f1,192.168.2.11,192.168.2.20
dhcp-range=enp8s6f0,192.168.2.21,192.168.2.30
dhcp-range=enp8s6f1,192.168.2.31,192.168.2.40
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-boot=tag:efi-x86_64,bootx64.efi,pxelinux.0
enable-tftp
tftp-root=/srv/tftp

IP 범위와 서브넷에 대한 PXE 네트워크 요구 사항에 대해 제가 이해하지 못하는 부분이 있는 것 같습니다.

요점은 사람들이 운영 체제를 복원/수리/설치/재설치하도록 돕기 위해 이 PXE를 사용한다는 것입니다.

192.168.1.0/24의 내 홈 네트워크는 비공개로 유지되어야 합니다. 내 PXE 네트워크에는 마지막 공유 네트워크의 인터넷이 있어야 하며 ISP 라우터에 연결된 enp5s0을 제외한 다른 모든 인터페이스에 연결된 클라이언트에 대한 액세스를 제공해야 합니다. PXE bootp 서비스에.

제가 이해한 것이 맞다면 PXE는 WAN IP 범위에서만 작동할 수 있습니까?

나는 다음을 언급하는 것을 잊었습니다.

  • 내 네트워크의 모든 컴퓨터가 사용자가 아닌 LAN 제한에 따라 삼바 보안을 기반으로 LAN IP에 남아 있기를 바랍니다.

  • enp5s0과 동일한 범위에서 자동으로 IP를 제공할 수 있습니다. 이는 라우터 IP 임대와 충돌하기 때문입니다. 그래서 192.168.2.0/24에 넣어보려고 합니다.

가능합니까, 아니면 이것이 문제입니까?

pxe.conf의 마지막 구성은 인터넷을 공유하고 부팅 시 클라이언트에 IP를 제공하지만 파일이 전송되지 않습니다.

interface=enp5s0,lo
bind-interfaces
log-dhcp
dhcp-host=pxe.home.lan,192.168.2.1
dhcp-range=192.168.2.2,192.168.2.40
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-boot=tag:efi-x86_64,bootx64.efi,pxelinux.0
enable-tftp
tftp-root=/srv/tftp

답변1

내 생각엔 당신의 계획이 당신이 원하는 대로 되지 않을 것 같아요. PXE로 부팅되는 OS는 일반적으로 자체 DHCP 네트워크 설정을 수행합니다. 두 번째 네트워크 설정의 DHCP 클라이언트 패킷에는 PXE 옵션이 포함되지 않을 수 있습니다.

그러나 PXE 옵션을 사용하면 DHCP 클라이언트 패킷을 탐지하는 것이 확실히 가능합니다. 이는 PXE 응답 옵션을 동적으로 제공할 수 있는 일반적인 접근 방식입니다. 수행할 수 있는 작업은 사용 중인 DHCP 서비스에 따라 다릅니다.

isc-dhcp-serverDHCP 서비스 에 대한 샘플 구성입니다 . 이는 PXE 클라이언트에게 다른 풀을 제공합니다. 원하는 대로 별도의 서브넷을 제공하지는 않지만 조정될 수 있습니다.

class "pxeclient" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    filename "pxelinux.0";
}

subnet 192.168.1.0 netmask 255.255.255.0
{
    option routers 192.168.1.1;
    next-server 192.168.1.1;
    max-lease-time 3600;

    pool {
        range 192.168.1.100 192.168.1.109;
        allow members of "pxeclient";
        }

    pool {
        range 192.168.1.110 192.168.1.119;
        allow unknown-clients;
        }
}

또 다른 일반적인 DHCP 서비스는 dnsmasq. 이는 위와 동일한 작업을 수행하는 샘플 구성입니다.

log-dhcp
dhcp-option=3,192.168.1.1
dhcp-match=set:pxe,60,PXEClient
dhcp-boot=tag:pxe,pxelinux.0,server,192.168.1.1
dhcp-range=tag:pxe,192.168.1.100,192.168.1.109,255.255.255.0,1h
dhcp-range=tag:!pxe,192.168.1.110,192.168.1.119,255.255.255.0,1h

다른 흥미로운 주제는 다음과 같습니다.

  • PXE 클라이언트 아키텍처(예: BIOS 대 UEFI)를 기반으로 하는 PXE 응답 옵션
  • ProxyDHCP 서비스( dnsmasq이 기능 지원)

유용한 링크

관련 정보