Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux



» Screenshot
Linux: Novo GIMP 2.0
Por nelsonvn
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper
Linux: Goot root ?
Por rogermdl

Comunidade Linux Home Participar da comunidade Linux Participar Fórum Linux Fórum Membros LinuxMembros

<< Anterior Próxima >>

tc - usar simultaneamente handle e u32 ?

Linux user: Aruã Metello
aruametello

(usa Debian)
[1] Enviado em 24/09/2008 - 11:08h:
tc - usar simultaneamente handle e u32 ?

Saudações!
é o meu primeiro post (e eu nunca fui familiar com foruns, então pegue leve se for falar algo "menos" util.)

Problema:
É possivel nos filtros do tc usar os classificadores handle e u32 ao mesmo tempo? o que eu adoraria ter em mãos seria dar destino especifico a um pacote que simultaneamente tem "$ip" endereço de destino, porta "x" e está marcado pelo iptables com o numero "$mark".

eu encontrei outras soluções "menos" elegantes para o problema, mas eu creio q talvez alguma sintaxe ou patch do tc permita o q eu estou procurando.

tc filter add dev $if_net protocol ip handle $mark fw flowid 1:10#exemplo mark
tc filter add dev $if_lan protocol ip u32 match ip dst $ip flowid 1:10#exemplo u32

o q eu estava querendo seria similar a isto:
tc filter add dev $if_net protocol ip \
handle $mark fw \
u32 dport 80 0xffff \
u32 match ip dst $ip flowid 1:10

Descriçaõ do hardware envolvido:
Eu tenho um roteador debian para administrar os recursos de internet da minha casa, ele usa um modem adsl em modo bridge (q é o ppp0), e tem duas interfaces de rede, eth0 (a lan) e eth1 (isolando o modem)


Caso alguem queira o script q escrevi e estou usando atualmente:
http://rapidshare.com/files/147994692/v4_qos.sh.html
(foi mal se vc não gosta do rapidshare, mas o post ia ficar longo demais com o texto todo do script)

eu creio q ele pode ser uma adição para scripts do site orientados a "administrar a banda de internet para pequenas redes"
 

  
Linux user: Aruã Metello
aruametello

(usa Debian)
[2] Enviado em 25/09/2008 - 23:25h:
ok, consegui resolver já...

eu acabei encontrando a solução, o classificador u32 pode comparar a marcação da kernel usando o "match mark", a mascara é para especificar como os bits serão comparados.

tc filter add dev eth0 protocol ip u32 match ip dst 10.1.1.1 match mark 55 0xff flowid 1:10

este exemplo atribui a classe 1:10 os pacotes que na interface eth0 estão indo para 10.1.1.1 e estão marcados com o numero 55.


uma palavrinha extra:
eu achei bem curioso q na maior parte dos autores da descrição classificador u32, é dito que ele classifica o pacote utilizando "qualquer bit do pacote", o q torna o u32 extremamente util para comparar, mas quando vc usa o "mark" no iptables, vc não está modificando nenhum bit do pacote (note q mark e tos são coisas diferentes), e portanto a ultima coisa q eu esperava era exatamente uma exeção a descrição do u32 que eu encontrei em outros lugares... ufa...



 

  
<< Anterior Próxima >>
Responsável pelo site: Fábio Berbert de Paula - Copyleft 2002-2009 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.