PF + load balancing

1. PF + load balancing

Perfil removido
removido

(usa Nenhuma)

Enviado em 31/07/2007 - 12:44h

packet filter (openbsd)
oi gente, estou com dois links de internet e tento fazer com que o trafego de saída passe pelas duas interfaces (balanceamento), gostaria também que quando um link caisse o outro segurace as pontas, (alguma redundância) apenas para conex de saída.
se alguémm tiver uma idéia, desde já sou grato.


  


2. Policy Routing

Wanderson Cardoso
wandersoninf

(usa Debian)

Enviado em 14/08/2007 - 22:22h

18/06/03 16:01 - Policy Routing com FreeBSD



Diego Linke



Depois de algumas horas "apanhando" do FreeBSD, de leituras constantes
nos man pages e inclusive no código do natd e do ipfw, cheguei a solução
do tão sonhado policy routing no FreeBSD com NAT.

OBJETIVO

O objetivo é muito simples. Nós temos links de duas* operadoras, que
chamaremos no artigo de ISP1 e ISP2, e precisamos selecionar que link
desse cada IP da rede interna irá sair.

Ex:
192.168.0.1 -> ISP1
192.168.0.2 -> ISP1
192.168.0.3 -> ISP2
192.168.0.4 -> ISP1
192.168.0.5 -> ISP2

* Com esta solução descrita abaixo, poderiamos ter quantos links for necessário.

PRÉ-REQUESITOS

Basicamente precisaremos do ipfw e do natd apenas, portanto as seguintes
opções no kernel:

options IPFIREWALL
options IPFIREWALL_FORWARD
options IPDIVERT

Precisaremos também do IP Forwarding. No /etc/rc.conf:

gateway_enable="YES"


NOSSA REDE

xl0 (Rede Interna):
IP: 192.168.0.1
REDE: 192.168.0.0 / 255.255.255.0

xl1 (ISP1):
IP: 100.100.100.100
Gateway: 100.100.100.1

xl2 (ISP2):
IP: 200.200.200.200
Gateway: 200.200.200.1

REGRAS DO IPFW E NATD

Primeiramente teremos que definir qual ISP1 terá seu gateway na default
gateway do FreeBSD. No nosso caso iremos optar pelo ISP1:

route add default 100.100.100.1

Teremos que rodar dois natd. Um na xl1 e outro na xl2:

natd -s -n xl1 -p 8668
natd -s -n xl2 -p 8669

Agora as regras do IPFW:

00010 divert 8669 ip from any to 200.200.200.200 in recv xl2
00020 divert 8669 ip from 192.168.0.8 to any out xmit xl1
00030 fwd 200.200.200.1 ip from 200.200.200.200 to any
00040 divert 8668 ip from any to 100.100.100.100 in recv xl1
00050 divert 8668 ip from 192.168.0.5 to any out xmit xl1
00060 allow ip from any to any
65535 deny ip from any to any

O "segredo" estão nas regras 20 e 30.

Percebam que na regra 20 nós jogamos para o NATD da porta 8669 que esta
rodando na interface xl2 um pacote que esta saindo pela xl1, e logo após
na regra abaixo (30) nós estamos dando um forward de todos os pacotes com
origem do IP da xl2 para a next-hop (gateway) do ISP2.

Isso acontece porque sempre que o FreeBSD recebe um pacote, o IP
forwading joga na tabela de roteamento que diz que o pacote tem que sair
pela default gateway (xl1).

Chegando lá tudo que nós temos que fazer é colocar uma regra de nat só
que "invertendo" o natd que iremos jogar. Com isso o pacote é reescrito
com a origem da interface xl2.

Logo após tudo que nós temos que fazer é força-lo a sair pela interface
certa e com o devido gateway setado (regra 30).

Neste exemplo o IP 192.168.0.8 irá sair pelo ISP2 e o IP 192.168.0.5 pelo
ISP1.

Agora sinta-se a vontade para fazer a política que quiser, seja ela por
source-address, porta, protocolo...

Done!!! :-)




3. Re: PF + load balancing

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/09/2007 - 21:24h

legal isso funcionar para o ipfw.


4. Re: PF + load balancing

adir castro
adircastro

(usa Debian)

Enviado em 09/09/2007 - 21:40h

Diego Linke,

E no caso sendo um Debian, como isso se daria?

Você pode postar algo semelhante para o Debian?

Já tenho alguma coisa aqui no servidor Debian, só que estou tendo problemas com a sala de bate papo. Creio que você deve ter lido minhas postagens.

Se tiver algo que possa me ajudar, faria o teste sem pensar duas vezes.

Grato.


5. Re: PF + load balancing

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 26/07/2008 - 15:30h

o diego linke não tá aqui; e (tanto quanto eu saiba) não mexe com Linux, é um developer FreeBSD ;) e dos bons..






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts