Host proxy Iptables na porta

0

Eu tenho 2 servidores de duas empresas diferentes

O primeiro servidor é um VPS onde eu hospedo meus sites (digamos que ele tenha o IP 5.5.5.5) O segundo servidor é um servidor Minecraft (digamos que tenha o IP 6.6.6.6)

No meu VPS eu tenho um domínio e subdomínio para o site minecraft (digamos que o seu mc.example.com)

Se você fosse para mc.example.com no seu navegador, você terminaria no 5.5.5.5 e no site.

O que eu estou tentando fazer é, do Minecraft quando você vai para o mc.example.com, você vai acabar no 6.6.6.6.

Então, por exemplo:

mc.example.com:80       ->    5.5.5.5:80
mc.example.com:25565    ->    6.6.6.6:25565

Agora, minhas interfaces de rede são as seguintes Eu tenho dois IPs no meu VPS, o principal é venet0: 0 (5.5.5.5)

Estas são as interfaces de rede

auto lo
iface lo inet loopback
        address 127.0.0.1
        netmask 255.0.0.0
        broadcast 127.255.255.255
        up ip route replace 127.0.0.0/8 dev lo


# Auto generated venet0 interfaces
auto venet0
iface venet0 inet static
        address 127.0.0.1
        netmask 255.255.255.255
        broadcast 0.0.0.0
        up route add -net 191.255.255.1 netmask 255.255.255.255 dev venet0
        up route add default gw 191.255.255.1

auto venet0:0
iface venet0:0 inet static
        address 5.5.5.5
        netmask 255.255.255.255

auto venet0:1
iface venet0:1 inet static
        address 4.4.4.4
        netmask 255.255.255.255

Alguém por favor pode me dizer quais comandos eu precisaria escrever no iptables para fazer proxy desse servidor de minecraft do meu VPS?

Obrigado!

    
por Highstrike 06.04.2013 / 12:59

1 resposta

1

Eu simplesmente apontaria mc.example.com para 6.6.6.6, caso contrário você paga triplo por todo o tráfego de minecraft: entrada para 5.5.5.5, saída de 5.5.5.5 e entrada para 6.6.6.6. No 6.6.6.6, eu configuraria um servidor web simples que envia redirecionamentos apenas para algo como mc-web.example.com, que viveria no 5.5.5.5.

E a menos que a rede em ambas as empresas esteja configurada de forma razoavelmente relaxada (quebrada), você terá que fazer o SNAT para evitar o encaminhamento asymettric. Assim, qualquer solução de iptables possível também perde toda a informação de responsabilidade: todo o tráfego de 6.6.6.6 vem de 5.5.5.5 e 6.6.6.6 não sabe nada sobre a verdadeira fonte do tráfego.

Dito isso, isso deve funcionar:

iptables -t nat -A PREROUTING -d 5.5.5.5 --dport 25565 -j DNAT --to 6.6.6.6
iptables -t nat -A POSTROUTING -d 6.6.6.6 --dport 25565 -s '!' 5.5.5.5 -j SNAT --to-source 5.5.5.5
    
por Dennis Kaarsemaker 06.04.2013 / 14:09