[GTER] Roteamento avançado: identificação de pacotes
Gilberto Villani Brito
linux at giboia.org
Tue May 16 14:36:37 -03 2006
Olá César, eu já tentei fazer esse tipo de coisa, mas vi que não é possível por uma lógica muito
simples: Toda rede decente tem regras anti-spoof, por isso a rede da Brasil Telecom não vai trafegar
pacotes com a origem sendo o ip da Embratel e vice-versa.
Para você ter um balanceamento perfeito, é necessário que os links sejam da mesma operadora, ou
que ambas as operadoras aceitam o tráfico de pacotes com origem da outra operadora (acredito
que a segundo opção não seria possível).
Abraços
Gilberto
On Tue, 16 May 2006 08:02:55 -0400
"César Augusto Santiago" <csantiagobr at gmail.com> wrote:
> 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
> --
> gter list https://eng.registro.br/mailman/listinfo/gter
>
More information about the gter
mailing list