Sem querer ser chato neste assunto e nem querendo abusar da boa vontade sua Giancarlo. Mas gostaria de, se possível, entender melhor para poder sanar uma dificuldade real que tenho:
Aqui tenho 03 links, sendo um com a Brasil Telecom, outro com a Embratel e um outro com um provedor local que utiliza um outro circuito da Embratel. O tráfego de saída é balanceado (com o round robin), exceto algumas tecnologias que necessariamente precisam sair por um único ip. O que eu gostaria de fazer é deixar as 03 placas de rede externas pingando de tempos em tempos para um determinado host, ou uma lista de hosts confiáveis e, caso não consiga obter o retorno desejado, redirecionar o tráfego dakela interface para as outras ativas. Teria como vc enviar uma amostra de como fazer isso? Att. Márcio A. Sepp > -----Mensagem original----- > De: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Em nome de Giancarlo Rubio > Enviada em: quarta-feira, 3 de outubro de 2007 09:28 > Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR) > Assunto: Re: [FUG-BR] RES: Load Balance > > Em 02/10/07, Marcio A. Sepp<[EMAIL PROTECTED]> escreveu: > > > > 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? > > Eu uso com ifstated (/usr/ports/net/ifstated) checando meu > gateway um ping mesmo, mais vc pode usar snmp para checar se > ele esta em pe. > Existem mil metodos para vc validar. So depende da sua imaginacao. > > > > > 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)? > > Tem sim vc pode criar uma anchor para isto, sempre que mudar > seu estado no ifstated ele aciona um script que muda a > interface de saida. > Assim que ele voltar ao estado inicial ou normal a anchor e > desfeita e tudo volta ao normal. Acredite funciona! > > > > > 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 > > > > > -- > Giancarlo Rubio > ------------------------- > 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