isc-dhcp-server: Asignar diferentes servidores DNS a clientes con diferente sistema operativo | Algo de Linux

martes, 10 de octubre de 2017

isc-dhcp-server: Asignar diferentes servidores DNS a clientes con diferente sistema operativo

En nuestros centros tenemos isc-dhcp-server funcionando con un backend ldap para ofrecer servicio DNS a los clientes del centro.

Por si no lo sabéis, es posible asignar diferentes servidores DNS a clientes con diferente sistema operativo mediante isc-dhcp-server. Supongo que os preguntaréis para qué podemos querer hacer ésto... Muy sencillo. Por ejemplo, si en nuestras instalaciones tenemos un servidor de Active Directory, es necesario que los clientes Windows tengan configurado como servidor DNS el servidor de Active Directory.

DNS es un servicio fundamental para Active Directory, por lo que al instalar el servicio de Active Directory, se configura el servidor como servidor DNS. ¿Por qué? Por las siguientes razones:
  • Los clientes buscan a los Controladores de Dominio a través de DNS. Por consiguiente, es necesario para que tanto los equipos como los usuarios puedan autenticarse en el dominio.
  • Los controladores de dominio se encuentran entre sí a través del servicio DNS. De esta manera, el servidor DNS es necesario para que funcione la replicación del directorio activo entre los diferentes controladores de dominio.
  • Los controladores de dominio encuentran a los que tienen la funcionalidad de Catálogo Global usando el servicio DNS.

Es posible que queramos que los clientes linux sigan usando los servidores DNS principales, pero si tenemos un controlador de dominio Windows, nos va a interesar que los clientes windows usen el controlador de dominio de Windows.

Si os fijáis en el fichero de concesiones /var/lib/dhcp/dhcpd.leases, veréis que las máquinas Windows envían el identificador MSFT 5.0:
set vendor-class-identifier = "MSFT 5.0";

Viendo ésto, no tenemos más que modificar la configuración de isc-dhcp-server para asignar diferentes servidores de dominio a los clientes en función de su vendor-class-identifier:
if substring (option vendor-class-identifier, 0, 9) = "MSFT 5.0" { option domain-name-servers 172.19.144.76, 172.19.144.90 ; }
else { option domain-name-servers 172.19.144.2, 172.19.144.3; }
Creo que la sintaxis se entiende bastante bien y no requiere muchas explicaciones. Si el cliente tiene como vendor-class-identifier MSFT 5.0, es un sistema operativo Windows y se le asignarán como servidores DNS los servidores de Active Directory, y, si no, se le asignarán los servidores DNS por defecto.
Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: