2009/8/19 Danilo Egea <[email protected]>
> Danilo Egea wrote: > > Thiago Gomes wrote: > > > >> faz em forma de artigo o site esta necessitando.. faz um tempao um novo > >> artigo nao é publicado. > >> > >> 2009/8/19 Danilo Egea <[email protected]>: > >> > >> > >>> Welkson Renny de Medeiros wrote: > >>> > >>> > >>>> Danilo Egea escreveu: > >>>> > >>>> > >>>> > >>>>> Welkson Renny de Medeiros wrote: > >>>>> > >>>>> > >>>>> > >>>>> > >>>>>>> Então, eu encontrei 2 patches bem antigos pra freebsd (4 e 6) que > fazem > >>>>>>> isso, um atraves de sysctl e um atraves do ipfw, mas pelo visto não > >>>>>>> foram encorporados no sistema. =/ > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>> Se for esse patch abaixo que você está falando pelo menos tem uma > >>>>>> vantagem, foi desenvolvido por Araújo que participa do FUG =) > >>>>>> http://code.google.com/p/exports/wiki/ToSWorkAround > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>> Não era esse, com esse sao 3 hehe > >>>>> > >>>>> esse -> > >>>>> > http://lists.freebsd.org/pipermail/freebsd-bugs/2006-August/019858.html > >>>>> > >>>>> o outro eu nao achei mais... > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>> Legal! =) provavelmente esse resolve.. lá nos testes fala em FREEBSD > 7... > >>>> > >>>> Qualquer novidade posta pra gente. > >>>> > >>>> Abraço, > >>>> > >>>> > >>>> > >>>> > >>> Eu tentei aplicar o patch num freebsd 7.2, mas ele jah nao funciona > mais. > >>> > >>> Bem, virei a madrugada trabalhando num programa que le pacotes do ifpw > >>> via sockets divert e altera o campo ToS deles para 00, esta funcionando > >>> aparentemente. > >>> Se alguém se interessar eu mando ele pra lista com as instrucoes. Mas > ja > >>> vou avisando, aprendi usar sockets divert nessa madrugada UHauA e meus > >>> conhecimentos em raw sockets nao sao os melhores. > >>> > >>> abraços! > >>> > >>> > >> ------------------------- > >> Histórico: http://www.fug.com.br/historico/html/freebsd/ > >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > >> > >> > >> > > Então, é que o programinha que eu fiz eh meio porco sabe UAHuha, preciso > > fazer ele receber parametros e virar daemon, mas o que eu precisava ele > > já está fazendo. > > Quando ele estiver mais esbelto eu faço um artigo. > > > > > Houston we have a problem. > > Bem, não sou exímio conhecedor das profundesas do tcp/ip, tive um > pequeno (grande?) problema. Seguinte, localmente (trafego local) o > programinha que eu fiz altera o valor do campo ToS dos pacotes e o > pacote vai embora normal, fiz os teste com uma maquina virtual linux no > qemu. Dai fazendo um teste num gateway, ele alterava o campo mas o > pacote nao ia pra frente, só ai fui me atentar para o fato de o checksum > do pacote ser alterado, implementei alguns algoritmos de calculo de > checksum que encontrei na net, quando nao ha alteracao no pacote ele > calcula certo, quando eu mudo o tos o sistema nao aceita o pacote. > > A pergunta é a seguinte, é possível alterar o checksum dos pacotes em > user mode e repassa-los ao kernel de uma maneira que funcione? Ou isso > só pode ser feito em kernel mode? > > Eh possível sim, você vai ter que faze um divert do pacote para o seu programa e calcular o checksum e entrar com o pacote no kernel novamente. A conta do checksum do IP é fácil (tem até no RFC), mas a do TCP eh um osso, principalmente porque tem um tal de "cabeçalho virtual" que é um nó para montar. Principalmente porque a ordem dos bytes na rede é contrária a ordem dos bytes no PC. Ai você tem que ter muito cuidado quando monta as coisas no PC. Depois disso focê faz a conta. Para mim pessoalmente foi fogo, passei três noites/madrugadas brigando com esse negocio antes de ficar pronto. ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

