OVH Community, your new community space.

IP Failover e iptables


acesmando
16/10/2013, 11:56
Gracias a todos por las respuestas. Finalmente opté por dos vnet con la ip publica y con la privada.
Ya funciona correctamente.

Gracias!

Colagusano
15/10/2013, 19:57
yo lo tengo configurado de la siguiente manera:
el tipo de tarjeta le pongo veth /vmbr0/ eth0/ mac previamente creada en el manager / el resto por defecto.

luego en la maquina genero un fichero parecido a este en /etc/network/interfaces

con la dirección ip de la failover


************************************************** *******
# Auto generated lo interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address x.x.x.232
netmask 255.255.255.255
broadcast x.x.x.232
post-up route add x.x.x.254 dev eth0
post-up route add default gw x.x.x.254
post-down route del x.x.x.254 dev eth0
post-down route del default gw x.x.x.254

landy1103
15/10/2013, 18:39
este seria la configuracion de unas de los CT

ONBOOT="yes"

PHYSPAGES="0:2621440"
SWAPPAGES="0:524288"
KMEMSIZE="4880072704:5368709120"
DCACHESIZE="2440036352:2684354560"
LOCKEDPAGES="1310720"
PRIVVMPAGES="unlimited"
SHMPAGES="unlimited"
NUMPROC="unlimited"
VMGUARPAGES="0:unlimited"
OOMGUARPAGES="0:unlimited"
NUMTCPSOCK="unlimited"
NUMFLOCK="unlimited"
NUMPTY="unlimited"
NUMSIGINFO="unlimited"
TCPSNDBUF="unlimited"
TCPRCVBUF="unlimited"
OTHERSOCKBUF="unlimited"
DGRAMRCVBUF="unlimited"
NUMOTHERSOCK="unlimited"
NUMFILE="unlimited"
NUMIPTENT="unlimited"

# Disk quota parameters (in form of softlimit:hardlimit)
DISKSPACE="400G:440G"
DISKINODES="800000008000000"
QUOTATIME="0"
QUOTAUGIDLIMIT="10000"

# CPU fair scheduler parameter
CPUUNITS="1000"
CPUS="6"
HOSTNAME="xxx.host"
SEARCHDOMAIN="xxx.host"
NAMESERVER="10.10.11.108 8.8.8.8 8.8.4.4 2001:4860:4860:888 2001:4860:4860:844"
IP_ADDRESS="AAA.AAA.AAA.AAA BBB.BBB.BBB.BBB ipv6:ipv6:ipv6:ipv6::101c"
VE_ROOT="/var/lib/vz/root/$VEID"
VE_PRIVATE="/var/lib/vz/private/101"
OSTEMPLATE="centos-6-x86_64.tar.gz"
FEATURES="nfsn"
IPTABLES="ip_tables iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc ipt_REDIRECT xt_mac ipt_recent ipt_owner "
NETIF=""


Como ip AAA.AAA.AAA.AAA es la ip Failover
como ip BBB.BBB.BBB.BBB es la ip de red interna
para que los CT funcionen con ipv6 en rc.local tengo agregado los comandos
echo 1 > /proc/sys/net/ipv6/conf/all/proxy_ndp
sysctl -w net.ipv6.conf.all.forwarding=1
y de esa manera al reiniciar el nodo permite acceso ipv6 a los CT

yo asigno las ip manualmente usando el comando
vzctl set VEID --ipadd (aqui la Ipv4 o Ip red interna O ipv6) --save

landy1103
15/10/2013, 18:32
yo tengo configurada la maquina openvz con red interna y red externa configuradas con venet, pero primero debes asignarle la IP Failover y luego la ip interna de esa manera la ip principal del servidor sera la IP Failover

acesmando
15/10/2013, 18:22
Cita Publicado inicialmente por apocalipsis
Si son openvz, metele venet y no veth, con lo que te olvidas directamente de iptables (se configura automaticamente al crear la maquina virtual). En caso contrario tendras que gestionar las MACs virtuales.
Lo primero gracias por la respuesta. Lo segundo es que tambien me interesa que tengan comunicacion por la red interna.

Es posible añadir una tarjeta vnet y otra veth? Pueden convivir las dos?

Gracias!

apocalipsis
15/10/2013, 18:04
Si son openvz, metele venet y no veth, con lo que te olvidas directamente de iptables (se configura automaticamente al crear la maquina virtual). En caso contrario tendras que gestionar las MACs virtuales.


Cita Publicado inicialmente por acesmando
Hola,

Recurro a vosotros porque me estoy volviendo loco a estas alturas.
Tengo contratado un servidor dedicado con Proxmox en el que corro X maquinas virtuales de tipo OpenVZ.

La red interna de estas maquinas es 10.10.0.X.

Inicialmente cuando contrate el servidor me venia con una ip publica A.A.A.A que esta en la interfaz vmbr0.

Tengo las siguientes reglas en el /etc/network/interfaces:

Código:
post-up iptables -t nat -A POSTROUTING -s '10.10.0.0/24' -o vmbr0 -j MASQUERADE
	post-down iptables -t nat -D POSTROUTING -s '10.10.0.0/24' -o vmbr0 -j MASQUERADE
	post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.10.0.10:80
	post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.10.0.10:80
Hasta aqui funciona perfectamente. Llamo a la ip publica A.A.A.A por el puerto 80 y directamente me redirecciona al servidor 10.10.0.10 al puerto 80.

El problema lo tengo con una nueva IP failover que acabo de contratar: B.B.B.B. Tengo dos servidores web el 10.10.0.10 y el 10.10.0.9 y lo que busco es que en cada una de las ip publicas que tengo contratadas responda un server distinto, es decir:

Código:
A.A.A.A -> 80 -> 10.10.0.10 -> 80
B.B.B.B -> 80 -> 10.10.0.9 -> 80

El caso es que configuro una nueva interfaz de red vmbr3 a la que le pongo la ip nueva de failover (B.B.B.B). Hago las reglas de iptables para vmbr3 pero sigue respondiendo el nat del servidor 10.10.0.10.

El caso es que creo que OVH redirije la ip B.B.B.B a la A.A.A.A con lo cual en el server de Proxmox todo entra por la vmbr0.

Aún así, he intentado poner una regla de iptables para decirle que si el destination adress es B.B.B.B lo mande al server 10.10.0.9. Y no funciona.

Código:
post-up iptables -t nat -A PREROUTING -i vmbr0 -d B.B.B.B -p tcp --dport 80 -j DNAT --to 10.10.0.9:80
Esta es la regla que intenté poner y no hubo manera.

Ya no se que intentar. ¿Alguno teneis proxmox con dos ips para dos servers virtuales distintos y mismo puerto que me podais orientar?

Gracias!

acesmando
15/10/2013, 17:27
Hola,

Recurro a vosotros porque me estoy volviendo loco a estas alturas.
Tengo contratado un servidor dedicado con Proxmox en el que corro X maquinas virtuales de tipo OpenVZ.

La red interna de estas maquinas es 10.10.0.X.

Inicialmente cuando contrate el servidor me venia con una ip publica A.A.A.A que esta en la interfaz vmbr0.

Tengo las siguientes reglas en el /etc/network/interfaces:

Código:
post-up iptables -t nat -A POSTROUTING -s '10.10.0.0/24' -o vmbr0 -j MASQUERADE
	post-down iptables -t nat -D POSTROUTING -s '10.10.0.0/24' -o vmbr0 -j MASQUERADE
	post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.10.0.10:80
	post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.10.0.10:80
Hasta aqui funciona perfectamente. Llamo a la ip publica A.A.A.A por el puerto 80 y directamente me redirecciona al servidor 10.10.0.10 al puerto 80.

El problema lo tengo con una nueva IP failover que acabo de contratar: B.B.B.B. Tengo dos servidores web el 10.10.0.10 y el 10.10.0.9 y lo que busco es que en cada una de las ip publicas que tengo contratadas responda un server distinto, es decir:

Código:
A.A.A.A -> 80 -> 10.10.0.10 -> 80
B.B.B.B -> 80 -> 10.10.0.9 -> 80

El caso es que configuro una nueva interfaz de red vmbr3 a la que le pongo la ip nueva de failover (B.B.B.B). Hago las reglas de iptables para vmbr3 pero sigue respondiendo el nat del servidor 10.10.0.10.

El caso es que creo que OVH redirije la ip B.B.B.B a la A.A.A.A con lo cual en el server de Proxmox todo entra por la vmbr0.

Aún así, he intentado poner una regla de iptables para decirle que si el destination adress es B.B.B.B lo mande al server 10.10.0.9. Y no funciona.

Código:
post-up iptables -t nat -A PREROUTING -i vmbr0 -d B.B.B.B -p tcp --dport 80 -j DNAT --to 10.10.0.9:80
Esta es la regla que intenté poner y no hubo manera.

Ya no se que intentar. ¿Alguno teneis proxmox con dos ips para dos servers virtuales distintos y mismo puerto que me podais orientar?

Gracias!