Encaminhamento de IP para IP com iptables [centos]

1

Eu tenho 2 servidores. Servidor 1 com ip 1.1.1.1 e servidor 2 com ip 2.2.2.2

Meu domínio example.com aponta para 1.1.1.1 no momento, mas logo mudo para ip 2.2.2.2. Eu já configurei um TTL baixo para o domínio example.com, mas algumas pessoas ainda vão acessar o ip antigo depois que eu alterar o endereço IP do domínio.

Agora ambas as máquinas executam o centos 5.8 com o iptables e o nginx como um servidor web.

Desejo encaminhar todo o tráfego que ainda atinge o servidor 1.1.1.1 para 2.2.2.2, para que não haja tempo de inatividade.

Agora encontrei este tutorial: link mas não consigo fazer funcionar.

Eu habilitei o encaminhamento de ip: echo "1" > /proc/sys/net/ipv4/ip_forward

Depois disso, executei estes dois comandos:

/sbin/iptables -t nat -A PREROUTING -s 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 2.2.2.2:80
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE

Mas quando carrego http://1.1.1.1 no meu navegador, ainda recebo as páginas hospedadas no 1.1.1.1 e não o conteúdo do 2.2.2.2. O que estou fazendo errado?

    
por Mr.Boon 27.10.2012 / 12:16

2 respostas

2

Tente alterar -s 1.1.1.1 para -d 1.1.1.1

Você deseja corresponder o endereço de destino e não o endereço de origem ...

Você também precisa ajustar sua regra MASQUERADE para incluir a interface que o tráfego assume no caminho de volta. (Muito provavelmente eth0 ou similar).

Faça isso com o sinalizador -o. Por exemplo, assim: iptables -t nat -A POSTROUTANDO -o eth0 -j MASQUERADE

    
por 27.10.2012 / 12:19
0

As duas máquinas estão na mesma sub-rede e podem se comunicar sem passar por outros roteadores? Caso contrário, o método descrito não funcionará mesmo se você configurá-lo corretamente.

Ao fazer essas migrações, costumo usar rinetd para encaminhar portas TCP aleatórias. Ou o mod_proxy do Apache, se você usar o Apache de qualquer maneira (o que você não faz, mas eu faço).

    
por 27.10.2012 / 19:08