[FUG-BR] RES: RES: IPFW com ALTQ

Danilo Egea daniloegea em yahoo.com.br
Quarta Agosto 19 22:20:10 BRT 2009


Otacílio de Araújo Ramos Neto wrote:
> 2009/8/19 Danilo Egea <daniloegea at yahoo.com.br>
>
>   
>> 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 <daniloegea at yahoo.com.br>:
>>>>
>>>>
>>>>         
>>>>> 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
>
>   

Mesmo não alterando em nada o cabeçalho TCP eu preciso refazer o 
checksum dele?
Caso negativo, acho que o problema que estou tendo eh com a ordem dos 
bytes entao, eu vi isso no patch do Marcelo Araujo mas nao me atentei. 
Vou tentar e mando novidades.

Muito obrigado!

-- 
Danilo Egêa Gondolfo
Email/MSN - daniloegea at yahoo.com.br
Skype - daniloegea
Twitter - http://twitter.com/daniloegea
Blog - http://daniloegea.wordpress.com

__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger 
http://br.beta.messenger.yahoo.com/ 


Mais detalhes sobre a lista de discussão freebsd