copia arquivos do servidor tftp

1

AFAIU, Quando tftp server é usado para pxe boot, o cliente envia uma requisição para o servidor, e o servidor envia de volta alguns arquivos (initrd, kernel, config, ...). O servidor pode decidir quais arquivos enviar ao cliente, dependendo do endereço IP do cliente. O cliente não sabe a URL desses arquivos.

Minhas perguntas são:

Eu gostaria de testar o tftp server. Eu gostaria de executar um comando ou um script (simples) que entre em contato com o servidor tftp e receba os arquivos e salve esses arquivos no disco.

Em outras palavras, o que eu quero fazer é isto:

  • No lado do servidor, não há diferença: o servidor acha que o cliente quer inicializar através do PXE e envia os arquivos para o cliente

  • No lado do cliente: o cliente realmente não quer inicializar. Ele só quer copiar (salvar) os arquivos no disco.

Qual seria a maneira mais fácil de fazer isso?

    
por Martin Vegter 07.10.2014 / 03:14

3 respostas

3

O comentário que o @Patrick fez à sua pergunta estava totalmente certo: toda a máquina cliente precisa fazer o bootstrap para que o PXE transmita uma solicitação DHCP. O servidor DHCP (geralmente no servidor de inicialização PXE) verá o endereço MAC do dispositivo cliente e o usará para

  • dê ao cliente um endereço IP
  • diz ao cliente quais arquivos ele deve obter do servidor PXE

nesse ponto, o cliente sabe o endereço do servidor e o que obter dele. Infelizmente, há um monte de bits complicados, como pode haver apenas um servidor DHCP que tem a configuração especial para o cliente PXE, um servidor TFTP precisa estar em execução e assim por diante.

Existe um bom guia passo a passo no link . Você não especificou sua distro, mas a maioria dos sistemas PXE irá ao menos rimar com esse guia.

Sei que sua pergunta diz que você não quer saber o endereço do servidor PXE. Mas há apenas uma maneira (sem escrever seu próprio cliente) que pode ser feita com um solicitador / processador DHCP do cliente PXE. Se você quiser renunciar a essa parte, você joga fora grande parte dos recursos necessários para você se autoinicializar.

Eu sei que você não quer realmente inicializar a máquina, o que o coloca na posição de implementar muito do protocolo PXE para fins de teste. Se você não tiver uma máquina de raspar disponível, estou curioso para saber por que você precisa testar o PXE.

    
por 07.10.2014 / 05:59
2

Que tal usar um cliente tftp real?

Esses dois que vêm à minha mente:

por 07.10.2014 / 03:39
1

Estou mais familiarizado com o Cobbler que configura o TFTP, por isso não tenho certeza se isso é relevante, mas vou oferecer esta informação de qualquer maneira. O Cobbler configura um gerenciador de inicialização usando pxelinux.0 como @Patrick explica nos comentários e também @msw . Mas também configura um diretório pxelinux.cfg/ correspondente ao lado dele que contém endereços MAC para cada sistema que se conectará ao servidor.

Esses arquivos contêm pxelinux.cfg informações do arquivo 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

O kernel atual do Linux que esta VM inicializará está contido neste diretório acessível por TFTP, /images/Centos56-x86_64/vmlinuz . Toda a estrutura de diretórios TFTP se parece com isso do lado de trás do 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

A única coisa que é inicialmente acessível pelos servidores que estão inicializando nesse servidor TFTP, é como os outros descreveram, o pxelinux.0 + o arquivo de configuração que corresponde ao endereço MAC de um determinado servidor.

Diretório de imagens

Isso se parece com isso, se você está curioso:

$ 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
    
por 07.10.2014 / 18:22

Tags