Como enviar pacotes provenientes de um segundo roteador em uma porta específica de volta ao roteador, usando iptables e não uma rota

1

Eu tenho um servidor Linux que executa um serviço específico, escutando em uma única porta TCP. O servidor Linux se conecta à Internet usando uma conexão PPP e também atua como roteador para uma rede local usando uma conexão Ethernet. Eu mantenho um firewall em execução neste servidor e gerencio-o usando o pacote Shorewall.

Recentemente, recebi outro link da Internet para usar como endereço IP redundante para meus clientes se conectarem e usarem o serviço. Este ISP me fornece um modem que deve se conectar ao meu switch de LAN e tem um endereço IP de 192.168.1.10 . Eu configurei este modem para encaminhar a porta de serviço para o meu servidor que está em 192.168.1.2 .

O problema é que os usuários não podem se conectar através da nova conexão ao servidor, a configuração de roteamento no novo modem é limitada (não posso dizer para fazer SNAT) e não sei que tipo de configuração eu preciso no firewall no servidor.

Em palavras simples, preciso informar ao firewall no servidor, quando os pacotes vêm de 192.168.1.10 na porta 1234, enviar as respostas de volta para 192.168.1.10 , apesar de qualquer endereço IP de destino.

Minha melhor aposta até agora das minhas pesquisas é o link que exige que você jogue com rotas de servidor.

Existe alguma maneira mais simples de fazer isso de preferência usando iptables e shorewall?

Editar:

A LAN para usuários locais está em 192.168.1.0/24 . Eu posso mudar o novo endereço IP do roteador, se isso ajudar.

Eu quero que o novo link funcione apenas como um endereço IP redundante, que adicionarei como um alias ao DNS, para que os clientes possam testá-lo de maneira round-robin, quando o endereço IP antigo ficar inativo, alcançando um nível de redundância e tolerância a falhas. As conexões de saída da Internet da rede local e do servidor precisam passar pelo link antigo e não importa se ele cai.

Infelizmente, o servidor tem apenas duas portas ethernet, uma foi usada para modem antigo e a outra para switch de rede local. Portanto, não há portas livres, mas se essa for a única solução, posso adicionar outra placa de rede.

O servidor Linux atua como um roteador e um firewall. Ele também executa um proxy de squid transparente para a rede local, se é isso que você quer dizer com proxy.

    
por zaadeh 06.01.2014 / 14:35

1 resposta

1

para facilitar as coisas e evitar conflitos, Você precisa fazer o seguinte:

1- Altere o intervalo de IP do novo roteador para, por exemplo, 172.20.1.0/24 2- Adicione uma nova interface no servidor. Atribuir um ip do intervalo do roteador.

Router 172.20.1.1  <----------> Linux Box 172.20.1.2

3- Use o iproute2 para criar uma nova tabela de roteamento.

On that table set the default gateway to 172.20.1.1
Use ip rule command to add all packets returning from new internet connection
to the new created table.

Supondo que o nome da tabela é NewLink     ip rule add from 172.20.1.2 tabela NewLink

Use a regra ip para adicionar grupo de usuários à nova conexão:

ip rule add from 192.168.1.0/28 table NewLink
[just a group of ips to allow them to use the new link]

4- Use fonte natting ao invés de MASQUARGE que provavelmente você está usando. para nat cada grupo de ips para sua conexão de internet especificada.

Você precisa passar pelas etapas que mencionei acima e pesquisar mais informações, Eu levei mais de uma semana para fazer isso funcionar, mas agora são necessários apenas 5 minutos para configurar um novo provedor.

    
por 07.01.2014 / 13:58