TFTP 서버에서 파일 복사

TFTP 서버에서 파일 복사

AFAIU, tftp서버를 사용하는 경우pxe 때 클라이언트는 서버에 요청을 보내고 서버는 몇 가지 파일(initrd, kernel, config 등)을 다시 보냅니다. 서버는 클라이언트의 IP 주소에 따라 클라이언트에 보낼 파일을 결정할 수 있습니다. 클라이언트는 해당 파일의 URL을 모릅니다.

내 질문은 다음과 같습니다.

서버를 테스트하고 싶습니다 tftp. 명령이나 (간단한) 스크립트를 실행하고 싶습니다.tftp 서버에 접속하여 파일을 받고 이 파일을 디스크에 저장하는

즉, 내가 하고 싶은 일은 이것이다.

  • 서버 측에서는 차이가 없습니다. 서버는 클라이언트가 PXE를 통해 부팅하기를 원한다고 생각하고 파일을 클라이언트에 보냅니다.

  • 클라이언트 측: 클라이언트는 실제로 부팅을 원하지 않습니다. 단지 파일을 디스크에 복사(저장)하려고 합니다.

이를 수행하는 가장 쉬운 방법은 무엇입니까?

답변1

귀하의 질문에 대한 @Patrick의 의견은 정확했습니다. PXE를 부트스트랩하는 데 필요한 모든 클라이언트 시스템은 DHCP 요청을 브로드캐스트하는 것입니다. DHCP 서버(일반적으로 PXE 부팅 서버에 있음)는 클라이언트 장치의 MAC 주소를 확인하고 이를 사용하여

  • 클라이언트에게 IP 주소 제공
  • 클라이언트에게 PXE 서버에서 어떤 파일을 가져와야 하는지 알려줍니다.

그 시점에서 클라이언트는 서버의 주소와 서버에서 무엇을 얻을 수 있는지 알게 됩니다. 불행하게도 PXE 클라이언트를 위한 특수 구성이 있는 DHCP 서버가 하나만 있을 수 있고 TFTP 서버가 실행되어야 하는 등의 문제가 많이 있습니다.

꽤 좋은 단계별 가이드가 있습니다.https://wiki.debian.org/PXEBootInstall. 배포판을 지정하지 않았지만 대부분의 PXE 시스템은 최소한 해당 가이드와 일치합니다.

귀하의 질문에 PXE 서버의 주소를 알고 싶지 않다는 내용이 있는 것으로 알고 있습니다. 그러나 수행할 수 있는 방법은 (자신의 클라이언트를 작성하지 않고) PXE 클라이언트 DHCP 요청자/프로세서를 사용하는 한 가지 방법뿐입니다. 해당 부분을 포기하고 싶다면 부트스트랩을 수행하는 데 필요한 많은 기능을 버리는 것입니다.

테스트 목적으로 많은 PXE 프로토콜을 구현하는 위치에 놓이게 되는 시스템을 실제로 부팅하고 싶지 않다는 것을 알고 있습니다. 스크래치 머신을 사용할 수 없다면 왜 PXE를 테스트해야 하는지 궁금합니다.

답변2

실제 클라이언트를 사용하는 것은 어떻습니까 tftp?

내 마음에 떠오르는 두 가지 :

답변3

나는 그 방법에 가장 익숙하다.구두 수선공TFTP를 설정하므로 이것이 관련성이 있는지 확실하지 않지만 어쨌든 이 정보를 제공하겠습니다. Cobbler는 pxelinux.0다음을 사용하여 부트로더를 설정합니다 .@Patrick은 댓글에서 설명합니다.게다가@msw. 그러나 pxelinux.cfg/서버에 연결될 각 시스템에 대한 MAC 주소가 포함된 해당 디렉터리도 함께 설정됩니다 .

이러한 파일에는 pxelinux.cfg다음과 같은 파일 정보가 포함되어 있습니다.

$ more 01-54-52-00-ff-ff-ff
default linux
prompt 0
timeout 1
label linux
        kernel /images/Centos56-x86_64/vmlinuz
        ipappend 2
        append initrd=/images/Centos56-x86_64/initrd.img ksdevice=bootif lang=  console=ttyS0,115200 text serial kssendmac  ks=http://192.168.1.207/cblr/svc/op/ks/system/kvmcobblertest

이 VM이 부팅할 실제 Linux 커널은 TFTP 액세스 가능 디렉터리인 /images/Centos56-x86_64/vmlinuz. 전체 TFTP 디렉토리 구조는 서버 뒷면에서 보면 다음과 같습니다.

$ ls -l /tftpboot/
total 348
drwxr-xr-x 2 root root   4096 Jun 22  2011 etc
drwxr-xr-x 2 root root   4096 Jul  9  2012 grub
drwxr-xr-x 6 root root   4096 Jul  9  2012 images
drwxr-xr-x 2 root root   4096 Jun 30  2011 images2
-rw-r--r-- 1 root root  20020 Jul  9  2012 memdisk
-rw-r--r-- 1 root root  39188 Jul  9  2012 menu.c32
drwxr-xr-x 2 root root   4096 Jun 22  2011 ppc
-rw-r--r-- 1 root root  14716 Jul  9  2012 pxelinux.0
drwxr-xr-x 2 root root   4096 Jul  9  2012 pxelinux.cfg
drwxr-xr-x 2 root root   4096 Jul  9  2012 s390x
-rw-r--r-- 1 root root 198192 Jul  9  2012 yaboot

이 TFTP 서버에 대해 부팅하는 서버가 처음에 액세스할 수 있는 유일한 것은 다른 사람이 설명한 대로 pxelinux.0+ 특정 서버의 MAC 주소에 해당하는 구성 파일입니다.

이미지 디렉토리

궁금하다면 다음과 같습니다.

$ tree /tftpboot/images
/tftpboot/images
|-- Centos56-x86_64
|   |-- initrd.img
|   `-- vmlinuz
|-- Centos56-xen-x86_64
|   |-- initrd.img
|   `-- vmlinuz
`-- Centos60-x86_64
    |-- initrd.img
    `-- vmlinuz

3 directories, 6 files

관련 정보