copiar archivos del servidor tftp

copiar archivos del servidor tftp

AFAIU, cuando tftpse utiliza el servidor para pxeel arranque, el cliente envía una solicitud al servidor y el servidor devuelve algunos archivos (initrd, kernel, config, ...). El servidor puede decidir qué archivos enviar al cliente dependiendo de la dirección IP del cliente. El cliente no conoce la URL de esos archivos.

Mi pregunta es esta:

Me gustaría probar tftpel servidor. Me gustaría ejecutar un comando o un script (simple) que se comunique con el tftpservidor, reciba los archivos y los guarde en el disco.

En otras palabras, lo que quiero hacer es esto:

  • Del lado del servidor, no hay diferencia: el servidor cree que el cliente quiere arrancar a través de PXE y envía los archivos al cliente.

  • Del lado del cliente: el cliente en realidad no quiere arrancar. Sólo quiere copiar (guardar) los archivos en el disco.

¿Cuál sería la forma más sencilla de hacer esto?

Respuesta1

El comentario que @Patrick hizo a su pregunta fue totalmente correcto: todo lo que la máquina cliente necesita para iniciar PXE es transmitir una solicitud DHCP. El servidor DHCP (normalmente en el servidor de arranque PXE) verá la dirección MAC del dispositivo cliente y la utilizará para

  • darle al cliente una dirección IP
  • decirle al cliente qué archivos debe obtener del servidor PXE

en ese punto, el cliente sabe la dirección del servidor y qué obtener de él. Desafortunadamente, hay un montón de detalles complicados, como que solo puede haber un servidor DHCP que tenga la configuración especial para el cliente PXE, que debe estar ejecutándose un servidor TFTP, etc.

Hay una guía paso a paso bastante buena enhttps://wiki.debian.org/PXEBootInstall. No especificaste tu distribución, pero la mayoría de los sistemas PXE al menos rimarán con esa guía.

Sé que tu pregunta dice que no quieres saber la dirección del servidor PXE. Pero sólo hay una manera (sin escribir su propio cliente) que se puede hacer, con un solicitante/procesador DHCP de cliente PXE. Si desea renunciar a esa parte, desechará gran parte de las capacidades necesarias para iniciarse.

Sé que en realidad no deseas iniciar la máquina, lo que te coloca en la posición de implementar gran parte del protocolo PXE con fines de prueba. Si no tiene una máquina virtual disponible, tengo curiosidad por saber por qué necesita probar PXE.

Respuesta2

¿Qué tal utilizar un tftpcliente real?

Esos dos que me vienen a la mente:

Respuesta3

Estoy más familiarizado con cómoZapateroconfigura TFTP, así que no estoy seguro de si esto es relevante, pero ofreceré esta información de todos modos. Cobbler configura un gestor de arranque usando pxelinux.0como@Patrick explica en los comentariosasí como@msw. Pero también configura un pxelinux.cfg/directorio correspondiente al lado que contiene direcciones MAC para cada sistema que se conectará al servidor.

Estos archivos contienen pxelinux.cfginformación de archivo como esta:

$ 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

El kernel de Linux real que arrancará esta VM está contenido en este directorio accesible TFTP, /images/Centos56-x86_64/vmlinuz. Toda la estructura del directorio TFTP se ve así desde la parte posterior del servidor:

$ 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

Lo único a lo que inicialmente pueden acceder los servidores que arrancan en este servidor TFTP es, como lo han descrito otros, el pxelinux.0+ el archivo de configuración que corresponde a la dirección MAC de un servidor en particular.

Directorio de imágenes

Esto se ve así si tienes curiosidad:

$ 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

información relacionada