Re: 2 ips publicas en el mismo servidor linux

"Federico Figueroa C." <[email protected]>
Newsgroups gmane.linux.region.costa-rica.events,gmane.org.user-groups.linux.gulcr
Organization Inalambrica.net
Message-ID <[email protected]>
Primero pido disculpas por enviar el correo a ambas listas y personal,
pero este correo fue enviado a la lista equivocada, linuxdemo está
enfocada a eventos relacionados u organizados por el grupo, la lista
para este tipo de preguntas es [email protected], y al no saber
si estas inscrito a la misma te respondo personalmente.  Por favor, si
necesitás continuar esta cadena hacelo en la lista adecuada. Más
información en www.linux.or.cr

On Mon, 15 Dec 2003 10:07:17 -0600 (CST)
Jorge Aguilar <[email protected]> wrote:

> Tengo 2 ips publicas xxx.xxx.xxx.xxx gw lll.lll.lll.ll
> y zzz.zzz.zzz.zzz gw mmm.mmm.mmm.mmm
> 
> Necesito que las dos direcciones permitan accesar
> desde internet los servicios en el linux server.

Para esto se necesitan las herramientas de manipulación de red
"iprotue2", todas las distribuciones modernas tienen este paquete ya.
Para saber si tu distribución las instaló ya simplemente das "ip address
list" y te debe listar las direcciones IP en cada interfaz, si no lo
hace no tenés las herramientas adecuadas.  Ademas de estas herramientas
es necesario que el kernel tenga soporte para "[*] IP: advanced router"
"[*] IP: policy routing" ambas bajo "[*]TCP/IP networking" en
"Networking Options".  Una vez que estos requerimientos se cumplen la
cosa es muy sencilla.

Lo que se requiere es crear una tabla de ruteo para cada red, esto se
hace editando el archivo /etc/iproute2/rt_tables en el cual se
encuentran las tablas de ruteo a las que el kernel puede hacer
referencia, un archivo común debe tener al menos local, main y default,
todas con un número antes. Para agregar una nueva simplemente le asignás
un numero de índice y un nombre a cada una de las tablas nuevas que vas
a agregar, por ejemplo:

50 racsa1
60 racsa2

Una vez que se tienen esas dos tablas se especifican los gateways y
reglas necesarias, en este caso la tabla racasa1 le asignamos el gateway
lll.lll.lll.lll de esta forma:

ip route add default via lll.lll.lll.lll table racsa1

y a racsa2 mmm.mmm.mmm.mmm:

ip route add default via mmm.mmm.mmm.mmm table racsa2

cuando ya tenés estas dos reglas podes asegurarte que este todo correcto
con

ip route list table <table> 

donde <table> es racas1 o racsa2.

Cualquier error extraño al dar alguno de estos comandos significa que no
tenés el soporte adecuado en el kernel o que rt_tables está mal
configurado.

Luego necesitás definir las reglas que indican que subred sale por cual
gateway, en este caso:

ip rule add from xxx.xxx.xxx.xxx lookup racsa1
ip rule add from zzz.zzz.zzz.zzz lookup racsa2

Si xxx y zzz fueran subredes es necesario dar el IP de la subred en
notación CIDR, por ejemplo si la red de xxx tiene una máscara de 24bits
(o lo que es lo mismo 255.255.255.0) se pondría xxx.xxx.xxx.0/24.

Y para finalizar es necesario refrescar el cache del ruteo del kernel
para que haga caso a las reglas nuevas con la instrucción:

ip route flush cache

Esto y mucho más sobre las capacidades de ruteo del kernel 2.4 están
documentadas en www.lartc.org (Linux Advanced Routing and Traffic
Control), en ese sitio hay un how-to bastante claro en donde se puede
aprender mucho más, como por ejemplo a balancear el tráfico entre ambas
líneas (requiere parches de kernel externos) entre otras cosas.


Federico Figueroa C.

-- 
Desuscripción: escriba a [email protected], tema
'unsubscribe' 
Problemas a: [email protected]. http://www.linux.or.cr/listas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.