PDF de programación - Entendiendo y configurando DHCP (Dynamic Host Configuration Protocol)

Imágen de pdf Entendiendo y configurando DHCP (Dynamic Host Configuration Protocol)

Entendiendo y configurando DHCP (Dynamic Host Configuration Protocol)gráfica de visualizaciones

Actualizado el 1 de Marzo del 2020 (Publicado el 10 de Abril del 2017)
1.077 visualizaciones desde el 10 de Abril del 2017
35,7 KB
7 paginas
Creado hace 21a (08/07/2002)
Historia

TuxTips

Artículos

Eventos

Screenshots

Info

Links

Contacto

100% Libre de M$

Principal > Artículos > Redes

Entendiendo y configurando DHCP (Dynamic Host Configuration Protocol)

(configuración basada en Red Hat 7.x)

Juan Carlos Inostroza

[email protected]

1. Qué es DHCP?

DHCP es un servicio usado en redes para
a) entregar IPs a clientes de red
b) compatibilizar con BOOTP para booteo de má quinas Diskless

DHCP posee dos componentes principales:
1) llamado "protocolo" que sirve para entrega de configuraciones específicas "per-host" desde un servidor DHCP
2) llamado "mecanismo" que sirve para la localizacion de direcciones de red a hosts.

Por sobre todo, DHCP es un modelo de cliente-servidor.


2. La explicación

En toda LAN usando TCP-IP, todos las má quinas deben tener un numero IP. Esto se puede lograr de tres maneras:
a) configurando cada cliente por separado, evitando choques de IP (configuración "per-host")
b) asignando un IP por cliente, de manera diná mica o está tica (DHCP)

Cada cliente por separado en a) tendra un número IP asignado por el administrador de red. En b) cada número IP estara asignado
dentro de un "pozo" de números IP dispuestos por el servidor DHCP.


2.1 Pero como funciona?

Aqui va una explicación má s o menos detallada de que es lo que ocurre:
(má s información, RFC1531 - RFC2131)

- Etapa de descubrimiento:
Cuando un host no posee un número IP determinado (o sea, necesita un IP de un servidor DHCP), manda un mensaje llamado
DHCPDISCOVER. Este mensaje es enviado dentro de la capa física de la red. Este mensaje incluye ademá s algunos pará metros
adicionales, como IPs sugeridos o tiempo de duración del número IP anterior que tuvo (si lo hubiera).

- Etapa de Ofrecimiento:
El mensaje llega a un servidor DHCP (los clientes que no posean el servicio DHCP ignoran este mensaje). El servidor responde de
la misma manera física, pero con un mensaje llamado DHCPOFFER. Este mensaje es enviado a toda la red (broadcast a
255.255.255.255) o únicamente al cliente. El cliente sabe como responder, ya que uno de los pará metros del mensaje
DHCPDISCOVER es la MACAddress (Dirección física de la tarjeta de red).

- Etapa de Ofrecimiento:
El cliente recibe UNA O MAS peticiones DHCPOFFER de uno o mas servidores. El cliente entonces elige (por tiempo de
respuesta, por IP, etc...es bastante oscuro el proceso de eleccion). Al elegir, el cliente envia un mensaje DHCPREQUEST al
servidor que ha elegido para su IP (server identifier), junto con otras opciones. Si el cliente no recibe mensajes DHCPOFFER,
expira la peticion y reenvia un nuevo mensaje DHCPDISCOVER.

- Etapa de Encuentro:
El servidor recibe el broadcast con el mensaje DHCPREQUEST del cliente. El servidor responde con un mensaje DHCPACK que
contiene los parametros para el cliente (el numero IP). Aqui viene la etapa de "leasing" de IP. Si el servidor no puede satisfacer el
mensaje DHCPREQUEST, el servidor igualmente debe responder con un DHCPACK. El servidor marca los numeros IPs no
disponibles.

- Etapa de Prestamo:
El cliente recibe el mensaje DHCPACK y revisa si la configuración esta OK. Si el cliente detecta un error, arroja un mensaje
DHCPDECLINE y reinicia el proceso. Si en vez de recibir un DHCPACK, el cliente recibe un mensaje DHCPNAK, el cliente
reinicia el proceso. Cuando esto ocurre (DHCPDECLINE y DHCPNAK), el cliente expira la peticion y la reinicia.

- Etapa de Devolucion:
El cliente envia un mensaje DHCPRELEASE al servidor cuando libera su IP.

OJO: Si el proceso falla a las 10 veces, NO HAY IP. Simple. (En cliente Windows (aj), el numero IP que entrega es siempre
169.254.algo.algo. Si aparece eso, fallo DHCP en algun lado)

Esto es el proceso simple y basico. Hay distintos tipos de interacciones entre C/S, sobre todo cuando un cliente YA dispone de un
numero IP (antiguo lease). En este caso, la negociacion solo ocurre con un DHCPREQUEST , DHCPACK/DHCPNAK y
DHCPRELEASE

Por tanto, los mensajes enviados entre si son:

DHCPDISCOVER: El cliente envia a toda la red fisica para encontrar servidores disponibles DHCPOFFER: Mensaje S->C en
respuesta del DHCPDISCOVER DHCPREQUEST: El cliente recibe el DHCPOFFER de un servidor y declina de otro DHCPACK
: El servidor responde con un IP y otros parametros adicionales. DHCPNAK: Mensaje S->C rechazando los parametros de
configuración (por ejemplo, que un cliente pida un IP ya asignado) DHCPDECLINE: Mensaje C->S indicando que los parametros
son invalidos DHCPRELEASE : Mensaje C->S indicando que "libera" el IP prestado y que cancela los prestamos restantes.


3. Ventajas y desventajas de uso de DHCP

Las ventajas del uso de DHCP (IMHO) son: a) solo se configura un servidor para entregar numeros IP para clientes de red b) se
entregan todos los parametros basicos de TCP-IP c) facilidad de configuración (sabia frase "prende y funciona")

Las desventajas serian (IMHO): a) Al entregar numeros IP dentro de la red, habiendo un DNS, no hay un puente intermedio entre
DNS y DHCP directo. Es decir, hay que agregar las má quinas "a mano" en el DNS. b) los mensajes tienden a fallar sobre todo si
las tarjetas de red hacen la negociacion de velocidad (mas conocido como Network Speed Auto-Sense, que falla con una rapidez
increible) ya que la red se llena de "basura fisica". No se si culpar a las tarjetas o a los HUBs, pero en mas de una oportunidad me
ha ocurrido.


4. Configurando DHCP

La mejor parte! =)

4.1 Configurando Clientes

La configuración de cliente es la má s "fá cil" de todas.
En cualquier sabor de Linux, solo es modificar el archivo ifcfg-eth0 (en RH7.1, este archivo esta en /etc/sysconfig/network-scripts.
En RH7.2, este archivo esta en dos partes (?), /etc/sysconfig/network-scripts/ y en /etc/sysconfig/networking/devices. Cual de los
dos usar? Por precaucion, ojala ambos (o que uno sea un link simbolico del otro) y verificando que la linea que dice:
BOOTPROTO=static

se cambie por BOOTPROTO=dhcp

y borrar las opciones IPADDR, NETMASK, NETWORK y BROADCAST.

Verificar ademas que dhcpcd este instalado. Si no, no funciona.

En clientes Windows (aj), en las "Propiedades de Red" (aj), especificar "Iniciar con un numero IP automaticamente".

4.2. Configurando el server:

4.2.1.- [caso 1 - una sola tarjeta de red:eth0]

El paquete dhcp- debe estar instalado. Si no esta, instalarlo via RPM (o por fuentes tambien sirve).

Verificar que exista el sigiuente archivo (y ojalá vacío):

/var/lib/dhcp/dhcpd.leases

(en las versiones anteriores de dhcp para RedHat este archivo había que crearlo a mano. Y era una de las razones porque dhcpd no
iniciaba).

Antes de modificar /etc/dhcpd.conf hay que entender un poco los parametros de configuración.
Aquí van los pará metros y una explicación corta:

# /etc/dhcpd.conf
#----------opciones globales------------
#opciones mas comunes
default-lease-time <tiempo>; tiempo de prestamo de IP por defecto (en segundos)
max-lease-time <tiempo>; cuanto tiempo estara prestado cada IP (en segundos)
option subnet-mask <mask>; indica la mascara de red
option routers <ip1>,<ip2>; indica los routers de la red
option domain-name-servers <ip1>,<ip2>; indica los servidores DNS

option "<dominio>"; indica el dominio por defecto
server-name "<nombre-host>"; indica el nombre del servidor DHCP

#opciones "exoticas"
option smtp-server <ip>,<ip>; indica servidores SMTP
option pop3-server <ip>,<ip>; indica servidores POP3
option nntp-server <ip>,<ip>; indica servidores de noticias
option irc-server <ip>,<ip>; bueno, de aqui se entiende =)

#----------opciones globales------------

#----------opciones locales------------
subnet <network> netmask <mask>; indica la subred y la mascara para los clientes
{
range <ip1> <ip2>; indica el rango de IPs a entregar
range <ip1> <ip2>; ...
....
}
#----------opciones locales------------

Es posible mezclar opciones globales y locales. Por ejemplo (en este caso, el caso 1, un servidor DHCP con una sóla tarjeta de red
eth0 con IP fijo 192.168.1.1 y mask 255.255.255.0) la configuración para atender a una LAN de al menos 20 computadores sería la
siguiente:

subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name "midominio"; #cambiar en caso de tener otro dominio =)
range 192.168.1.2 192.168.1.50; # 48 computadores
default-lease-time 21600; # 1/4 de un dia
max-lease-time 43200; # 1/2 dia
option domain-name-server 192.168.1.1; #siempre que este host sea un DNS
}

Ahora iniciar el servicio de DHCP con

# /etc/rc.d/init.d/dhcpd start

Y verificar en el log de mensajes (/var/log/messages) algo como esto:

Feb 26 04:38:07 www dhcpd: Listening on Socket/eth0/192.168.1.0
Feb 26 04:38:07 www dhcpd: Sending on Socket/eth0/192.168.1.0
Feb 26 04:38:07 www dhcpd: Listening on Socket/eth0/192.168.1.0
Feb 26 04:38:07 www dhcpd: Sending on Socket/eth0/192.168.1.0
Feb 26 04:38:07 www dhcpd: dhcpd startup succeeded

(si, son las 4:38 AM. El insomnio hace mella en el organismo humano =) )

Bien! DHCP esta funcionando. Pero todo se complica en...

4.2.2.-[caso 2. Dos tarjetas de Red (eth0 y eth1). Eth1 es de la intranet. Eth0 es de Internet. Esto tambié n es llamado "caso
típico"]

Ahora suponiendo el "caso típico" del servidor que funciona como firewall/proxy, se desea que entregue IPs a los clientes de una
red. El problema esta en que DHCP es algo "estúpido". Hay que decirle en que interfaz escuchar los mensajes. Si no, no funciona.
Así de simple.

Hay dos alternativas:
a) la elegante: agregar la tarjeta de red (eth1) en /etc/sysconfig/dhcpd en la opcion DHCPDARGS.
b) a la fuerza : modificar la linea de /etc/rc.d/init.d/dhcpd que dice

daemon /usr/sbin/dhcpd ${DHCPDARGS}

y cambiarla por

daemon /usr/sbin/dhcpd e
  • Links de descarga
http://lwp-l.com/pdf2701

Comentarios de: Entendiendo y configurando DHCP (Dynamic Host Configuration Protocol) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad