O pf faz sim... Segue um exemplo: pass out on em0 route-to (em0 200.xxx.xxx.2) round-robin from any to any keep state probability 33%
Indo um pouco mais a fundo... Neste exemplo modelo, se uma placa cair, o tráfego continuará sendo enviado para ela, mas como eu faria para no caso de uma placa falhar, o tráfego ser encaminhado para a outra? Não digo necessariamente a placa, mas digamos que o "gateway da placa" caia. Tem como redirecionar o tráfego para outra interface (digo isso em real-time)? Alguém sabe como resolver isso? Att. Márcio A. Sepp > -----Mensagem original----- > De: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Em nome de Neerlan Amorim > Enviada em: terça-feira, 2 de outubro de 2007 20:25 > Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR) > Assunto: Re: [FUG-BR] Load Balance > > Jean, vou ficar te devendo essa, pois só vi isso no ipfw. > > On 10/2/07, jean <[EMAIL PROTECTED]> 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" <[EMAIL PROTECTED]> > > To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)" > > <freebsd@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 <[EMAIL PROTECTED]> 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 > > > ------------------------- > 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