domingo, 23 de septiembre de 2012

Simple y Fácil; Server DHCP

Por temas laborales no he tenido tiempo para seguir llenando mi blog con entradas que nos ayuden en el día día de un administrador de red, por lo que hoy me he propuesto combinar la instalación de un server DHCP y DNS en un sólo repaso ya que esto lo emplearé para realizar una solución que resulta un poco confusa cuando se empieza a indagar por la web; es que realizar un servidor DHCP "dinámico" es una tarea un poco fina de majear.
Hoy instalaremos y dejaremos a punto de producción un servidor DHCP usando isc-dhcp-server y un servidor DNS usando bind9 de manera independiente pero funcional. Más adelante entraré en el "trabajo" de unir ambos servicios y generar un named.conf dinámico con las ip's asignadas a cada máquina con su nombre respectivo. Ésto para que cuando uno quiera probar conectividad con alguna máquina de nuestra red, no lo tengamos que realizar con su IP sino con su nombre designando, esto es: en lugar de realizar ping 172.16.1.x deberíamos poder realizar ping nombre_host ( por ejemplos: ping sistemas01) y así evitaríamos aprendernos cada IP asignada a cada máquina de cada usuario de cada departamento de la empresa donde administramos la red.
Siempre recalco que los pasos a seguir durante la instalación son para debian y derivados (con algunas pequeñas modificaciones) y para otras distribuciones si es un poco diferente pero las modificaciones de los archivos de configuración prácticamente es la misma.

Empecemos:

Instalacion de DHCP:
root@router:~# aptitude install isc-dhcp-server

luego modificar el fichero:
root@router:~# nano /etc/default/isc-dhcp-server

identificar la sgte línea:
INTERFACES="eth1"

y colocar la interfaz que recibirá las peticiones de IP's. Es muy común que nuestro DHCP también se comporte como gateway de nuestra red corporativa por lo que tendrá dos interfaces de red; normalmente la interfaz primaria eth0 es la que va conectada a la salida a internet y la eth1 es la que sirve a nuestra red interna, por eso en la línea INTERFACES coloco "eth1". Después de esto guardamos y cerramos y nos dirigimos a configurar nuestro server DHCP, ésto se consigue modificando el archivo:

root@router:~# nano /etc/dhcp/dhcpd.conf

En este archivo se coloca las configuraciones que definirán nuesto servidor DHCP como por ejemplo la puerta de enlace predeterminada, los DNS, el broadcast, la asignación estática de IP's etc.
Veamos un ejemplo de como en mi caso lo tengo instalado:


Es importante que se fijen que cada línea termina con ";" sino las colocan el servidor les va a mandar un error cuando se levante el servicio.
Con esas líneas básicas el servidor DHCP quedaría configurado; el rango de IP's a asignar van desde la IP 172.16.1.10 - 172.16.1.254 que es lo máximo que nos permite la máscara de red usada en este caso 255.255.255.0 ( o en hexadecimal /24)

Si iniciamos algún cliente (que puede ser una estación con windows) que se encuentre en la misma red de servicio de nuestro DHCP y verificamos el log del servidor veremos que el cliente le pide una IP al DHCP y éste le responde con una IP que se encuentra en el rango definido.



En este log podemos identificar lo sgte:
DHCPDISCOVER (para ubicar servidores DHCP disponibles) usuario.
DHCPOFFER (respuesta del servidor a un paquete DHCPDISCOVER, que contiene los parámetros iníciales)
DHCPACK (respuesta del servidor que contiene los parámetros y la dirección IP del cliente)


Como vemos, el servidor a identificado la MAC que solicita IP, le asigna la IP 172.16.1.210 y luego la guarda en su cache por el tiempo definido en archivo de configuración.

Para ver la tabla ARP del servidor podemos consultar al archivo:

root@router:~# cat /var/lib/dhcp/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
server-duid "\000\001\000\001\027\306\303\032\010\000'\303w\247";

lease 172.16.1.210 {
  starts 1 2012/09/24 00:51:50;
  ends 1 2012/09/24 01:51:50;
  cltt 1 2012/09/24 00:51:50;
  binding state active;
  next binding state free;
  hardware ethernet 08:00:27:6c:73:4e;
  uid "\001\010\000'lsN";
  client-hostname "geren02";
}
Ahí se guarda la caché de las asignaciones de IP's que el servidor ha ido realizando. También le sirve como consulta ya que si un host es reiniciado antes del tiempo máximo de permanecer con una IP, éste le vuelve a reasignar la misma IP que tenía.

Ésta es la configuración base de todo servidor DHCP, al cual le iré agregando más cosas conforme las vaya requiriendo como por ejemplo, asignación de IP's estáticas a determinados host por medio de su MAC, o si deseamos un servidor PXE para arranque por red unido a un servidor TFTP y hasta asignación de IP's a VLANS que podamos crear en nuestra red interna como por ejemplo si tenemos 2 VLAN en nuestra red que podría ser la VLAN 10 = VLAN de host donde se encuentran las PC's de nuestra red que podría estar en el segmento 172.16.1.X /24 y la VLAN 20 = VLAN SIP donde se encontrarían nuestros teléfonos que usan el protocolo SIP y que se encuentren en el segmento de red 10.10.10.X /24 y así enlazaríamos nuestro servidor Asterisk (claro si tuvieramos uno en la red, particularmente tengo 2 asterisk locales y un asterisk remoto unido con el protocolo IAX administrándolos).

No hay comentarios:

Publicar un comentario