Caros To escrevendo numa tremenda empolgacao e prazer em utilizar o FreeBSD :) Nao é de hoje que venho tentando fazer funcionar algumas coisas muito interessantes e uteis no freebsd. Quase sempre, quando mando email pra lista, as discussoes sao superficiais, senao, dicas dizendo que eh melhor usar o linux pq jah tem XYZ funcionando e etc...
Bem, isso nao eh uma reclamacao, na verdade, eh mais um agradecimento, pq, foi tambem por causa da lista que insisti tanto até conseguir fazer o que eu queria! Vamos ao ambiente: 2 links de internet 1 servidor com 3 nic Bem, primeiramente, encarnei no policy routing com ipfw+natd, muitos vao dizer: pf+route-to eh muito mais facil, etc.. etc..., rodar dois nats na mao eh gambiarra, etc.. etc.. Bom, em primeiro lugar, com ipfw com uma simples regra eu escolho por qual link quero que o cliente sai, segundo, estou rodando somente um natd porem, com a flag instance que nao eh documentada. Ficou super fileh e facil de administrar. Segunda etapa, de que adianta balancear a carga de saida em dois links se nao posso ter proxy/cache? Bom, isso ainda acho q eh gambiarra, deve ter outro jeito melhor de fazer, fica ai a sugestao de quem tiver uma saida melhor. O que fiz: Dois processos squid rodando um na porta 3128 e outro na porta 3129, usando dois arquivos .conf diferentes. No arquivo secundario, eu user tcp_outgoind_address pra mudar o ip de saida do squid2 para sair pelo link2. Blz... Funcionou, independente da politica de rota do ipfw, se no cliente (browser) eu setar o proxy pra porta 3128, saio por um link, se muda pra porta 3129 saio pelo outro link, ae eh soh usar proxy transp pra jogar o cliente por onde eu quero, isso tudo com a vantagem de se ter um squid nas conexoes http. O problema que vejo, que nem eh tanto problema assim, eh ter dois diretorios de cache separado. Com isso, tava tudo fileh, dois links, politica de uso por source_addr, ae implementei o controle de banda. Ultimo passo: Patch ZPH no squid, rapaiz, ae foi dor de cabeca hehehe, patchei o squid, fui compilar, pronto, erro, faltava definir SOL_IP e IP_PKTOPTIONS. Bem, o SOL_IP descobri que no FreeBSD (valeu thiago:)) eh IPPROTO_IP, e o IP_PKTOPTIONS, heheheheh, ae eh foda, hehehe, nao consegui achar, porem, achei que nos .h do linux, simplesmente tem: #define IP_PKTOPTIONS 9 hehehe, portanto, fui no arquivo de patch, e mudei onde tava IP_PKTOPTIONS pra 9, isso na funcao getsockopt() hehehhee, e pronto, compilou fileh. Ae, nos dois squid.conf, adicionei a linha: zph_tos_local 0x20, e restatei o squid. Ae, foi soh rodar um tcpdump -i rl0 -vv e ver que quando o arquivo tava no cache, o squid marcava o tos do cabecalho ip com 0x20, e quando nao tava era, o tos era 0x00. Ok. O patch tava fazendo o papel dele. E como tratar isso com ipfw? Bem, o ipfw tem a opcao iptos, porem, ele aceita algumas constantes, tentei fazer: ipfw add allow all from any to any iptos 0x20, e ele reclamou que 0x20 nao eh uma opcao valida. Ae, corri no man, e tava lah, eu tinha q usar umas constantes, coloquei: ipfw add X allow all from any to any iptos TCP_MINCOST e pronto, olhei no cabecalho ip.h e TCP_MINCOST vale 0x02 :), fui nos squids.confs e mudei o zph_tos_local para 0x02. Restartei o squid, limpei o cache do squid e do navegador, limitei a banda do cliente em 32 Kbit/s e fiz o download de um arquivo com 1 mega. Blz, no access.log do squi deu TCP_MISS, veio a 32Kbit/s. Fui no firefox, limpei o cache do firefox, mandei baixar o arquivo de novo ehhhhhh, tchararammm... o arquivo veio FULL, velocidade maxima ethernet heheheh, que delicia hehehhhee, no access.log do squid, TCP_REFRESH_HIT, ou seja, pegou do cache, marcou o tos com 0x02 e escapou do controle de banda hehehhe Enfim, to realizado :) Soh estou meio trsite com dois diretorios de cache diferente, nao sei se os dois squids compartilhando o mesmo /cache pode dar problema, entao resolvi deixar dois mesmo pra testar. Bem, pretendo escrever um arquivo e postar na fug, porem, pra quem quiser se aventurar, meu e-mail tem tudo que passei. PS. Desculpem o e-mail longo, mas eh meio que uma comemoracao compartilhada hehehhe. Mario Augusto Mania (m3bsd) -- Atenciosmente Mario Augusto Mania <m3BSD> ----------------------------------------------- [EMAIL PROTECTED] Cel.: (43) 9938-9629 Msn: [EMAIL PROTECTED] ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd