Servidor PXE: restricción del puerto de transmisión según la demanda del cliente de arranque

Servidor PXE: restricción del puerto de transmisión según la demanda del cliente de arranque

Me gustaría configurar mi servidor PXE para que atribuya una dirección IP correcta, solo para clientes que soliciten inicio de red.

Por eso configuré mi adaptador de red con 2 direcciones IP en un rango diferente. 192.168.1.19 es la red general que transmite en /24

Para el arranque del servidor PXE, estoy intentando utilizar otro conjunto de IP para separarlo del resto de la configuración de red. Por lo tanto, el servidor tiene una segunda IP 192.168.0.19 transmitida en /24 para solo 2 rangos de IP. (máximo 2 computadoras que usan arranque PXE juntas)

# 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

El punto sería que solo las computadoras que solicitan arranque deberían tener una de esas 2 IP. Sin embargo, lo alquila y no lo libera, incluso después de reiniciar. Tengo que restablecer manualmente la red en el cliente. Incluso entonces, a veces recupera la misma IP. Es estrecho porque mi enrutador está configurado en 192.168.1.1. Supuse que debería dar prioridad al mismo rango.

Si el arranque de red está deshabilitado en el cliente, debería obtener una IP del rango de red general para compartir archivos y otros servicios LAN. Si está activado, debería obtener uno solo para la configuración de arranque PXE y liberarse una vez finalizado.

Segunda prueba para que funcione:

He estado probando para que esta configuración funcione condnsmasqen cambio. Aquí encontrarásmi configuración de red actualy los demás detalles:

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 del cliente:PXE-E53: No bootfilename recieved

Aquí puede encontrar mi configuración de red predeterminada. Este es el que /etc/dnsmasq.d/pxe.confestoy usando para configurar el 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

Creo que hay algo que no entiendo acerca de las necesidades de la red PXE en cuanto a los rangos de IP y la subred.

El punto es que usaría este PXE para ayudar a las personas a restaurar/reparar/instalar/reinstalar su sistema operativo.

Mi red doméstica en 192.168.1.0/24 debería permanecer privada. Mi red PXE debería tener Internet desde esta última compartida y dar acceso a los clientes conectados en todas las demás interfaces excepto enp5s0 conectado al enrutador ISP; al servicio de arranque PXE.

Si lo entiendo bien, ¿PXE solo puede funcionar en rangos de IP WAN?

Olvidé mencionar:

  • Me gustaría que todas las computadoras de mi red permanezcan en IP de LAN para basar la seguridad de Ma Samba no en el usuario sino en la restricción de LAN.

  • Puedo ofrecer las IP automáticamente en el mismo rango que enp5s0, porque esto entra en conflicto con los arrendamientos de IP del enrutador. Entonces trato de ponerlo en 192.168.2.0/24.

¿Es posible o es este el problema?

Mi última configuración en pxe.conf comparte Internet, proporciona IP a los clientes en el arranque, pero no se envía ningún archivo.

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

Respuesta1

No creo que tu plan funcione como quieres. El sistema operativo que arranca mediante PXE normalmente realizará su propia configuración de red DHCP. Los paquetes del cliente DHCP de la segunda configuración de red probablemente no incluirán opciones PXE.

Sin embargo, ciertamente es posible detectar paquetes de clientes DHCP con opciones PXE. Este es un enfoque común para que las opciones de respuesta PXE se puedan proporcionar dinámicamente. Lo que se puede hacer depende del servicio DHCP que se utilice.

Esta es una configuración de muestra para isc-dhcp-serverel servicio DHCP. Eso ofrecerá a los clientes de PXE un grupo diferente. No ofrece subredes separadas como usted desea, pero puede adaptarse.

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;
        }
}

Otro servicio DHCP común es dnsmasq. Esta es una configuración de muestra que hace lo mismo que el anterior.

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

Otros temas interesantes incluyen

  • Opciones de respuesta PXE basadas en la arquitectura del cliente PXE (por ejemplo, BIOS frente a UEFI)
  • Servicio proxyDHCP ( dnsmasqadmite esta característica)

Enlaces Útiles

información relacionada