User Tools

Site Tools


cluster:acceso_internet_nodos

Permitir a los nodos trabajadores acceder a Internet a través del nodo principal

Control de versiones

Fecha Actividad Autor
05/12/2010 Publicación inicial Jorge Iván Meza Martínez.
08/06/2011 Se agregó la sección de Implementación permanente Jorge Iván Meza Martínez.

Introducción

La contínua comunicación entre los nodos trabajadores y el nodo central del cluster hace que sea muy conveniente separarlos en una red independiente que sólo puede ser vista por el nodo central mediante el uso de dos interfaces de red. La primera de ellas hacia la red de la Universidad y la segunda hacía los nodos trabajadores.

Esta arquitectura de red evita que el tráfico de los nodos trabajadores llegue hasta la red de la Universidad, en primera instancia esto también implica que los nodos trabajadores sólo podrán verse entre ellos, quedando aislados de las redes mas externas incluyendo a Internet. Esto en la mayor parte del tiempo puede ser por razones de seguridad una situación ventajosa, sin embargo eventualmente se presentarán algunos momentos en la administración de los servidores en los cuales será conveniente acceder a Internet, como lo será en el caso de la actualización del sistema operativo y la descarga de nuevas aplicaciones o datos externos.

Una solución elaborada será instalar en el nodo principal un servicio de proxy/caché como Squid o Polipo, sin embargo si el tráfico será escaso o poco frecuente probablemente sea mejor considerar una solución mas simple y con un menor riesgo de seguridad.

En el presente artículo se relacionan los pasos necesarios para configurar al nodo principal del cluster para que actúe como enrrutador de la red interna de los nodos trabajadores, y a estos para que accedan a las redes externas e Internet (si está disponible) a través de esta nueva puerta de enlace.

Supuestos

Para la implementación de este procedimiento se ha supuesto la siguiente arquitectura de red para el cluster.

El nodo principal del cluster cuenta con dos interfaces de red: eth0 que se comunica con la red LAN de la Universidad y eth1 que se conecta con los nodos trabajadores, los cuales sólo cuentan con una única interfaz de red eth0. Estos últimos se encuentran inicialmente aislados del exterior ya que no son enrrutados hacía la red LAN y eventualmente hacia Internet.

Implementación del enrrutamiento

Configuración en el nodo principal del cluster

Este actuará como enrrutador para la información enviada desde los nodos trabajadores y les permitirá entonces acceder a las redes exteriores. Para lograr esto es necesario implementar en él las siguientes modificaciones a su configuración.

Activar el envío de paquetes del kernel

Esto se puede implementar de manera temporal (perdurará al reinicio del sistema) mediante la ejecución del siguiente comando.

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

Establecer la regla de filtrado

# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.56.0/24 -j MASQUERADE

Esta instrucción le indica al nodo principal que permita el paso de los paquetes que vienen desde la red de los nodos trabajadores (192.168.56.0/24) hacía la otra red, en este caso la LAN (192.168.1.0), que se accede a través de la interfaz de red eth0.

Esta modificación desde la línea de comando no es persistente, por lo cual se deberá configurar en alguno de los archivos que se ejecutan al inicio.

Permitir el acceso al servicio DNS

Este paso es opcional, pero probablemente si no se lleva a cabo el enrrutamiento será exitoso si se utilizan direcciones IP directamente mas no si se intenta acceder utilizando nombres FQDN de los recursos en Internet ya que los intentos de acceso al DNS serán filtrados por el nodo principal.

Para permitir el acceso al servicio DNS es necesario permitir el paso de paquetes UDP cuyo destino sea el puerto 53 de la siguiente manera.

# iptables -A INPUT -m state –state NEW -m udp -p udp –dport 53 -j ACCEPT

Igual que en el paso anterior, para hacer persistente esta modificación es necesario incluírla en un archivo como /etc/sysconfig/iptables o realizarla con el system-config-securitylevel si se utiliza.

Implementación permanente

Si se desea que esta configuración sea permanente, es decir que perdure después de que se reinicie el nodo principal entonces las mismas modificaciones deberán realizarse de la siguiente manera.

Para realizar la activación del envío de paquetes a nivel kernel realizar el siguiente cambio.

# vi /etc/sysctl.conf
 
    net.ipv4.ip_forward = 1

La consecuencia de esta modificación puede verifcarse mediante la ejecución del siguiente comando en el shell.

# sysctl -p | grep ipv4
 
    net.ipv4.ip_forward = 1
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    net.ipv4.tcp_syncookies = 1

Para establecer las reglas de filtrado de manera permanente incluya las siguientes instrucciones en el archivo /etc/sysconfig/iptables según corresponda, sin embargo debe tenerse cuidado si se utiliza la aplicación system-config-securitylevel para administrar el firewall ya que esta puede sobreescribir el archivo y provocar la pérdida de estos cambios.

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT 
COMMIT
#####################################################################
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.56.0/24 -o eth0 -j MASQUERADE 
COMMIT

Configuración de los nodos trabajadores

Es necesario finalmente indicarle a los nodos trabajadores que el nodo principal del cluster será a partir de ahora su nueva puerta de enlace. Para hacer esto se debe modificar el siguiente parámetro de su configuración con la dirección IP del servidor principal configurado anteriormente.

    GATEWAY = 192.168.56.100

Esta modificación puede realizarse uno de los siguientes puntos de configuración de los nodos trabajadores.

  1. El archivo /etc/sysconfig/network.
  2. El archivo /etc/sysconfig/network-scripts/ifcfg-eth0.

Si el cambio se aplica en el primero de ellos la modificación tendrá un alcance global sobre todas las interfaces de red presentes en el nodo. Si se aplica sobre el segundo archivo, la modificación será específica para la interfaz de red eth0. En el caso de los nodos trabajadores, estos sólo tienen una única interfaz de red así que ambas opciones tienen iguales consecuencias.

Finalmente es necesario reiniciar el servicio de red del nodo trabajador para garantizar que los cambios realizados tengan efecto.

# /etc/init.d/network restart

Enlaces

cluster/acceso_internet_nodos.txt · Last modified: 2012/02/26 22:35 (external edit)