내 기존 네트워크 환경은 다음을 제공합니다.
- PXE 클라이언트를 특정 TFTP 서버로 보내는 DHCP 서버
- 부팅을 위한 SYSLINUX "pxelinux.0" 파일이 있는 TFTP 서버
SYSLINUX 설치에서는 기본적으로 "로컬 디스크에서 부팅" 시간 초과가 발생합니다. 이를 통해 기존 클라이언트가 올바르게 재부팅할 수 있을 뿐만 아니라 복구 또는 프로비저닝 환경으로 부팅할 수 있는 옵션도 제공됩니다.
DHCP 서버가 가리키는 것과 다른 TFTP 서버에 있는 새로운 프로비저닝 환경을 테스트하고 있습니다. 기존 클라이언트는 현재 환경에 따라 다르지만 프로비저닝을 위해 테스트 클라이언트를 새 TFTP 서버에 안내하고 싶습니다.
이상적으로는 클라이언트가 다른(DHCP 서버 제공이 아닌 하드코드된) TFTP 서버에서 부팅되도록 하는 SYSLINUX 프롬프트의 특정 메뉴 옵션을 사용할 수 있기를 바랍니다.
SYSLINUX의 메뉴 옵션으로 사용자 정의 gPXE 이미지를 설치해 보았습니다. 사용자 정의 이미지는 DHCP 주소를 (재)획득하고 하드코딩된 TFTP 서버로 이동했지만 gPXE가 충족할 수 없다고 생각되는 부분이 누락되었습니다.
새로운 프로비저닝 시스템은 Cobbler를 기반으로 하며 클라이언트가 덜 구체적이고 결국에는 일반적인 파일을 결정하기 전에 MAC 주소로 명명된 파일을 찾는 일반적인 PXE 시퀀스에 따라 달라집니다. 내가 알 수 있는 바에 따르면 gPXE는 이러한 mac 주소 기반 부팅 시퀀스를 수행할 수 없는 것 같습니다.
누구든지 이 작업을 수행하는 다른 방법을 말해 줄 수 있습니까? 나는 이 문제 때문에 며칠 동안 머리를 숙였습니다. 미리 감사드립니다!
답변1
동일한 서버 내에서 PXE/TFTP 체인 연결
다른 PXE 부트 로더를 커널로 배치합니다.
이것은 Linux PXE 체인 로더에서 BSD PXE 부트 로더를 체인 로드하는 데 사용한 예입니다.
LABEL openbsd
MENU LABEL ^OpenBSD 3.9
KERNEL openbsd_3.9/pxeboot.0
다른 서버에 대한 PXE/TFTP 체인 연결
pxechain.com
다른 PXE 서버를 체인 로드하는 데 사용됩니다.
pxechain.com
syslinux-common
Debian/Ubuntu의 패키지 내에서 사용 가능 하거나syslinux 프로젝트 아카이브다른 파일 이름으로 pxechn.c32
.
예:
LABEL pxeserver2
menu label Switch to 2nd PXE server...
kernel pxechain.com
append 192.168.10.254::pxelinux.0
예2:(덕분에상어) pxelinux의 구성 파일 이름 및/또는 경로가 두 pxe 서버 모두에서 다른 경우 -p 및 -c 옵션을 사용하여 명시적으로 정의해야 합니다. 그렇지 않으면 작동하지 않습니다(다음에 정의된 값을 사용하려고 시도합니다). 현재 부팅에 사용된 dhcp).
DC-ISO2 서버 구성에서:
LABEL DC-ISO1
MENU LABEL DC-ISO1 (BIOS mode)
KERNEL pxechn.c32
APPEND 192.168.1.1::pxelinux.0 -c default -p /
TEXT HELP
Boot the legacy dc-iso1 menu in bios mode.
ENDTEXT
이전 DC-ISO1 서버 구성에서:
LABEL DC-ISO2
MENU LABEL DC-ISO2 (BIOS mode)
KERNEL pxechn.c32
APPEND 192.168.1.2::/configs/pxelinux.0 -p /configs/ -c bios.cfg
TEXT HELP
Boot the new dc-iso2 menu in bios mode.
ENDTEXT
기술적으로 이제 DC-ISO1의 dhcp 서버(tftp는 아님)를 비활성화할 수도 있으며 항상 DC-ISO2로 먼저 부팅하면서 두 서버 메뉴 사이를 전환할 수 있습니다.
답변2
Ubuntu 10.4 LTS에서 pxelinux.0을 가져옵니다. 이는 "정상" 반복인 MAC - HEX의 IP - ... 기본값을 거치게 됩니다.
DHCP 서버에게 특정 요청에 응답하지 말라고 지시하고 테스트 서버 요청에 응답하는(다른 어떤 것에도 응답하지 않는) 동일한 네트워크(권한 없음)에 다른 DHCP를 설정하는 것이 더 간단할 것입니다.