DHCP RELAY

IMPLANTACIÓN DE UN DHCP RELAY

DHCP Relay es un protocolo usado por si tienes otro servidor de DHCP en la red. Esta sirve para que todas las peticiones que le lleguen a tu router sean reenviadas hacia el otro equipo.

Esto es muy útil si quieres que el servidor de DHCP te de más funcionalidad, por ejemplo puedes tener una maquina en linux que tenga el servidor de DHCP corriendo y que cada vez que asigna una IP.


 Este es un ejemplo de dhcp relay pero en mi caso me voy a encontrar con el siguiente caso.
Nos encontramos con un servidor 1 que por una de sus interfaces va a salir hacia internet (eth1), tenemos otra interfaz que saldrá hacia el servidor 2 (eth2) y por último otra interfaz que irá hacia una red interna(folgored), con un cliente 1 que es el cliente del servidor 1(eth0).

Nos encontramos también con el servidor 2, unido al servidor 1 por una red intermediaria(10.10.0.0/24). en éste servidor 2 tenemos dos interfaces de red, una irá a comunicarse con el servidor 1 (eth0) y la otra interfaz con la red interna del segundo servidor y cliente 2(folgored2 por la eth1.

TOPOLOGÍA:

Tendriamos que disponer en el servidor 1 de tres interfaces de red y tenerlas configuradas, generando a mano el fichero:

/etc/udev/rules.d/70-persistent-net rules

Escribiendo lo siguiente:

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="(La MAC de la interfaz)", NAME="eth0"(La interfaz que tengamos que configurar)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="(La MAC de la interfaz)", NAME="eth1"(La interfaz que tengamos que configurar)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="(La MAC de la interfaz)", NAME="eth2"(La interfaz que tengamos que configurar) 

De esta manera estaría generando manualmente las interfaces.
En el servidor 2 tendremos dos interfaces configuradas escribiendo lo mismo en el mismo fichero, en el cliente 1 tendremos una interfaz y en el cliente 2 lo mismo. De esta manera tendríamos la topología hecha.


En el servidor 2 para las dos interfaces que tendremos, deberemos tener lo mismo configurado con las interfaces correspondientes.

En el fichero nano /etc/network/interfaces

tener configurado las interfaces eth0, eth1 y eth2 en servidor 1.

auto eth0 
iface eth0 inet static
address (Dirección IP)
netmask (Máscara de Subred)

auto eth1
iface eth1 inet dhcp

auto eth2
iface eth2 inet static
address (Dirección IP)
netmask (Máscara de Subred)

Tener en el cliente dentro del mismo fichero configurado:

auto eth1
iface eth1 inet dhcp

En el servidor tanto en el 1 como en el 2 estableceremos unas IP tables para hacer el puente, para tener salida a INET. En el fichero /etc/rc.local lo editamos con nano para establecer lo siguiente.

echo "1" >> /proc/sys/net/ipv4/ip_forward
iptables -X
iptables -F
iptables -X -nat
iptables -F -nat
iptables -t nat -A POSTROUTING -s (dirección de subred de origen) -o (dirección de destino/salida) -j MASQUERADE.
Y FINALMENTE sh /etc/rc.local para empezar a ejecutar el puente. 



INSTALACIÓN Y CONFIGURACIÓN:

Una vez que tenemos la topología de la red y los puentes configurados instalaremos el dhcp relay con el siguiente comando:

1º apt-get install isc-dhcp-relay

2º estableceremos unos parámetros desde la pantalla del entorno gráfico de la configuración del servicio.

Establecer la IP del servidor DHCP raiz, y por donde se va a comunicar por el equipo cliente, generará un fichero llamado dentro de esta ruta:  /etc/default/isc-dhcp-relay.


Nota: En el caso de no funcionar con los parámetros que nos aparezca en el entorno gráfico ó que decidamos no configurar nada por el entorno gráfico lo que haremos será lo siguiente:

a) dpkg -reconfigure isc-dhcp-relay
b) /etc/default/isc-dhcp-relay

3º Por último lo que haremos será lo siguiente para levantar el servicio:

dhcrelay (Dirección del equipo que tendrá el DHCP Relay) -i (interfaz del equipo, ya sea eth1,eth0...)

En el servidor 1 estableceremos lo siguiente para definir una ruta para la subred con la que esté trabajando:

route add -net (Dirección de subred) netmask (Máscara de subred) gw (IP de puerta de enlace, si la hubiese) y (la interfaz de entrada hacia la red interna de la topología).

En el servidor 1 también estableceremos el rango de direcciones IP empezando por el equipo que se encuentra más lejos de la topología hasta el equipo que se encuentra más cerca de la topología.

Editaremos el fichero /etc/dhcp/dhcp.conf con nano.

subnet (Dirección de Subred más lejana) netmask (Máscara de Subred más lejana) {
option routers (La IP que hará de puerta de enlace);
option domain-name-servers (Direcciones Ip que tendrán como servidores de dominio, ó bien 8.8.8.8);
range (Aquí irá el rango de direcciones IP que concederá el servidor DHCP);
}


subnet (Dirección de Subred) netmask (Máscara de Subred) {
AQUÍ SI ES LA QUE TENEMOS ENTRE MEDIAS DE 2 SERVIDORES NO HACE FALTA CONFIGURAR EL RESTO, PERO ES NECESARIO QUE APAREZCA EN ESTA CONFIGURACIÓN PARA QUE LO RECONOZCA EL SERVIDOR PPAL DHCP. (Nota: no siempre hace falta colocar esta linea, dependiendo de la topologia que nos encontremos)
}
 


subnet (Dirección de Subred más cercana) netmask (Máscara de Subred más cercana) {
option routers (La IP que hará de puerta de enlace);
option domain-name-servers (Direcciones Ip que tendrán como servidores de dominio, ó bien 8.8.8.8);
range (Aquí irá el rango de direcciones IP que concederá el servidor DHCP);
}
 



Finalmente reiniciando los servicios de DHCP server y de Networking debería de estar funcionando.Para comprobarlo vemos las interfaces para ver las IP que nos ha dado y las interfaces de red que tenemos, y finalmente hacemos un ping a google.es

/etc/init.d/isc-dhcp-server restart
/etc/init.d/networking restart
ifconfig