[FUG-BR] Load Balance

Neerlan Amorim neerlan em gmail.com
Terça Outubro 2 20:25:09 BRT 2007


Jean, vou ficar te devendo essa, pois só vi isso no ipfw.

On 10/2/07, jean <jean em w3nt.com> wrote:
>
> Neerlan, nao tenho conhecimento em PF, mas nele vc pode gerenciar varios
> links e controlar a % de caga para cada um?
>
> Obrigado,
>
> Jean
>
> ----- Original Message -----
> From: "Neerlan Amorim" <neerlan em gmail.com>
> To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)"
> <freebsd em fug.com.br>
> Sent: Tuesday, October 02, 2007 6:15 PM
> Subject: Re: [FUG-BR] Load Balance
>
>
> Da uma olhada nesse link.
> http://www.bsdsul.com.br/tutoriais_detalhe.php?cod=27&tipo=2
> é uma solução bem interessante usando o PF.
>
> Neerlan Amorim
>
> On 10/2/07, Jean Zanuzo <jean em w3nt.com> wrote:
> >
> > Marcelo Soares da Costa escreveu:
> > > Podia postar aqui um exemplo disso , na net vc acha exemplos com carp
> > > []'s
> > >
> > >>>
> > >>>
> > >> Voce também pode usar o ipfw com prob e mais de uma instancia do natd
> > >> combinando com regra forward, conforme a largura dos seu links vc
> pode
> > >> regular a probabilidade de pacotes para cada um, ou nao usar o prob e
> > >> fazer forward nas rotas ou portas, conforme preferir, ou combinando
> > tudo
> > >> isso, fica muito bom! ;)
> > >>
> > >> Jean Zanuzo
> > >>
> > >>
> > >> -------------------------
> > >> Histórico: http://www.fug.com.br/historico/html/freebsd/
> > >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > >>
> > >
> > > -------------------------
> > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > Exemplo com dois Links, a interface bge0 na operadora A e a bge1 na
> > operadora B, e a em0 indo para a INTRANET.
> >
> > *As configuracoes das Interfaces:
> > *# ifconfig bge0
> > bge0 inet 200.xxx.yyy.138 netmask 0xfffffffc broadcast 200.xxx.yyy.139
> >      inet 200.xxx.yyy.142 netmask 0xffffffff broadcast 200.xxx.yyy.142
> > # ifconfig bge1
> > bge1 inet 189.xxx.yyy.2 netmask 0xfffffffc broadcast 189.xxx.yyy.3
> >      inet 189.xxx.yyy.10 netmask 0xffffffff broadcast 189.xxx.yyy.10
> > # ifconfig em0
> > em0  inet 189.xxx.yyy.17 netmask 0xfffffffc broadcast 189.xxx.yyy.19
> >
> > *O Default router*
> > defaultrouter="200.xxx.yyy.137" #Sendo o ip do roteador da operadora A
> > (Que será a operadora principal)
> >
> > *A configuracao do natd*
> > Um arquivo por operadora, vamos criar o arquivo natd.a para a operadora
> > A e o natd.b para a operadora B
> > *Cada natd utilizara uma porta diferente.
> >
> > Arquivo /etc/natd.a
> > alias_address 200.xxx.yyy.142
> > port 8667
> > use_sockets yes
> >
> > Arquivo /etc/natd.b
> > alias_address 189.xxx.yyy.10
> > port 8668
> > use_sockets yes
> >
> > inicialize o natd
> > natd -f /etc/natd.a
> > natd -f /etc/natd.b
> >
> > *A configuracao do ipfw*
> > ipfw add check-state
> >
> > # Aqui é onde direciona os pacotes para os natd \\
> > # das operadoras, exceto da operadora A, que já \\
> > # está no defaultrouter, entao o que nao combinhar \\
> > # com nenhuma regra, automaticamente vai \\
> > # para a operadora A
> >
> >    # exemplo q redireciona para a operadora B as portas espeficicas 80,
> > 443, 22, 23
> >    ipfw add divert 8668 ip from not 189.xxx.yyy.0/25 to any dst-port
> > 80,443,22,23 recv em0
> >
> >    # exemplo q redireciona para a operadora B os destinos 64.0.0.0
> >    ipfw add divert 8668 ip from not 189.xxx.yyy.0/25 to 64.0.0.0/8 recv
> > em0
> >
> >    # exemplo q redireciona para a operadora B 50% dos pacotes
> >    ipfw add prob 0.5 divert 8668 ip from not 189.xxx.yyy.0/25 to any
> > recv em0 setup keep-state
> >
> >    # exemplo q redireciona para a operadora B 30% dos pacotes,e o
> > restanta p/ a operadora A
> >    ipfw add prob 0.3 divert 8668 ip from not 189.xxx.yyy.0/25 to any
> > recv em0 setup keep-state
> >
> >    # para mais links, basta criar mais instancias do natd.[c,d,e,f] para
> > cada e criar regras para elas
> >
> > # passagem direta fora do natd para os ips validos da opradora B
> > ipfw add fwd 189.xxx.yyy.1 ip from 189.xxx.yyy.0/25 to any recv em0
> > ipfw add fwd 189.xxx.yyy.1 ip from 189.xxx.yyy.0/25 to any xmit bge0
> >
> > #natd para os pacotes na interface da operadora B
> > ipfw add divert 8668 ip from any to any via bge1
> >
> > #natd para operadora A
> > ipfw add divert 8667 ip from not 200.xxx.yyy.128/25 to any out via bge0
> > #nao vamos fazer nat nos ips validos
> > ipfw add divert 8667 ip from any to 200.xxx.yyy.142 in via bge0 #vamos
> > nat no retorno somente do ip na alias usada pelo nat
> >
> > ipfw add allow ip from any to any
> >
> > * o 189.xxx.yyy.1 é o roteador da operadora B.
> >
> > ----
> > Faz o teste, é mais ou menos isso, vc adequa a suas necessidades,
> > qualquer duvida, problema ou sugestao principalmente posta ai, hehehe.
> > []'s
> >
> >
> > Jean Zanuzo
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


Mais detalhes sobre a lista de discussão freebsd