[GTER] Roteamento avançado em Linux
silvio.cesar at unigranrio.edu.br
silvio.cesar at unigranrio.edu.br
Tue May 13 15:51:31 -03 2008
Opa,
Pegue as rotas facilmente de forma que possa re-utilizar com o comando
"ip route add table link_wan2" digitando o seguinte comando:
ip route show table main | grep -Ev ^default | while read ROUTE ; do
echo $ROUTE ;done
OBS: tudo na mesma linha ;-)
Att,
Silvio Cesar L. dos Santos
Analista de Redes Pleno
DTI - Divisão de Tecnologia da Informação
UNIGRANRIO - Universidade do Grande Rio
silviocesar at unigranrio.edu.br
http://www.unigranrio.edu.br
Amauri Tiago Marx escreveu:
> Prezados colegas, estou com uma dúvida sobre roteamento avançado em Linux.
> Segue minha dúvida (espero que a fonte do desenho abaixo seja mantida).
> Possuo um roteador linux que é o responsável pela roteamento da rede
> local para a Internet através de 2 links de internet.
>
> +-----------+ /-------
> | | |
> +-------------+ WAN 1 +-------
> __ | | | /
> ___/ \_ +------+--------+ +-----------+ |
> _/ \__ | eth0 | /
> / \ | | |
> | 192.168.1.0/24-----+ eth1 Linux 1 | | Internet
> \_ __/ | | |
> \__ __/ | eth2 | \
> \___/ +------+--------+ +-----------+ |
> | | | \
> +-------------+ WAN 2 +-------
> | | |
> +-----------+ \-------
>
>
> A rede local (eth1) é 192.168.1.0/24.
> A rede Wan 1 (eth0) é 200.XXX.XXX.0/24
> A rede Wan 2 (eth2) é 200.200.XX.248/29
>
> No roteador Linux há 3 interfaces, eth0 com o endereço 200.XXX.XXX.13,
> eth1 com o endereço 192.168.1.1 (gw da rede local), eth2 com o
> endereço 200.200.XX.250.
> O gateway default do roteador é o endereço da WAN 1, 200.XXX.XXX.254.
>
> Imagine que eu tenha tenha meus servidores na rede 192.168.1.0/24.
> Exemplo: servidor web em 192.168.1.24, fazendo NAT para a wan 1 com o
> endereço 200.XXX.XXX.24.
>
> Desta forma no meu Linux router eu tenho um endereço virtual na eth0
> (eth0:24) com o endereço 200.XXX.XXX.24 e faço as seguintes regras:
> iptables -t nat -A PREROUTING -d 200.XXX.XXX.24 -j DNAT --to 192.168.1.24
> iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.24 -j
> SNAT --to 192.168.1.1
> iptables -t nat -A POSTROUTING -s 192.168.1.24 -j SNAT --to 200.XXX.XXX.24
>
> Até aqui tudo ok, qualquer host da rede local consegue acessar os
> servidores, tanto pelo endereço interno (192.168.1.24), quanto pelo
> endereço externo (200.XXX.XXX.24).
>
> Até este ponto eu ainda não citei a WAN 2. Vamos lá!
> Eu tenho outro roteador (Linux 2) na rede local com o endereço
> 192.168.1.4, criando outra rede interna 192.168.80.0/24.
> Desta forma, eu gostaria que tudo que vier do endereço 192.168.1.4
> saia pela WAN 2, com excessão do que for para o endereço interno, que
> gostaria que fosse resolvido localmente, sem sair para a Internet.
> Neste ponto eu me perdi!
>
> Fiz o seguinte:
> No roteador Linux 1, adicionei o endereço 200.200.XX.250 para a eth2 e
> criei outra tabela de roteamento no arquivo /etc/iproute2/rt_tables,
> conforme abaixo:
> 200 link_wan2
>
> Após, acrescentei as seguintes regras no iptables:
> iptables -A PREROUTING -t mangle -s 192.168.1.4 -j MARK --set-mark 1
> iptables -A OUTPUT -t mangle -s 192.168.1.4 -j MARK --set-mark 1
>
> ip rule add fwmark 1 table link_wan2
> ip route add default via 200.200.XX.249 dev eth2 table link_wan2
> ip route flush cache
>
> Desta forma, consegui fazer com que todos os pacotes que vierem do
> endereço 192.168.1.4 saiam pela WAN 2.
> Entretanto, quando tento acessar os endereços dos servidores que fazem
> NAT da WAN 1 não funciona, ou seja, os clientes atrás do roteador
> 192.168.1.4 não conseguem acessar os servidores pelo endereço válido
> 200.XXX.XXX.24.
> Parece que ele resolve os endereços de NAT para os ips internos dos
> servidores (192.168.1.x) e perde a comunicação ou a volta para o
> endereço gw da WAN 2 (200.200.XX.x).
>
> Alguma sugestão?
>
> Muito obrigado,
> Amauri
> --
> gter list https://eng.registro.br/mailman/listinfo/gter
More information about the gter
mailing list