Show Mário, post it -> FUG!!!!
abraço e parabéns. 2008/3/6, Mario Augusto Mania <[EMAIL PROTECTED]>: > 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 > -- Thiago J. Ruiz http://thiagoruiz.blogspot.com ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd