Configure DHCPD con dirección IP asignada y puerta de enlace en diferentes subredes para KVM

Configure DHCPD con dirección IP asignada y puerta de enlace en diferentes subredes para KVM

Tengo un dedi con un rango de IP de 123.123.123.1/24, el problema es la dirección de la puerta de enlace: 111.111.111.254 y está en una subred completamente diferente. Ya configuré un puente y una virtualización KVM.

/etc/dhcpd.conf en el nodo host.

subnet 0.0.0.0 netmask 0.0.0.0 {
authoritative;
default-lease-time 21600000;
max-lease-time 432000000;
}
 ddns-update-style ad-hoc;

host kvm111.0 {
hardware ethernet 02:00:00:ce:fd:ab;
option routers 111.111.111.254;
option subnet-mask 255.255.255.0;
fixed-address 123.123.123.2;
option domain-name-servers 8.8.8.8,8.8.4.4;
}

Luego configuro una máquina virtual (VM) KVM en ese HWID, con el sistema operativo Windows y dhcp activado. Está funcionando bien. La máquina virtual de Windows obtuvo la IP 123.123.123.2 con la puerta de enlace en 111.111.111.254.

Pero cuando cambio el sistema operativo de la VM a Debian 6, no funciona. Inicié sesión en VM y descubrí que la puerta de enlace no está asignada. cuando escriboruta agregar gw predeterminado 111.111.111.254la respuesta es:

SIOADDCART: no such process

Esto se debe a que la puerta de enlace está en una subred diferente a la dirección IP asignada. Entonces tuve que hacer esto en la VM:

ruta agregar 111.111.111.254/32 dev eth0

ruta agregar gw predeterminado 111.111.111.254

y entonces funcionará. Pero como quiero una automatización a través del nodo host (no hacerlo manualmente a través de VM), tuve que hacerlo a través de /etc/dhcpd.conf

¿Alguien sabe cómo hacer?ruta agregar 111.111.111.254/32 dev eth0a través de /etc/dhcpd.conf?

Respuesta1

La respuesta esRutas estáticas sin clases (RFC3442). En el servidor isc dhcp, debe especificar la opción manualmente.

Este sitio webindica de manera concisa cómo hacerlo de una manera que funcione tanto para clientes de Windows como de Linux.

Aquí está la versión abreviada:

Agregue lo siguiente a dhcpd.conf en la parte superior

option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;

En el bloque de subred apropiado agregue las siguientes dos líneas de opción

option rfc3442-classless-static-routes 32, 111, 111, 111, 254, 0, 0, 0, 0, 111, 111, 111, 254;
option ms-classless-static-routes 32, 111, 111, 111, 254, 0, 0, 0, 0, 111, 111, 111, 254;

Eso debería crear una ruta estática para 111.111.111.254 en el enlace con la dirección asignada por dhcp y mantener el enrutador predeterminado 111.111.111.254. El valor especial del enrutador 0.0.0.0 significa en enlace. El rfc establece que los clientes no están obligados a implementar rutas estáticas sin clases, pero Windows lo hace a través de su opción ms, el dhclient de Linux (debian7, rhel6.4 probado) sí lo hace y todos mis clientes IPMI y PXE también lo hacen. Deberías probarlo para asegurarte de que funciona con tus clientes, pero estoy bastante seguro de que funcionará.Se puede hacer que dhclient interprete la opción 121 con un gancho de salida., si aún no lo admite de fábrica.

En el peor de los casos, en el nodo host, puede agregar una IP que esté en el rango de LAN (en su ejemplo, 123.123.123.254) y decirle a los clientes que la usen como puerta de enlace predeterminada.

información relacionada