martes, 18 de mayo de 2010

Servidor DHCP sobre GNU/Linux Fedora

He visto varias deficiencias en algunos compañeros de clase respecto a redes (y algunos egresados), así que voy a hacer un compendio de configuración de los servidores más básicos sobre Linux.

En esta primera entrega vamos a empezar con el servidor DHCP.

Dynamic Host Configuration Protocol
(Protocolo de Configuración Dinámica de Host)




"El DHCP es una alternativa a otros protocolos de gestión de direcciones IP de red, como el BOOTP (Bootstrap Protocol). DHCP es un protocolo más avanzado, pero ambos son los usados normalmente."

Es un protocolo que permite a dispositivos individuales en una red de direcciones IP obtener su propia información de configuración de red (dirección IP; máscara de sub-red, puerta de enlace, etc.) a partir de un servidor DHCP. DHCP existe desde 1993 como protocolo estándar y se describe a detalle en el RFC 2131.

Sin la ayuda de un servidor DHCP, tendrían que configurarse de forma manual cada dirección IP de cada host que pertenezca a una Red de Área Local. Si un host se traslada hacia otra ubicación donde existe otra Red de Área Local, se tendrá que configurar otra dirección IP diferente para poder unirse a esta nueva Red de Área Local. Un servidor DHCP entonces supervisa y distribuye las direcciones IP de una Red de Área Local asignando una dirección IP a cada anfitrión que se una a la Red de Área Local.

Existen tres métodos de asignación en el protocolo DHCP:

  • Asignación manual: La asignación utiliza una tabla con direcciones MAC (acrónimo de Media Access Control Address, que se traduce como dirección de Control de Acceso al Medio). Sólo los anfitriones con una dirección MAC definida en dicha tabla recibirá el IP asignada en la misma tabla. Ésto se hace a través de los parámetros hardware ethernet y fixed-address.
  • Asignación automática: Una dirección de IP disponible dentro de un rango determinado se asigna permanentemente al anfitrión que la requiera.
  • Asignación dinámica: Se determina arbitrariamente un rango de direcciones IP y cada host conectado a la red está configurada para solicitar su dirección IP al servidor cuando se inicia el dispositivo de red, utilizando un intervalo de tiempo controlable (parámetros default-lease-time y max-lease-time) de modo que las direcciones IP no son permanentes y se reutilizan de forma dinámica.

Luego de algunos conceptos básicos importantes para entender qué es lo que estamos haciendo, ya que lo importante no es "subir" un servidor sino entender su funcionamiento, y de acuerdo a eso ver sí es necesario tenerlo o no.

INSTALACIÓN

Como nuestra configuración lo vamos a hacer sobre un sistema fedora, usaremos el comando "yum" para instalar paquetes, si ustedes usan algún sistema basado en Debian (Como Ubuntu) deben usar "apt-get", para Red Hat Enterprise "up2date".

  • # yum -y install dhcp
Aqui estamos instalando el paquete dhcp.

Parámetros configurables


Como casi todos los servidores en Linux, el servidor DHCP tiene un archivo de configuración /etc/dhcp/dhcpd.conf.

Un servidor DHCP puede proveer de una configuración opcional a la computadora cliente. Dichas opciones están definidas en RFC 2131.

Lista de opciones configurables:

* Dirección del servidor DNS
* Nombre DNS
* Puerta de enlace de la dirección IP
* Dirección de Publicación Masiva (broadcast address)
* Máscara de subred
* Tiempo máximo de espera del ARP
* MTU (Unidad de Transferencia Máxima)
* Servidores NIS (Servicio de Información de Red)
* Dominios NIS
* Servidores NTP (Protocolo de Tiempo de Red)
* Servidor SMTP
* Servidor TFTP
* Nombre del servidor WINS


  • # gedit /etc/dhcp/dhcpd.conf

authoritative;
ddns-updates on;
ddns-update-style ad-hoc;
option domain-name-servers 10.0.0.1, 202.188.0.133, 202.188.1.5;
option subnet-mask 255.255.255.0;
option routers 10.0.0.1;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.201 192.168.1.220;
default-lease-time 86400;
max-lease-time 86400;
option routers 192.168.1.1;
option ip-forwarding off;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.100;
option nntp-server 192.168.1.100;
option netbios-name-servers 192.168.1.100;
}

subnet 10.0.0.0 netmask 255.255.255.0 {
ddns-updates on;
range 10.0.0.60 10.0.0.150;
}

group {
host 001_1 {
ddns-updates on;
hardware ethernet 00:50:8b:aa:f3:24;
fixed-address 10.0.0.50;
}

host 001_2 {
ddns-updates on;
hardware ethernet 00:50:8b:aa:f3:24;
fixed-address 10.0.0.50;
}

host cosh {
hardware ethernet 00:30:6e:28:5c:3f;
fixed-address 10.0.0.9;
}
}


ddns-domainname - Mediante el uso de este parámetro, se añadirá al final del nombre de la máquina cliente, para formar un nombre de dominio totalmente cualificado (FQDN).

ddns-update-style - Define el método de actualización automática de las DNS. Los valores pueden ser ad-hoc, interim y none.

ddns-updates - Activa la actualización DNS mediante los valores asignados por DHCP.

default-lease-time - Especifica la cantidad de tiempo, en segundos, que será mantenida una asignación de direcciones, siempre y cuando el cliente no haya especificado algo concreto.

fixed-address - Esta opción aparece únicamente en una declaración de host. Define las direcciones estática a asignar a un host determinado.

group - Inicia la declaración de Grupo.

hardware - Especifica el hardware de un cliente BOOTP para que éste sea reconocido por el servidor de DHCP. Tipo puede ser ethernet o token-ring y dirección será una serie de octetos hexadecimales inequívocos de la tarjeta (por ejemplo, hardware ethernet 00:50:b3:c5:60:23).

max-lease-time - Especifica la cantidad máxima de tiempo, en segundos, que será mantenida una asignación de direcciones. No está sujeta a esta especificación la asignación dinámica BOOTP.

min-lease-time - Especifica la cantidad mínima de tiempo, en segundos, que será mantenida una asignación de direcciones.

one-lease-per-client - Cuando la opción se iguala a on y un cliente solicita una asignación de dirección (DHCPREQUEST), el servidor libera de forma automática cualquier otra asignación asociada a dicho cliente. Con esto se supone que si el cliente solicita una nueva asignación es porque ha olvidado que tuviera alguna, luego tiene un sólo interfaz de red. No dándose esta situación entre los clientes no es muy aconsejable el uso de esta opción.

range ip-menor ip-mayor - En una declaración de subred, este parámetro define el rango de direcciones que serán asignadas. Pueden darse dos instrucciones range seguidas del modo:

range 192.168.0.11 192.168.0.100;
range 192.168.0.125 192.168.0.210;

server-identifier - Identifica la máquina donde se aloja el servidor de DHCP. Su uso se aplica cuando la máquina en cuestión tiene varias direcciones asignadas en un mismo interfaz de red.

server-name - Nombre del servidor que será suministrado al cliente que solicita la asignación.

shared-network - Declaración de Subred compartida.
subnet - Declaración de Subred.

option domain-name - Nombre de dominio que usará el cliente en una resolución de nombres vía DNS. Normalmente, será el nombre de dominio que se añadirá al host que realiza la petición de asignación.

option domain-name-servers - Define el nombre de los servidores DNS.

option finger-server - Define el nombre de los servidores Finger disponibles para el cliente.

option host-name - Especifica el nombre del cliente. Puede ser un nombre cualificado o no, aunque se recomienda que el nombre del dominio se asigne mediante option domain-name. Sólo se asignará el nombre al cliente en el caso de no tener éste asignado ninguno.

option irc-server - Define el nombre de los servidores de IRC disponibles para el cliente.

option lpr-servers - Define una lista de servidores de impresión LPR conforme al estándar RFC 1179. Se listan por orden de preferencia.

option nds-servers - Define una lista de servidores NDS disponibles para el cliente. Se usa en conjunción de option nds-context , que establece el nombre de inicio de la red Netware y option-nds-tree-name , que especifica el nombre del árbol a usar por el cliente solicitante.

option netbios-name-servers - Especifica un listado con los servidores WINS disponibles para los clientes.

option nis-servers - Define la lista de servidores NIS (Sun Network Information Server) disponibles. Los servidores se listan en orden de preferencia. Para establecer el nombre del dominio NIS, se usará option nis-domain .

option ntp-server - Define los servidores horarios de NTP disponibles. Se listan en oreden de preferencia.

option pop-server - Define los servidores de POP3 disponibles, listados en orden de preferencia.

option routers - Se definen una serie de routers (en la práctica, puertas de enlace), listadas en orden de preferencia, disponibles para el acceso al exterior por parte del cliente.

option smtp-server - Define la lista de servidores SMTP disponibles, listados en orden de preferencia.

option subnet-mask - Definición de la máscara de subred general.



Para indicarle la tarjeta de red que queremos usar con el servidor DHCP:
  • # gedit /etc/sysconfig/dhcpd

Y ponemos el nombre de la tarjeta a usar, al parametro:

DHCPDARGS el valor wlan0, wlan1, eth0, eth1, eth2, ... según corresponda al de nuestra tarjeta.



Ahora, hacemos que el servicio se levante automáticamente:
  • # chkconfig dhcpd on

Reiniciamos el servicio:

  • # service dhcpd restart


Con eso ya tenemos nuestro servidor DHCP, listo para ser usado.



Saludos,


NOTA: Los parámetros deben ser modificados de acuerdo a sus necesidades, los que están en el ejemplo sólo son ilustrativos.





No hay comentarios:

Publicar un comentario