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