DHCP de Linux para múltiples subredes

DHCP de Linux para múltiples subredes
vlan10---->firewall----->linux dhcp server
vlan20---------↑

Tengo dos vlan (vlan10 y vlan20) y me gustaría utilizar el servidor DHCP de Linux para centralizar la designación de direcciones IP.

En el firewall fortigate utilizo la retransmisión dhcp para que el cliente obtenga la IP dhcp.

En el servidor dhcp de Linux utilizo la sección [host] para limitar que el cliente obtenga una IP estática y permitir que los hosts conocidos obtengan una IP dinámica.

########## config start #########

subnet 192.168.10.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.10.255;
option domain-name-servers 192.168.8.248,192.168.8.246;
option routers 192.168.10.1;
allow unknown-clients;
range 192.168.10.11 192.168.10.210;
}

subnet 192.168.20.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.20.255;
option domain-name-servers 192.168.8.248,192.168.8.246;
option routers 192.168.20.1;
deny unknown-clients;
range 192.168.20.11 192.168.20.210;
}

host host1  {
       hardware ethernet 11:11:11:11:11:11;
       fixed-address 192.168.10.20;
}

host host2  {
       hardware ethernet 22:22:22:22:22:22;
       fixed-address 192.168.10.21;
}

host host3  {
       hardware ethernet 33:33:33:33:33:33;
       fixed-address 192.168.20.20;
}

host host4 {
       hardware ethernet 44:44:44:44:44:44;
}

########## config end #########

En esta configuración, todos los clientes pueden obtener IP de vlan10 o vlan20, pero quiero que host4 pueda obtener IP dinámica solo en vlan20.

Cuando host4 se conecta a vlan10, host4 no puede obtener ninguna dirección IP del servidor dhcp.

¿Cómo puedo modificar la configuración?

Respuesta1

Aunque actualmente no puedo probar esto, y es posible que necesite algunos ajustes en la sintaxis, es posible que pueda usar definiciones de 'grupo' y enumerar todos los clientes en grupos para vlan10 y vlan20, pero en el archivo vlan10, le indica a host4 que 'niegue el arranque'; que debería hacerlo.

No puedo probar esto por mí mismo en este momento, pero ¿vale la pena intentarlo?

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-dhcp-configuring-server.html#group https://www.daemon-systems.org/man/dhcpd.conf.5.htmlpara negar el arranque

También es posible que desees ver si la directiva 'incluye' funcionará, por lo que podrías hacer algo como:

dhcp.conf:

option domain-name-servers 192.168.8.248,192.168.8.246;
include "/etc/dhcp/vlan10.txt"
include "/etc/dhcp/vlan20.txt"

vlan10.txt

group {
subnet 192.168.10.0 netmask 255.255.255.0 { 
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.10.255;
option routers 192.168.10.1;
allow unknown-clients;
range 192.168.10.11 192.168.10.210;
include "/etc/dhcp/vlan10.hosts.txt"
include "/etc/dhcp/vlan10.deny.hosts.txt"
 }
}

vlan20.txt

group {
subnet 192.168.20.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.20.255;
option routers 192.168.20.1;
deny unknown-clients;
range 192.168.20.11 192.168.20.210;
include "/etc/dhcp/vlan10.hosts.txt"
include "/etc/dhcp/vlan20.hosts.txt"
 }
}

vlan10.hosts.txt

host host1 { hardware ethernet 11:11:11:11:11:11; fixed-address 192.168.10.20; }

host host2 { hardware ethernet 22:22:22:22:22:22; fixed-address 192.168.10.21; }

host host3 { hardware ethernet 33:33:33:33:33:33; fixed-address 192.168.20.20; }

vlan10.deny.hosts.txt

host host4 { hardware ethernet 44:44:44:44:44:44; deny booting; }

vlan20.hosts.txt

host host4 { hardware ethernet 44:44:44:44:44:44; }

Respuesta2

Tal vez crear una clase que coincida con su host4 y agregar una línea con "denegar miembros de 'suClase';" en la configuración de su subred puede ayudar

un ejemplo :

class "raspberry"
{
    # match mac starting with b8:27:eb
    match if substring(hardware, 1, 3) = b8:27:eb;
}

subnet 192.168.10.0 netmask 255.255.254.0 {
    option routers 192.168.10.254;
    pool {
        range 192.168.10.11 192.168.10.210;
        deny members of "raspberry";
    }
}

información relacionada