Re: HTB+SFQ

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 26 April 2007 19:34, terraja-based wrote:
> Hi folks,
Hi!

Hola!

> I`ve a problem to use HTB and SFQ.
> The first script, below, to show a simple configuration, does work
> fine...!!!
> But, in the second example, does not work, becouse i put more code to
> clasify the traffic by protocol, http and ftp in this case.
> Somebody can tell me the errors?
> Thx, in advance.-
>
> NOTICE: IMQ device is to asociate with ETH1 my external iface.
>
> SCRIPT que funciona:
>
> ############################################
> #!/bin/sh
>
> ifconfig imq0 up
> tc qdisc add dev imq0 handle 1: root htb default 1
> tc class add dev imq0 parent 1: classid 1:1 htb rate 500kbit ceil 2000kbit
> tc qdisc add dev imq0 parent 1:1 handle 2 sfq
>
> iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0
> tc filter add dev imq0 parent 1: prio 0 protocol ip handle 2 fw flowid 1:1
> ############################################
...could you tell me why do you filter by mark 2? Are you trying to match the 
unmatched packets for iptables?

...¿me prodría decir por qué está tratando de filtrar por la marca 2? ¿Acaso 
está tratando de redirigir los paquetes que iptables no haya sido capaz de 
clasificar?

> SCRIPT que NO funciona:
>
> ############################################
> #!/bin/sh
>
> ifconfig imq0 up
> tc qdisc add dev imq0 handle 1: root htb default 1
> tc class add dev imq0 parent 1: classid 1:1 htb rate 500kbit ceil 2000kbit
>
> tc class add dev imq0 parent 1:1 classid 1:10 htb rate 100kbit ceil
> 2000kbit tc class add dev imq0 parent 1:1 classid 1:20 htb rate 100kbit
> ceil 2000kbit
>
> tc qdisc add dev imq0 parent 1:10 handle 2 sfq
> tc qdisc add dev imq0 parent 1:20 handle 3 sfq
>
> iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0
> tc filter add dev imq0 parent 1:1 prio 0 protocol ip handle 2 fw flowid
> 1:10 tc filter add dev imq0 parent 1:1 prio 1 protocol ip handle 3 fw
> flowid 1:20 ############################################
Hmm, do you really want these filters as children of 1:1 (root child) instead 
of 1: (root)? If you put these filters as children of 1:1 the traffic will 
not go through the tc tree: you need to redirect the packets falling into the 
root to any child.

Hmm, ¿de veras que quiere que estos filtros sean hijos de 1:1 (hijo de la 
raíz) en vez de hijos de 1: (la raíz)? Si estos filtros se quedan como hijos 
de 1:1 el tráfico de paquetes no fluirá por el árbol de tc: necesita 
redirigir los paquetes que caen en la raíz para alguno de los nodos hijos.

> Ya luego, con el segundo script deberia agregar al final las MARKs de
> IPTABLES, pero no lo hice porque ni siquera cuando hago un SHOW de las
> qdisc (tc qdisc show) me muestra el trafico clasificado, es decir...luego
> yo iba a mandar el trafico de la class 1:10 para el protocolo HTTP y la
> 1:20 para FTP, y eso se hace justamente con IPTABLES, pero repito no lo
> hice porque no veo el trafico desglozado previamente cuando trafico, usando
> los 2 potocolos, en la qdisc.
> Esa es la cuestion, no logro clasificar el trafico para luego marcarlo. Ahi
> esta el "Kì" del asunto como decian las viejas...
> Any ideas?
For any reason, when you redirect packets by 'default' to any child, those 
redirected packets seem to go directly to the attached qdisc, so, filters with 
the default class as parent will not work. I recomend you something like the 
rules bellow:

Por alguna razón, cuando los paquetes son redirigidos 'por defecto', 
aparentemente pasan directamente al qdisc asociado a la clase en cuestión, 
por tanto, los filtros asociados que tienen a dicha clase como padre no 
funcionarán. Yo recomendaría una configuración como la que sigue:

-----------------------------8<-----------------------8<----------------------------------
tc qdisc add dev imq0 handle 1: root htb default 30
tc class add dev imq0 parent 1: classid 1:1 htb rate 500kbit ceil 2000kbit

tc class add dev imq0 parent 1:1 classid 1:10 htb rate 100kbit ceil 2000kbit 
tc class add dev imq0 parent 1:1 classid 1:20 htb rate 100kbit ceil 2000kbit 
tc class add dev imq0 parent 1:1 classid 1:30 htb rate 300kbit ceil 2000kbit

tc qdisc add dev imq0 parent 1:10 handle 2 sfq
tc qdisc add dev imq0 parent 1:20 handle 3 sfq

iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0
tc filter add dev imq0 parent 1: prio 0 protocol ip handle 2 fw flowid 1:10
tc filter add dev imq0 parent 1: prio 1 protocol ip handle 3 fw flowid 1:20
----------------------------->8----------------------->8----------------------------------

> De mas esta decir que IPTABLES, IPROUTE y el KERNEL estan correctamente
> parcheados y actualizados, ya que sino ni siquiera levanta los modulos o
> daria error.-

PS: by the way, I guess you need to change your 1:1 htb class parameters to 
match your real bandwith limitations of the device (eth1 in this case).

Nota: me parece que sería más adecuado asignarle a 1:1 las verdaderas 
restricciones de ancho de banda del dispositivo (eth1 en este caso).
-- 
Alejandro Ramos Encinosa <alex@xxxxx>
Fac. Matemática Computación
Universidad de La Habana
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc


[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux