[GTER] Roteamento avançado: identificação de pacotes

César Augusto Santiago csantiagobr at gmail.com
Tue May 16 09:02:55 -03 2006


Olá pessoal,

Há dois meses atras postei uma dúvida sobre como poderia balancear
dois links de acesso a Internet e a sugestão que recebi que mais
parecia me atender foi a da utilização do Iptables + iproute2.
Realizei a implantação e agora estou com um problema.  Vou explicar o
cenário e o problema.


Possuo 2 links de saída, um da Embratel (6Mbps) e outro da Brasil
Telecom (4Mbps). Em meu servidor de balanceamento, ambos os links
estão ligados na mesma interface de rede, sendo que o da Brasil
Telecom está em uma interface virtual. O PROBLEMA: Um pacote da minha
rede quando saí, por exemplo, pelo Link da Embratel, leva a informação
de que o endereço de Origem é o IP da Brasil Telecom e isso impede
algumas vezes destes pacotes conseguirem retornar. Verifiquei isso com
um analisador de pacotes. É normal isso? Onde eu errei que não consigo
fazer meus pacotes sairem pelos roteadores com seus respectivos
endereços de origem?

Minha configuração é a que segue... Vamos lá...
Interface (eth0) - LINK Embratel (200.241.189.X)  - Gateway (200.241.189.Y)
Interface (eth0:0) - Link Brasil Telecom (200.199.217.X) - Gateway
(200.199.217.Y)
Interface (eth1) - Rede Local (10.2.1.1)

Utilizei o Iptables para marcar os pacotes da seguinte maneira:
iptables -A PREROUTING -t mangle -i eth1 -j MARK --set-mark 3

Criei 3 tabelas no rt_tables (ebt,brt,load) e criei cada uma destas
tabelas com as rotas default do sistema + o que se segue:

---- Embratel ----
ip route add 200.241.189.Y dev eth0 via 200.241.189.X table ebt
ip route add default via 200.241.189.Y table ebt
ip rule add from 200.241.189.X table ebt

---- BTelecom ----
ip route add 200.199.217.Y via 200.199.217.X table brt
ip route add default via 200.199.217.Y table brt
ip rule add from 200.199.217.X table brt

---- Balanceamento ----
ip route add default table load nexthop dev eth0 via 200.241.189.Y
weight 1 nexthop dev eth0 via 200.199.217.Y weight 1
ip rule add fwmark 3 lookup load prio 3

O resultado do ip rule show é:

0:      from all lookup local
0:      from 200.241.189.130 lookup ebt
0:      from 200.199.217.66 lookup brt
3:      from all fwmark 0x3 lookup load
32766:  from all lookup main
32767:  from all lookup default

-----------
Imaginei que o problema poderia estar dando-se pelo fato de estar
utilizando interfaces virtuais na mesma interface física, entretanto,
separei em interfaces diferentes e então enfrentei outro problema que
foi com relação ao MASQUERADE que passou a dar erros.  Alguém teria
alguma dica?

Abraços,

-- 
César Augusto Santiago
csantiagobr at gmail.com



More information about the gter mailing list