miércoles, 25 de mayo de 2011

Enrutamiento en Centos

Introducción 

Una de las posibilidades que nos ofrece Centos es la de poder actuar como enrutador, es decir, decidir la ruta de los paquetes que reciba por cualquiera de sus interfaces de red. En este manual veremos un ejemplo de configuración básica fácilmente.

Arquitectura de red
-Supongamos el siguiente caso: disponemos de un servidor en sistema operativo Centos o Redhat ejecutándose sobre una maquina virtual con dos tarjetas de red, que deseamos que actué como router uniendo a una red.

Posteriormente tendríamos que configurar el filtrado para que acepte el re-direccionamiento de paquetes desde dentro hacia fuera de nuestra red y mediante a NAT permita que los PCs de la red interna naveguen con la dirección ip 'Publica' del servidor. E router Centos tiene una tarjeta (eth0) dinámico y por otro lado tenemos otra tarjeta (eth1) configurada con la ip 192.68.1.1/24 conecta a un switch para dar servicio a nuestra red interna que utiliza el rango 192.168.1.0/24.
Deberemos permitir que la la subred  192.168.1.0 pueda salir a  Internet. Pasando por el router.

Estoces en la maquina de sistema operativo Centos  tenemos dos tarjetas de red  adaptador1 (eth0) esta es la que da salida a Internet adaptador2 (eth1) sera la red interna.
Tenemos un cliente xp con un adaptador de red 
En la maquina router ponemos la dirección ip como puerta de enlace en la eth1 en la siguiente ruta: 
mostrare como esta la tarjetas configuradas 
En el cliente XP ponemos una dirección de mismo rango.
Para activar el Enrutamiento en un sistema Centos, solo basta con poner a "1" la variable ip_forward del sistema, es decir, basta con ejecutar desde la consola de root: 

//activar el Enrutamiento en un sistema Linux 

#echo "1" > /proc/sys/net/ipv4/ip_forward


Router Centos
Tendriamos que indicar que se acepten todos los paquetes que son para reenviar, aquellos que lleguen a nuestra maquina pero que no es ella la destinataria. Tendríamos que aceptar los paquetes de tipo FORWARD, como veremos a continuacion. Por otro lado, tendiramos que indicar que los paquetes que llegan desde nuestra red interna (192.168.1.0/24) y que salgan por la interfaz eth0 hacia el router (eth0), despúes de enrutarlos en nuestra maquina (POSTROUTING), debemos enmascararlos (MASQUERADE), es decir, hacer NAT. Los comandos a ejecutar serian:

//haciendo NAT en el servidor 


#iptables -A FORWARD -j ACCEPT
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

O podriamos realizar un pequeño ecript que activara el enrutamiento y el NAT  y otro para desactivarlo:

/////Activar-Enrutamiento.sh
 ///desactivar-Enrutamiento.sh
Nuestro servidor se convertiría en un router. Si todas las comunicaciones de la red pasan por la nuestro servidor, podremos tenerlas controladas, como veremos en las siguientes secciones.

Crear y eliminar rutas fijas

Cuando activamos el enrutamiento en centos, nuestra maquina se convierte en un router automatico, de forma que todo lo que entre por la interfaz eth1 con destino a una red diferente de la definida en eth1, lo reenviara por la interfaz eth0 y de igual forma, todo lo que entre por la interfaz eth0 con destino a una red diferente de la definida en eth0, lo reenviara por la interfaz eth1. ES el funcionamiento normal de un router, enrutar todo.

Lo normal es que la interfaz eth0 tenga una ip dinámica en conexion a Internet, pero la interfaz eth1 deberá tener configurada la puerta de enlace, para que exista una salida a Internet

Podemos crear una ruta para una ip concreta para que salga cierto PC

# route add 192.168.1.10 eth0

En lugar de una ip concreta, quizás nos interese crear una ruta para toda una red. Teniendo en cuenta que la red es la 192.168.1.0/24, el comando a ejecutar seria:

//crear una ruta para una red concreta

Si queremos eliminar una ruta, utilizaremos el parámetro 'del' seguido de la ip o la red destinataria. Ejecutaríamos el siguiente comando:

//eliminar una ruta 

Si queremos ver la configuración de la tabla de rutas, debemos ejecutar el comando route sin parámetros:

//ver rutas

#route 
Pruebas de conexión 

Si hacemos un ping desde la eth1 de la router Centos a el cliente xp (192.168.1.5)
Si hacemos ping desde el cliente XP a su puerta de enlace (gateway) osea el router
y si le hacemos un ping a www.google.com
y miramos el navegador 
-La maquina no puede resolver nombre. Una solución seria ir instalar un servidor DNS en nuestra red interna en caso de que tengamos mas servicio instalados.

-Pero si no es asi podemos ponerle a cliente una dirección de DNS publico en este caso pusimos una de los DNS  de google.com
Volvemos a hacer ping a google.com
Y miramos nuestro navegador
FIN



No hay comentarios:

Publicar un comentario