Qual é a melhor maneira de transmitir a todos os pedidos em uma determinada porta para outra máquina na rede?

StackOverflow https://stackoverflow.com/questions/327952

Pergunta

Eu tenho dois servidores dedicados e nenhum firewall hardware. Eu gostaria de transmitir a todos os pedidos que vêm para o servidor primário na porta 1008 para ser cumprida por outro servidor dedicado na mesma rede. Eu sei que eu preciso configurar algum tipo de procuração TCP, mas eu ouvi pela primeira vez IPTables ontem. Todas as dicas rápidas?

Foi útil?

Solução

Carson está certo: colocar uma ponte firewall entre servidores e clientes. Shorewall (tabelas IP) tráfego pode então redirecionamento para diferentes portos e máquinas diferentes.

Com o firewall ser uma ponte, você não tem que alterar suas configurações de rede, ainda que a interface ponte tem de ser atribuído um endereço IP de cada cliente de rede e servidores estão em. Caso contrário, o redirecionamento não funcionará.

Advertência: a máquina onde a conexão foi originalmente apontada tem que estar online (significa: seu endereço IP tem que estar em uso)., Então o redirecionamento não funcionará

Se o redirecionamento é concebida como um meio de failover de alta disponibilidade, eu consideraria um balanceador de carga (cluster) em vez do firewall, o que leva a LVS (para uma abordagem geral) ou para um software balanceador de carga como o Apache (com proxy_balancer mod), equilíbrio ou Pount (se somente sob pedido http devem ser equilibrados). Há também equipamentos de hardware como de f5 para balanceamento de carga.

Outras dicas

A maneira mais fácil é usar algo que é apenas um proxy TCP. É possível conseguir isso usando o iptables, mas não é fácil.

É fácil encaminhar solicitações de A destina-se a B a C (utilizando DNAT), mas mais difícil de obter respostas de C para voltar a A via B (porque DNAT não muda o endereço do remetente). A então ignorar as respostas como eles estariam vindo de C, em vez de B.

Essencialmente, a maneira de fazer isso seria a criação de B como gateway padrão do C, e usar o encaminhamento, no entanto, isto coloca um ponto adicional de falha no B; Se B falhar, o tráfego de saída de C (incluindo respostas a pedidos enviados para C diretamente) iria acabar indo por um buraco negro.

Usando o iptables é possível sem este truque roteamento eu acho, mas você precisa ter a mesma conexão SNAT'd e DNAT'd, o que é complicado na melhor das hipóteses.

Normalmente, em tais situações, a maioria das pessoas colocar outro host (firewall) na frente das duas máquinas e tê-lo a tomar decisões DNAT - Claro que isso introduz um ponto de falha, assim, razão pela qual em configurações críticas, o firewall normalmente tem um backup rendundant (sua configuração é sincronizada e às vezes sua tabela de rastreamento de conexão é)

Em primeiro lugar eu recomendo que você obter um firewall no lugar. Eu usei Shorewall por um longo tempo para gerir iptables e é muito fácil de configurar. Em segundo lugar, se você usar algo como Shorewall não são fáceis guias sobre como fazer DNAT (porta fowarding) .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top