![명령줄에서 PXE를 테스트하는 방법은 무엇입니까?](https://rvso.com/image/1672305/%EB%AA%85%EB%A0%B9%EC%A4%84%EC%97%90%EC%84%9C%20PXE%EB%A5%BC%20%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
저는 'PXE 부팅 서버'를 설정하는 중입니다. 제가 작업해야 할 것은 TPlink 라우터(TL-ER7206 v1.0)입니다. 이 라우터는 TFTP 서버의 IP 주소로 설정되어야 하는 '옵션 66'을 사용하여 DHCP 서비스를 제공합니다(그러나 파일 이름을 설정할 곳이 없습니다). 것 같습니다). Linux 서버에 DHCP를 설정하고 라우터에서 DHCP를 비활성화해야 할 수도 있지만 라우터를 사용하여 어디까지 갈 수 있는지 알고 싶습니다. 궁극적으로 저는 PXE 부팅 클라이언트가 설치할 다양한 OS 메뉴를 볼 수 있는 설정을 원하지만 이는 미래를 위한 것입니다.
하지만 현재로서는 실제 PXE 부팅을 시도하지 않고도 PXE 부팅 PC가 서버에서 무엇을 얻을 수 있는지 확인하기 위해 Linux의 명령줄에서 사용할 수 있는 몇 가지 명령이 있습니까? Virtualbox에서 무언가를 실행할 수 있다는 것을 알고 있지만 명령줄에서 이를 테스트/디버깅할 수 있기를 바랍니다.
답변1
내 자신의 질문에 대답하기 위해 - 나는 시간을 들여 여러 가지를 시험해 본 결과 서버 가 시작될 DHCP
때 응답하는 내용을 확인하는 방법이 필요하다는 것을 깨달았습니다.PXE
PXE는 두 가지 서비스를 사용합니다.
DHCP
다음 단계에 필요한 IP 주소를 얻으려면TFTP
, 부팅에 필요한 파일을 제공합니다.
DHCP
IP 주소를 제공할 뿐만 아니라 TFTP
부팅에 필요한 서버와 첫 번째 파일 이름도 알려줍니다. 에서 무엇을 얻는지 확인하기 위해 DHCP
두 개의 서로 다른 세션에서 두 개의 명령을 사용합니다.
dhcpdump
, 에서 편리하게 실행할 수 있습니다screen
. 서버 와 주고받는 모든 트래픽을 기록합니다DHCP
.nmap --script broadcast-dhcp-discover
, 서버에서 IP 주소를 요청합니다DHCP
.
의 샘플 출력은 가 구성 파일에 넣은 파일 이름을 제공함 dhcpdump
을 보여줍니다 .DHCP
pxelinux.0
/etc/dhcp/dhcpd.conf
root@vogon:~# dhcpdump -i enp8s0
TIME: 2022-06-27 08:17:41.124
IP: 192.168.50.177 (88:d8:2e:c3:83:77) > 192.168.50.9 (d8:5e:d3:5d:4:18)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: b5cdb8de
SECS: 0
FLAGS: 0
CIADDR: 192.168.50.177
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 88:d8:2e:c3:83:77:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 3 (DHCPREQUEST)
OPTION: 61 ( 7) Client-identifier 01:88:d8:2e:c3:83:77
OPTION: 12 ( 15) Host name LAPTOP-PNGS5J2E
OPTION: 81 ( 18) Client FQDN 0-0-0 LAPTOP-PNGS5J2E
OPTION: 60 ( 8) Vendor class identifier MSFT 5.0
OPTION: 55 ( 14) Parameter Request List 1 (Subnet mask)
3 (Routers)
6 (DNS server)
15 (Domainname)
31 (Perform router discovery)
33 (Static route)
43 (Vendor specific info)
44 (NetBIOS name server)
46 (NetBIOS node type)
47 (NetBIOS scope)
119 (Domain Search)
121 (Classless Static Route)
249 (MSFT - Classless route)
252 (MSFT - WinSock Proxy Auto Detect)
---------------------------------------------------------------------------
TIME: 2022-06-27 08:17:41.124
IP: 192.168.50.9 (d8:5e:d3:5d:4:18) > 192.168.50.177 (88:d8:2e:c3:83:77)
OP: 2 (BOOTPREPLY)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: b5cdb8de
SECS: 0
FLAGS: 0
CIADDR: 192.168.50.177
YIADDR: 192.168.50.177
SIADDR: 192.168.50.9
GIADDR: 0.0.0.0
CHADDR: 88:d8:2e:c3:83:77:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: pxelinux.0.
OPTION: 53 ( 1) DHCP message type 5 (DHCPACK)
OPTION: 54 ( 4) Server identifier 192.168.50.9
OPTION: 51 ( 4) IP address leasetime 600 (10m)
OPTION: 1 ( 4) Subnet mask 255.255.255.0
OPTION: 3 ( 4) Routers 192.168.50.1
OPTION: 6 ( 8) DNS server 192.168.50.9,8.8.8.8
OPTION: 15 ( 9) Domainname somewhere.com
---------------------------------------------------------------------------
분명히 다음 단계는 설정하는 것입니다 TFTP
. 좋은 가이드가 많이 있지만 여러 OS 중에서 선택할 수 있어야 하며 이 기사가 딱 맞는 것 같습니다.Debian Lenny에서 여러 Linux 배포판을 위한 PXE 설치 서버 설정
답변2
테스트를 위해 웹 서버를 "PXE 부팅 서버"로 사용하여 TFTP 없이 PXE 부팅을 수행하고 이미 libvirt에 내장된 DHCP 서버를 재사용할 수 있습니다. Libvirt는 VM용 네트워크 인터페이스에서 네트워크 부팅을 위한 펌웨어로 iPXE를 사용합니다.
테스트 부팅 컴퓨터는 가상 머신이어야 합니다. 웹 서버는 특정 폴더 아키텍처와 선택한 부팅 이미지를 사용하여 생성되어야 합니다.
기사 보기 iPXE 및 libvirt를 사용하여 HTTP만으로 간편한 PXE 부팅 테스트, 그것은 보여준다:
- 웹 서버 설정
- Libvirt 네트워크 DHCP 설정
- virt-install 명령을 사용하여 PXE 부팅.
여기에 포함시키기에는 전체 내용이 너무 방대합니다.