Configurando o segundo default gateway para um link de entrada específico

Por padrão um host tem apenas um default gateway, no entanto o que aconteceria se um firewall tiver dois links de internet conectados e necessitar publicar um serviço no IP válido do link que não seja a rota default?! Nesse artigo mostro o cenário em que essa situação pode ocorrer e a solução definitiva.

[ Hits: 11.722 ]

Por: Sergei Martao em 07/12/2015


Introdução



Os objetivos desse artigo são:
  • Apresentar o cenário onde existe a necessidade de publicar um serviço em dois links de internet.
  • Detalhar os problemas que podem ocorrer e como identificá-los.
  • Aplicar a solução e assim fazer dois default gateway funcionar de forma plena.

Cenário

A empresa ACME possui um servidor Debian 8 (D8-SRV01) que executa uma aplicação na porta 3333, o servidor tem o seguinte IP de Lan 172.16.10.100 e esta conectando diretamente a um firewall Linux executando Iptables puro (D8-FW01) IP de Lan 172.16.10.254, existe um link de internet dedicado com a operadora A conectado diretamente ao firewall, o IP válido fornecido é 200.2.2.5, assim o firewall faz o redirect desse IP na porta 3333 para o IP interno do servidor (D8-SRV01) e tudo funciona adequadamente.

Devido a importância desse serviço e as constantes instabilidades da operadora A a empresa ACME decide contratar um segundo link de internet com a operadora B, recebendo o IP válido 187.8.8.5, como o serviço da porta 3333 é muito conhecido por todos os funcionários e o software que utiliza é bem complexo de configurar o gerente pede para que não troque a porta acessada externamente, ou seja, a porta de acesso deve ser a mesma tanto na operadora A quanto na operadora B. O administrador de rede muito feliz pela possibilidade de aumentar a disponibilidade do serviço com a contratação de mais um link de internet, acaba percebendo que fazer os acessos do servidor funcionar simultaneamente pelas duas operadoras não vai ser uma tarefa tão fácil quanto pensava.

De formar resumida, o cenário da empresa ACME é esse:

Configurações do Firewall (D8-FW01)

Localização e conteúdo do script iptables:

cat /usr/local/bin/fwregras.sh

#Limpando regras
iptables -F
iptables -F -t nat
iptables -F -t mangle

#Definindo politica padrão
iptables -P INPUTS DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#Declarando variáveis
SERVER=172.16.10.100
IPOPA=200.2.2.5
IPOPB=187.8.8.5

#Liberando FORWARD
echo 1 > /proc/sys/net/ipv4/ip_forward

#Liberando ICMP INPUT
iptables -A INPUT -p icmp -j ACCEPT

#Liberando SSH INPUT na porta 22 (apenas para ambiente de teste)
iptables -A INPUT -p tcp -s 0/0 --dport 22 -j ACCEPT

#Mascarando o ICMP
iptables -t nat -A POSTROUTING -p ICMP -o eth0 -j MASQUERADE

#Redirect para os IPs válidos
iptables -t nat -A PREROUTING -p TCP -d $IPOPA --dport 3333 -i eth1 -j DNAT --to $SERVER:3333
iptables -t nat -A PREROUTING -p TCP -d $IPOPB --dport 3333 -i eth2 -j DNAT --to $SERVER:3333

#Forward para o servidor D8-SRV01
iptables -A FORWARD -p TCP -d $SERVER --dport 3333 -j ACCEPT

#NATs para o servidor D8-SRV01
iptables -t nat -A POSTROUTING -s 172.16.10.100 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.10.100 -o eth2 -j MASQUERADE

#Tornando o firewall STATEFUL
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Arquivo de configuração das interfaces de rede:

cat /etc/network/interface

allow-hotplug eth0
iface eth0 inet static
address 172.16.10.254
netmask 255.255.255.0

allow-hotplug eth1
iface eth1 inet static
address 200.2.2.2
netmask 255.255.255.252
gateway 200.2.2.1

allow-hotplug eth2
iface eth2 inet static
address 187.8.8.2
netmask 255.255.255.252

    Próxima página

Páginas do artigo
   1. Introdução
   2. Problemas e soluções
Outros artigos deste autor

Openswan - Configurando uma conexão VPN Site-to-Site e simulando com GNS3

Criando um template customizado para o CACTI

Planejando e migrando softwares do Windows para o Linux

Simulando redes com o GNS

Utilizando o script vpnautomatica

Leitura recomendada

Instalando o oVirt 4.3 Single Host

Interface de Rede Virtual no Debian

Zabbix no Debian 7.8.0

Cliente Nagios no Windows - Instalação e Configuração

Obtendo TimeStamps da Blockchain com OpenTimestamps

  
Comentários
[1] Comentário enviado por fabio_cirino em 08/12/2015 - 12:48h


Muito bom... parabens

[2] Comentário enviado por sergeimartao em 09/12/2015 - 08:31h

Obrigado Cirino!

[3] Comentário enviado por Icone em 21/12/2015 - 11:55h

Bom dia, estava lendo esse seu post e acho que vc pode me ajudar.
Nos trocamos o sistema da associação comercial aqui de onde eu moro para que os associados possam emitir seus boletos on line.
A Empresa do software pede que eu libere portas de acesso para que eles possam liberar um link ou regra para eu colocar no site da associação para os associados acessarem suas constas.
E preciso criar as regras para que eles criem dentro do sistema deles um script de acesso pra eu colocar no nosso site para os usuarios utilizarem para emitir os boletos.
O IP wan do nosso link é 131.121.xxx.xxx e o ip do servidor é 192.168.xxx.xxx preciso liberar as portas:
TCP 1433 e UPD 1434. vcs poderiam me orientar em como fazer isso por favor.
Não conheço nada do Endian, alias, e a primeira vez que estou instalando, so atraves de posts de configuração, se vc puder me ajudar te agradeço e muito, ótimo dia pra vc.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts