Servidor PXE - restrição de porta de transmissão na demanda do cliente de inicialização

Servidor PXE - restrição de porta de transmissão na demanda do cliente de inicialização

Gostaria de configurar meu servidor PXE para atribuir um endereço IP correto, apenas para clientes que solicitam inicialização de rede.

Por isso configurei meu adaptador de rede com 2 endereços IP em um intervalo diferente. 192.168.1.19 é a rede geral que transmite em /24

Para a inicialização do servidor PXE estou tentando usar outro conjunto de IP's para separá-lo do restante da configuração da rede. O servidor possui, portanto, uma segunda transmissão IP 192.168.0.19 em /24 para apenas 2 intervalos de IP. (máx. 2 computadores usando inicialização PXE juntos)

# cat /etc/network/interfaces
iface enp5s0 inet static
address 192.168.1.19
netmask 255.255.255.0
gateway 192.168.1.1

iface enp5s0:1 inet static
address 192.168.0.19
netmask 255.255.255.0

A questão seria que apenas os computadores que solicitam inicialização deveriam ter um desses 2 IPs. Embora ele alugue e não o libere, mesmo após a reinicialização. Tenho que redefinir manualmente a rede no cliente. Mesmo assim, às vezes ele recupera o mesmo IP. É estreito porque meu roteador está configurado em 192.168.1.1. Presumi que deveria dar prioridade ao mesmo intervalo.

Se a inicialização da rede estiver desabilitada no cliente, ele deverá obter um IP do intervalo geral da rede para obter compartilhamento de arquivos e outros serviços de LAN. Se estiver ativado, ele deverá obter um apenas para a configuração de inicialização PXE e liberar após terminar.

Segundo teste para fazê-lo funcionar:

Tenho testado para fazer essa configuração funcionar comdnsmasqem vez de. Aqui você encontraráminhas configurações de rede atuaise os outros detalhes:

root@lubuton:~# service dnsmasq restart
root@lubuton:~# service dnsmasq status
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-06-19 09:30:18 CEST; 8s ago
    Process: 75253 ExecStartPre=/etc/init.d/dnsmasq checkconfig (code=exited, status=0/SUCCESS)
    Process: 75261 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
    Process: 75270 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
   Main PID: 75269 (dnsmasq)
      Tasks: 1 (limit: 18871)
     Memory: 652.0K
        CPU: 38ms
     CGroup: /system.slice/dnsmasq.service
             └─75269 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e06d44b80b8f1d39a95c0b0d7c65d08458e88040>

Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, IP range 192.168.2.31 -- 192.168.2.40, lease time 1h
Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, IP range 192.168.2.21 -- 192.168.2.30, lease time 1h
Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, IP range 192.168.2.11 -- 192.168.2.20, lease time 1h
Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, IP range 192.168.2.2 -- 192.168.2.10, lease time 1h
Jun 19 09:30:18 lubuton dnsmasq-dhcp[75269]: DHCP, sockets bound exclusively to interface enp5s0
Jun 19 09:30:18 lubuton dnsmasq-tftp[75269]: TFTP root is /srv/tftp
Jun 19 09:30:18 lubuton dnsmasq[75269]: reading /etc/resolv.conf
Jun 19 09:30:18 lubuton dnsmasq[75269]: using nameserver 127.0.0.53#53
Jun 19 09:30:18 lubuton dnsmasq[75269]: read /etc/hosts - 7 addresses
Jun 19 09:30:18 lubuton systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
lines 1-23/23 (END)
root@lubuton:~# service tftpd-hpa status
● tftpd-hpa.service - LSB: HPA's tftp server
     Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
     Active: active (running) since Sun 2022-06-19 03:27:58 CEST; 6h ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 1 (limit: 18871)
     Memory: 392.0K
        CPU: 6ms
     CGroup: /system.slice/tftpd-hpa.service
             └─17162 /usr/sbin/in.tftpd --listen --user tftp --address 192.168.2.1:69 --secure --create /srv/tftp

Jun 19 03:27:58 lubuton systemd[1]: Starting LSB: HPA's tftp server...
Jun 19 03:27:58 lubuton tftpd-hpa[17154]:  * Starting HPA's tftpd in.tftpd
Jun 19 03:27:58 lubuton tftpd-hpa[17154]:    ...done.
Jun 19 03:27:58 lubuton systemd[1]: Started LSB: HPA's tftp server.

Lado do cliente:PXE-E53: No bootfilename recieved

Aqui você pode encontrar minha configuração de rede padrão. Este é o que /etc/dnsmasq.d/pxe.confestou usando para configurar o servidor PXE:

interface=enp5s0,lo
bind-interfaces
log-dhcp
dhcp-host=pxe.home.lan,192.168.2.1
dhcp-range=enp7s4f0,192.168.2.2,192.168.2.10
dhcp-range=enp7s4f1,192.168.2.11,192.168.2.20
dhcp-range=enp8s6f0,192.168.2.21,192.168.2.30
dhcp-range=enp8s6f1,192.168.2.31,192.168.2.40
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-boot=tag:efi-x86_64,bootx64.efi,pxelinux.0
enable-tftp
tftp-root=/srv/tftp

Acho que há algo que não entendo sobre as necessidades da rede PXE em relação aos intervalos de IP e à sub-rede.

A questão é que eu usaria esse PXE para ajudar as pessoas a restaurar/reparar/instalar/reinstalar seu sistema operacional.

Minha rede doméstica 192.168.1.0/24 deve permanecer privada. Minha rede PXE deveria ter internet desta última compartilhada e dando acesso aos clientes conectados em todas as outras interfaces exceto enp5s0 conectado ao roteador ISP; para o serviço bootp PXE.

Se bem entendi, o PXE só pode funcionar em intervalos de IP WAN?

Eu esqueci de mencionar:

  • Eu gostaria que todos os computadores da minha rede permanecessem nos IPs da LAN para basear a segurança do ma samba não no usuário, mas na restrição da LAN.

  • Posso oferecer os IPs automaticamente no mesmo intervalo do enp5s0, pois isso entra em conflito com as concessões de IP do roteador. Então tento colocá-lo em 192.168.2.0/24.

É possível ou é esse o problema?

Minha última configuração em pxe.conf compartilha internet, serve IP's para clientes na inicialização, mas nenhum arquivo é enviado.

interface=enp5s0,lo
bind-interfaces
log-dhcp
dhcp-host=pxe.home.lan,192.168.2.1
dhcp-range=192.168.2.2,192.168.2.40
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-boot=tag:efi-x86_64,bootx64.efi,pxelinux.0
enable-tftp
tftp-root=/srv/tftp

Responder1

Não acho que seu plano funcionará da maneira que você deseja. O sistema operacional inicializado pelo PXE normalmente fará sua própria configuração de rede DHCP. Os pacotes do cliente DHCP da segunda configuração de rede provavelmente não incluirão opções de PXE.

No entanto, certamente é possível detectar pacotes de clientes DHCP com opções PXE. Esta é uma abordagem comum para que as opções de resposta PXE possam ser fornecidas dinamicamente. O que pode ser feito depende do serviço DHCP usado.

Este é um exemplo de configuração para isc-dhcp-servero serviço DHCP. Isso oferecerá aos clientes PXE um pool diferente. Ele não oferece sub-redes separadas como você deseja, mas pode ser adaptado.

class "pxeclient" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    filename "pxelinux.0";
}

subnet 192.168.1.0 netmask 255.255.255.0
{
    option routers 192.168.1.1;
    next-server 192.168.1.1;
    max-lease-time 3600;

    pool {
        range 192.168.1.100 192.168.1.109;
        allow members of "pxeclient";
        }

    pool {
        range 192.168.1.110 192.168.1.119;
        allow unknown-clients;
        }
}

Outro serviço DHCP comum é o dnsmasq. Este é um exemplo de configuração que faz o mesmo que acima.

log-dhcp
dhcp-option=3,192.168.1.1
dhcp-match=set:pxe,60,PXEClient
dhcp-boot=tag:pxe,pxelinux.0,server,192.168.1.1
dhcp-range=tag:pxe,192.168.1.100,192.168.1.109,255.255.255.0,1h
dhcp-range=tag:!pxe,192.168.1.110,192.168.1.119,255.255.255.0,1h

Outros tópicos interessantes incluem

  • Opções de resposta PXE baseadas na arquitetura do cliente PXE (por exemplo, BIOS vs UEFI)
  • serviço proxyDHCP ( dnsmasqsuporta este recurso)

Links úteis

informação relacionada