como encaminhar pedido de IP para uma porta específica

3

Eu tenho 2 servidores

  • o primeiro (SRV01) está executando o Bind e outro aplicativo da web
  • o segundo (SRV02) está executando 2 servidores Minecraft (^^)

no Bind eu tenho 2 A gravação para o MC de 2 servidores

s1.domain.tld    A    SRV02IP
s2.domain.tld    A    SRV02IP

o serviço 2 MC está sendo executado em 2 portas diferentes 25565 e 25566

Por isso, quero que a solicitação de s1.domain.tld:25565 esteja indo para SRV02IP:25565 e a solicitação de s2.domain.tld:25565 vai para SRV02IP:25566

Acho que preciso fazer isso no iptables SRV02. Eu estou procurando algum tópico sobre o iptables, mas nada de pertinente para mim.

você poderia me ajudar?

rgds.

    
por Jeremy Talus 22.10.2012 / 15:36

3 respostas

1

Desde que ambos os servidores estejam acessíveis publicamente, isso é possível. Aponte s1.domain.tld para SRV01IP e aponte s2.domain.tld para SRV02IP. s2.domain.tld: 25565 já funciona. Configure o minecraft em: 25566 em SRV02IP e, em seguida, em iptables em SRV01IP, é necessário encaminhar: 25565 a SRV02IP: 25566:

iptables -t nat -I PREROUTING -p tcp --dport 25565 -j DNAT --to-destination SRV02IP:25566
iptables -t nat -I POSTROUTING -p tcp --dport 25566 -j MASQUERADE

Por fim, para que funcione, você precisará ativar o encaminhamento de IP no proc:

echo "1" > /proc/sys/net/ipv4/ip_forward

Tudo pronto. Uma coisa a notar é que isso não persistirá entre as reinicializações. Para fazê-lo persistir, certifique-se de salvar suas regras do IPTables (dependendo da distro) e edite o /etc/sysctl.conf para fazer o ip_forward persistir editando a seguinte linha (ou adicionando-a se ela não existir):

net.ipv4.ip_forward = 1

    
por 22.10.2012 / 18:13
2

Apenas ligue outro IP a SRV02. Se você não tiver um IP externo extra, também pode usar internals (com alguns truques extras). Instale o proxy do Squid. Isso pode redirecionar o tráfego para outra porta.

link

    
por 22.10.2012 / 15:42
0

Parece que você tem um IP público e dois servidores back-end com IPs privados (?) - Se este é o caso, o que você está pedindo é impossível: Você não pode ter dois aplicativos ouvindo na mesma porta e (público) Endereço IP.

Você não pode fazer isso do DNS (o DNS A registros não tem nenhum conceito de "porta"), e fazer isso do iptables é a Coisa Errada (pode nem ser possível, mas se fosse, envolveria fazer DNS pesquisas em uma regra de firewall que não é algo que eu recomendaria).
Você precisa de dois endereços IP públicos para que isso funcione ou você precisa executar um dos servidores do Minecraft em uma porta alternativa.

    
por 22.10.2012 / 17:54