[FUG-BR] Balanceamento de carga de saida (Usando programa especial).
Alessandro de Souza Rocha
etherlinkii em gmail.com
Segunda Fevereiro 5 09:09:16 BRST 2007
Em 04/02/07, Jorge Aldo<jorgealdojr em bol.com.br> escreveu:
> Estou tentando resolver meu problema de balanceamento de carga de saida
> usando um sistema servidor/discador. O sistema funciona da seguinte forma :
>
> No servidor FreeBSD roda um daemon que aguarda por conecoes vindas de
> clientes.
>
> Nos clientes (windows) existem dois aplicativos no desktop "FreeGate
> Connect" e "FreeGate Disconnect".
>
> Quando um usuário executa freegate.connect, este programa se comunica
> com o daemon no FreeBSD e envia-lhe o comando para conectar. Quando um
> usuário executa freegate.disconnect, este programa se comunica com o
> daemon no FreeBSD e envia-lhe o comando para desconectar.
>
> Conectar e Disconectar significa ligar o ip do cliente windows à uma das
> saidas disponiveis (uma das wans).
>
> Meu problema é o seguinte :
>
> Apesar de já ter lido várias documentacoes sobre IPFW/IPFW2 não consigo
> determinar quais serão os comandos necessários para fazer essa ligação
> desligação. O daemon servidor lida com quatro scripts, a saber :
>
> /etc/freegate/startup.sh <- é executado quando o daemon é ativado
> /etc/freegate/shutdown.sh <- é executado quando o daemon é desativado
> /etc/freegate/login.sh <- é executado quando um usuario loga com o
> aplicativo, recebe o ip do mesmo como parametro
> /etc/freegate/logout.sh <- é executado quando um usuario desloga com o
> aplicativo, recebe o ip do mesmo como parametro.
>
> Existem vários arquivos/tabelas que mostram o estado atual do sistema :
> /etc/freegate/links.conf <- contem a lista de todos os links WAN
> disponíveis nesse gateway, com informações de banda passante total.
> O formato desta tabela é bem simples :
>
> <linkname>,<downlink>,<uplink>,<modemip>,<ifname>,<ifip>,<weight>
>
> onde : <linkname> é o nome generico do link (por exemplo "velox1")
> <downlink>, <uplink> são as taxas de descida e subida (ex : 100000000,
> 600000)
> <modemip> é o ip do modem que esta conectado a esta interface (os modens
> devem estar como routers) (ex : 10.1.1.1)
> <ifname> o nome da interface como dada pelo freebsd (ex : rl0)
> <ifip> o ip da interface dado pelo modem (deve-se configurar o dhcp do
> modem para travar um ip a esta interface) (ex : 10.1.1.2)
> <weight> é o "peso" deste link, representado por um numero entre 0 e 100
> que determina a probabilidade (%) de um cliente ser ligado a este link.
> (ex : 33)
>
> /etc/freegate/activeips.tab <- contem uma lista de todos os ips logados
> atualmente, esta lista é atualizada com o comando freegate.addip <ip> ou
> freegate.removeip <ip>
>
> O formato desta tabela é simples tambem :
> <ipativo>, <link>
>
> onde <ipativo> é o ip do cliente da LAN que esta ativo (ex : 192.168.0.10)
> <link> é o numero do link (na lista de links.conf) a que este link esta
> ligado
>
>
> toda vez que um usuario loga, o daemon/servidor automaticamente chama
> login.sh <ipdocliente>
> e este script deve criar pipes e regras de nat para rotear a partir
> dali, todos os pacotes do cliente por um dado link. Por default os
> pacotes de todas as maquinas devem ser bloqueados, o cliente so navega
> se rodar freegate.connect. Para ligar um cliente à um link, alem de
> acrescentar uma rota <ipdocliente> via <ifname> é preciso tambem criar
> um pipe limitando a banda do cliente à <downlink> / <numero de clientes
> no link>.
>
> A maior parte do sistema já está desenvolvida/pronta. Estou tendo
> dificuldades apenas nesta parte do sistema.
>
> Acho que um sistema assim solucionaria a dor de cabeca de muitas
> pessoas. Por favor ajude !
>
> Desde já agradeço.
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
velho da uma olhada aqui http://www.free.bsd.com.br/noticia.php3?CAD=1&NOT=172
http://www.bsdsul.com.br/tutoriais_detalhe.php?cod=27
--
Alessandro de Souza Rocha
Administrador de Redes e Sistemas
Freebsd-BR User #117
Mais detalhes sobre a lista de discussão freebsd