Configurando um servidor tftp para vários clientes

3

Estou usando um servidor tftp para manter a imagem de inicialização de uma placa de desenvolvimento e a placa de desenvolvimento é codificada para ver um determinado endereço IP do servidor. Isso tudo funciona bem. O que eu quero fazer agora é ser capaz de configurar uma segunda placa de desenvolvimento para ver o mesmo endereço IP para o servidor, mas obter uma imagem de inicialização diferente. Eu gostaria de fazer isso fazendo com que o servidor tftp usasse um diretório raiz diferente com base no endereço IP do cliente que se conecta a ele. Existe uma maneira de fazer isso?

Eu sei que pode haver alguma maneira de fazer isso com o iptables, mas eu tenho que desligar o firewall na máquina do servidor por outras razões, então isso pode não ser muito prático.

Para referência, estou usando o Fedora 15 para o servidor, mas isso pode ser alterado, se necessário.

    
por JonS 05.03.2014 / 21:39

1 resposta

2

DHCPD ou não?

Você não diz, mas estou assumindo que você tem algum arquivo de configuração PXE que esta placa DEV está configurada para procurar. Normalmente você diria aos clientes DHCP que imagem PXE usar assim por meio de um servidor DCHP:

subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.10 192.168.0.49;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.0.255;
        option routers 192.168.0.1;
        filename "pxelinux.0";
        next-server 192.168.0.100;
}

O servidor TFTP seria o next-server 192.168.0.100 e o arquivo a ser carregado seria filename "pxelinux.0" . Mas como você não tem essa configuração, sua placa DEV está procurando um "próximo servidor" em um endereço IP específico, vou assumir que ele também está procurando um arquivo PXE específico.

Usando o PXELINUX

Esta solução supõe que você tenha controle sobre apontar a placa DEV em um determinado "nome de arquivo", neste caso estou sugerindo que você use PXELINUX , o arquivo seria pxelinux.0 .

O PXELINUX permite que você tenha imagens personalizadas baseadas no endereço MAC de um sistema, a maneira mais típica de fazê-lo, já que o sistema geralmente não possui um endereço IP real atribuído a eles de maneira estática, enquanto os endereços MAC são estáticos .

Configuração

No diretório raiz do servidor TFTP, você criaria algo assim:

/mybootdir/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/mybootdir/pxelinux.cfg/01-88-99-00-11-22-33
/mybootdir/pxelinux.cfg/default

Cada endereço MAC acima é um arquivo com a sub-rotina de inicialização apropriada para cada sistema. Aqui está o meu na minha configuração Cobbler :

$ ls -l /tftpboot/pxelinux.cfg/
total 88
-rw-r--r-- 1 root root 292 Jul  9  2012 01-54-52-00-05-5a-ab
-rw-r--r-- 1 root root 288 Jul  9  2012 01-54-52-00-17-a6-cd

Juntamente com um arquivo de amostra:

$ more /tftpboot/pxelinux.cfg/01-54-52-00-05-5a-ab
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.101/cblr/svc
/op/ks/system/server123

O acima pode ser combinado para atender às suas necessidades, mas deve ser um exemplo suficiente para você começar, há exemplos adicionais no Site da PXELINUX também!

    
por 05.03.2014 / 22:35

Tags