Jan
16
2007

Dos proveedores de Internet a la vez

Muy buen artículo vía sysadm


Cada vez es más habitual contratar accesos a Internet alternativos, redundantes, sea por soportar nuevas necesidades de ancho de banda o porque la disponibilidad de los sistemas que administramos se torna crítica. En estos casos, tenemos que configurar los sistemas para que sean capaces de responder desde cualquiera de las conexiones, de una forma transparente, y es lo que vamos a simular en este post.
Debo recalcar que con la simulación que aquí desarrollamos, el balanceo sólo se producirá en base a las propiedades round-robin de nuestros servidores DNS. Como sugerencia, podemos usar algún servidor DNS que reparta la carga verificando la integridad del servidor que se encuentra detrás y conseguiremos la mayor disponibilidad de nuestros servicios.

Objetivo

Utilizando VMware Server vamos a montar tres servidores Linux: dos con funciones de ruteo, y un tercero, el Linux con el que vamos a trabajar.

Los dos con funciones de router tendrán doble tarjeta de red, una de ellas conectada directamente a uno de nuestros interfaces físicos de red, para que con el bridge configurado en VMware vean nuestra LAN, y el segundo interfaz dentro de sendas redes virtuales; el tercer equipo será el servidor al que le activaremos el doble gateway a Internet. En el dibujo siguiente vemos la estructura:

Estructura de la red virtual
La zona recuadrada es la zona virtual que vamos a configurar.

Preparativos

Necesitamos crear tres máquinas virtuales:

  1. rISP1: El primero de los router. Yo he usado Damn Small Linux, como distribución muy sencilla, de arranque desde imagen, tipo Knoppix, y, como ésta basada en Debian. Con discos de 200MB es más que suficiente y después de arrancarla, desde el menú de su entorno gráfico, la he instalado en su disco virtual. En VMware le he asignado dos interfaces ethernet, conectado el primero de ellos al bridge, VMnet0, y el segundo a VMnet2.eth0 en bridge.
    eth1 en VMnet2.
  2. rISP2: El segundo router. Sólamente he copiado la carpeta de la máquina virtual anterior y la he importado en VMware. He cambiado la conexión de su segundo interfaz de red a la red virtual VMnet3.eth0 en bridge.
    eth1 en VMnet3.
  3. LAMP: Para esta máquina he montado una OpenSuSE 10.1, en la que crearé mi servidor web al que accederemos. Esta máquina no estará conectada físicamente a ninguna red. En VMware le he creado tres interfacez de red, conectados a VMnet2, VMnet3 y VMnet1.eth0 en VMnet2.
    eth1 en VMnet3.
    eth2 en VMnet1.

Una vez arrancadas e instaladas las máquinas virtuales, configuraremos las IP que hemos definido en el esquema anterior:

Configuración IP en los router rISP1 y rISP2

En rISP1 y rISP2, editando /boot/grub/menu.lst, cambiamos todos los arranques para que las IP no se autoconfiguren por DHCP añadiendo la opción nodhcp. Una de las líneas antes del cambio:

kernel /boot/linux24 root=/dev/hda1 quiet vga=normal noacpi noapm nodma noscsi frugal

y después

kernel /boot/linux24 root=/dev/hda1 quiet vga=normal noacpi noapm nodma noscsi frugal nodhcp

(fijaos en la última palabra de la línea).

Ahora que ya no se autoconfiguran le indicamos al Damn Small Linux sus nuevas IP. Creamos en /etc/sysconfig/network-scripts los ficheros ifcfg-eth0 e ifcfg-eth1 con este contenido:

ifcfg-eth0 en rISP1:

DEVICE=eth0
IPADDR=192.168.0.201
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
ONBOOT=yes

ifcfg-eth1 en rISP1

DEVICE=eth1
IPADDR=192.168.145.254
NETMASK=255.255.255.0
NETWORK=192.168.145.0
BROADCAST=192.168.145.255
ONBOOT=yes

ifcfg-eth0 en rISP2:

DEVICE=eth0
IPADDR=192.168.0.202
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
ONBOOT=yes

ifcfg-eth1 en rISP2

DEVICE=eth1
IPADDR=192.168.146.254
NETMASK=255.255.255.0
NETWORK=192.168.146.0
BROADCAST=192.168.146.255
ONBOOT=yes

Y para terminar añadimos en el fichero /opt/bootlocal.sh de ambos equipos lo siguiente:

ifup -a
echo 1 >/proc/sys/net/ipv4/ip_forward

Con ifup -a levantamos la red con los parámetros definidos antes. Con la segunda línea activamos el ruteo en el kernel de ambos router.

Para tener más control de por donde se dirige el tráfico activo apt-get, con dpkg-restore e instalo los paquetes tcpdump y tcpflow:

dpkg-restore
apt-get install tcpdump
apt-get install tcpflow

Configuración IP en el servidor LAMP
Usando yast2 configuro la red siguiendo el esquema, resaltando que por ahora le configuro únicamente un gateway (192.168.145.254). Eso es lo que podemos hacer con la herramienta.

Activación del doble gateway en LAMP

Primero creamos las tablas de ruteo que definiremos más adelante. Para ello editamos el fichero /etc/iproute2/rt_tables y le añadimos las siguientes líneas:

200     rISP1
201     rISP2

Siguiendo las instrucciones de la página Linux Advanced Routing & Traffic Control, creo un fichero /root/multigateway con este contenido:

#!/bin/bash

IF1=eth0
IP1=192.168.145.11
P1=192.168.145.254
P1_NET=192.168.145.0/24

IF2=eth1
IP2=192.168.146.11
P2=192.168.146.254
P2_NET=192.168.146.0/24

ip route add $P1_NET dev $IF1 src $IP1 table rISP1
ip route add default via $P1 table rISP1
ip route add $P2_NET dev $IF2 src $IP2 table rISP2
ip route add default via $P2 table rISP2

# El equipo ya sabe llegar a sus subredes:
#ip route add $P1_NET dev $IF1 src $IP1
#ip route add $P2_NET dev $IF2 src $IP2

# Ya lo tenemos por el único default gateway que configuramos
#ip route add default via $P1

# Activamos las tablas cuando el origen sea de la IP del gateway
ip rule add from $IP1 table rISP1
ip rule add from $IP2 table rISP2

Y al ejecutarlo ya estará el segundo gateway activo.

Me ocupo de que se ejecute al arranque del OpenSuSE, aunque eso lo dejaré pendiente para otro post.

Compartir:
  • Meneame
  • Digg
  • del.icio.us
  • BarraPunto
  • Facebook
  • Google
Escrito por deambulando en: Linux, Software, Tecnologia | Top

5 Comments »

  • Paco

    Hola

    Es un articulo muy bueno, pero no me aparece la imagen con la estructura de la red. Puedes tocar el enlace?

    en un par de dias pasare por aqui de nuevo a ver si ya esta.

    Gracias por el articulo

    Comment | 25 January, 2007
  • vaya, muy buenas

    hay un problema, este artículo, no es mío, tal y como he puesto en el principio, el problema es que he ido a la web, y no encuentro el artículo! e smuy extraño, si lo encuentro lo pongo :D

    Comment | 25 January, 2007
  • webmaster@sysadm.org

    Me alegra que parezca interesante:
    http://www.sysadm.org/blog/laboratorio-vmware-linux-y-dos-proveedores-de-internet/

    Salu2

    Comment | 27 January, 2007
  • Wil S

    Hola a todos
    mi preguntoa que si sepuede Hacer con Windows serve 2003

    Comment | 31 March, 2007
  • si!, pon un vmware con linux, y asigna le la otra tarjeta de red

    Comment | 1 April, 2007

RSS feed for comments on this post. TrackBack URL

Leave a comment

Aeros Theme | Wallpaper by GgarfielD |Deambulando.com 2006-2008 | Top