Trabalhando com roteamento por origem no Linux, aprenda a redirecionar o seu tráfego local LAN para vários links
externos. O cenário proposto no artigo, são 3 links externos e uma rede LAN.
A tempos, precisei atender um cliente cuja requisição era redirecionar sua rede interna (LAN) para links diferentes. Com ajuda de alguns amigos, eu
consegui fazê-lo.
As configurações de roteamento são bem simples, o único passo complicado é a parte de compilação de kernel, podendo causar alguns “panics” na
inicialização.
- Cenário
4 interfaces de Rede FastEthernet ou GigabitEthernet
Bem, estamos com uma bomba, preciso dizer ao Servidor Linux que o endereço LAN '192.168.0.0/24' saía pelo Gateway OI.
O '192.168.1.1' saía pelo Embratel e o endereço de sub-rede '192.168.2.0/24', aponte para o link CTBC.
[3] Comentário enviado por mago_dos_chats em 16/02/2012 - 17:13h
Gostei Vinicius, mais só uma questão para ver se funcionaria também, depois de compartilhar a internet no servidor com o MASQUERADE você poderia simplesmente adicionar as rotas como:
route add default gw 192.168.0.0 netmask 255.255.255.0 eth0 (OI)
route add default gw 192.168.1.0 netmask 255.255.255.0 eth1 (EMBRATEL)
route add default gw 192.168.2.0 netmask 255.255.255.0 eth2 (CTBC)
Ai todo trafego com destino a estas subredes sairia por estas interfaces, o que acha?
[6] Comentário enviado por gasparzinho_f em 17/02/2012 - 11:53h
bom dia.
artigo muito bom.
agora, seria muito mais complicado fazer a saida por tipo de serviço do que por subrede ??... pra quem não entendeu, digamos que youtube pelo pelo link1, email/ftp/ssh por link2 e qualquer outra coisa pelo link3... creio que temos que fazer marcação de pacotes e fazer a regra correspondente redirecionar a saida... é correto a idéia ?
[7] Comentário enviado por jose.freitas.rj em 17/02/2012 - 14:34h
Olá vinicius.almeida! Primeiramente te dou os parabéns pelo bom artigo! Falando sobre as regras de entrada e saída via iptables, eu teria que criar uma regra pra cada rede interna assossiando a elas as portas e as interfaces que são de saída? Por exemplo,
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -m tcp -p tcp --dport 3128 -o eth1 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.2.0/24 -m tcp -p tcp --dport 3128 -o eth2 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.3.0/24 -m tcp -p tcp --dport 3128 -o eth3 -j MASQUERADE
[8] Comentário enviado por viniciuspedra em 17/02/2012 - 16:19h
uma coisa q eu estava analisando agora é a dificuldade de encontrar uma placa mãe com 3 entradas PCI...
então o negócio é placa de rede dual que por sinal tmb não está facil =D
[9] Comentário enviado por jose.freitas.rj em 18/02/2012 - 13:54h
Fala viniciuspedra! Essas placas-mãe você até encontra no mercado, mas geralmente são todas offboard. Sempre uso placas Intel com processadores Intel, sempre... Mas no caso de ter poucos slots pci procuro criar ETHs virtuais (eth0:0, eth0:1,eth0:2...), mas eu sempre procuro colocar placa físicas separadas pra cada trâmiti.
[10] Comentário enviado por viniciuspedra em 19/02/2012 - 09:07h
poiseh jose.freitas.rj... pior acaso eu tenho uma, antiga mas com 3 slots pci...
eu to usando eth virtuais porém eu me deparei com um problemão: uso proxy...
descriminei os proxys e nenhum deles funcionou...
alguém já fez esse tipo de roteamento utilizando proxy?
[12] Comentário enviado por jose.freitas.rj em 19/02/2012 - 13:36h
Entendi Vinícius Pedra, eu também já fiz isso que você fez sobre o proxy e funcionou. Agora, o que está pegando é nas regras do firewall com tantas ETHs de saída. Como tenho 2 links de internet distintos em placas separadas eu queria saber como será as regras de entradas e saídas desses 2 links. Cito um exemplos abaixo que eu acho que deveria funcionar pra cada link.
[15] Comentário enviado por danistation em 17/10/2013 - 22:55h
entendi. as suas redes privadas estão divididas cada qual para um link de internet. OK. mas como fica a rota padrão do seu linux?
melhor... essa tabela de rotas, como ficaria?
0.0.0.0 metric 0 via eth1
0.0.0.0 metric 0 via eth2
0.0.0.0 metric 0 via eth3
?
se fo assim, como o linux lida com os pacotes com origem 127.0.0.1?
tenho essa duvida pq quero montar um cenario semelhante. mas o que aconteceria se eu fizesse nessa topologia um SSH para seu ip público na OI? beleza, na máquina linux chega, mas como ela responderia? por qual gateway irá sair? afinal de contas, se sua tabela de rotas estiver:
0.0.0.0 metric 0 via eth1
0.0.0.0 metric 0 via eth2
0.0.0.0 metric 0 via eth3
como ele vai decidir por qual delas responder a essas requisições que se originam, por exemplo, do link da OI?
resumindo, a minha dúvida é:
se vier uma requisição externa, pelo link da oi, por exemplo, o linux reponde pela mesma interface (caso do SSH para a própria maquina linux)?