[QoS] Problème avec un nouveau noyau

Problème avec un nouveau noyau [QoS] - Linux et OS Alternatifs

Marsh Posté le 29-10-2004 à 18:15:45    

Bonsoir,
 
Sur ma Debian 3.0 Stable, j'avais compilé un noyau 2.4.27. Jusque là aucun soucis. Cette machine me sert de passerelle internet, avec un firewall netfilter.
 
Cette aprem, j'ai voulu recompilé cette même version noyau mais avec le support de la QoS pour faire quelque test. Aucun problème à la compilation. Cependant avec ce noyau, impossible d'accèder à Internet depuis les autres postes du réseau, alors que je n'ai rien changé d'autre...
 
Une idée ???
 
Merci d'avance,
Jérem

Reply

Marsh Posté le 29-10-2004 à 18:15:45   

Reply

Marsh Posté le 29-10-2004 à 23:22:38    

Ta pas viré des trucs ?

Reply

Marsh Posté le 30-10-2004 à 08:54:55    

Non je n'ai rien touché d'autre, pour la config, j'ai fais un menuconfig et j'ai rechargé mon fichier de config du noyau précédent. Ensuite j'ai rajouté toutes les options de QoS and queue...  
C'est tout !
 
C'est assez bizarre quand même, si quelqu'un à une idée.  
Sinon je vais rebooter tout à l'heure sur ce noyau pour retester.

Reply

Marsh Posté le 30-10-2004 à 10:52:33    

Je viens de refaire le test à l'instant. Rien à faire ! Impossible d'accèder au net depuis les postes du réseau local, par contre aucun probleme depuis la paserelle.
 
N'y a-t-il pas quelque chose à initialiser pour la QoS ? Ou est-ce que mon firewall qui fonctionnait sans la QoS pose problème avec ce nouveau noyau ?
 
Si quelqu'un à une piste...

Reply

Marsh Posté le 30-10-2004 à 16:19:34    

Résolu ! Il me manquait les options suivantes dans pour la compilation du noyau :
 
IP : advanced router
IP : policy routing
 
Par contre je n'arrive pas à utiliser les scripts de QoS tout fait, j'ai de multiples erreurs. J'ai lu quelque part qu'il faut une version d'iproute2 patcher pour utiliser HTB... Quelqu'un peut m'en dire plus car je nage un peu dan ce ce domaine !

Reply

Marsh Posté le 30-10-2004 à 17:58:05    

Normalement la debian a un iproute2 utilisable avec htb, donne un message d'erreur histoire qu'on puisse te dire :)

Reply

Marsh Posté le 01-11-2004 à 16:11:14    

J'ai essayé le script CBQ et le script HTB trouvé ici : http://www.linux-france.org/prj/in [...] ing-Howto/
Voilà le résultat :
 
root@eclips:~# ./qos_htb.sh
RTNETLINK answers: Invalid argument
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
 
root@eclips:~# ./qos_cbq.sh
RTNETLINK answers: Invalid argument
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument

Reply

Marsh Posté le 01-11-2004 à 17:01:59    

Ca ressemble, en effet, à un pb avec la version de iproute2 que tu utilises ...

Reply

Marsh Posté le 01-11-2004 à 17:15:08    

Quelle version faut-il utiliser ? Quelqu'un à un lien à me donner ?

Reply

Marsh Posté le 01-11-2004 à 17:26:52    

résultat d'un uname -a plize

Reply

Marsh Posté le 01-11-2004 à 17:26:52   

Reply

Marsh Posté le 01-11-2004 à 17:34:36    

Linux eclips 2.4.27 #8 SMP Sat Oct 30 15:26:26 CEST 2004 i686 unknown

Reply

Marsh Posté le 01-11-2004 à 17:39:56    

version du package de iproute2 plize

Reply

Marsh Posté le 01-11-2004 à 17:50:48    

root@eclips:~# ip -V
ip utility, iproute2-ss010824

Reply

Marsh Posté le 01-11-2004 à 17:55:03    

bizarre ...
Modifies le script de QoS et rajoutes un -x devant l'interpréteur de commandes au début pour avoir des infos de débuggage ...

Reply

Marsh Posté le 01-11-2004 à 18:04:48    

root@eclips:~# ./qos.sh  
+ DOWNLINK=550
+ UPLINK=100
+ DEV=eth1
+ tc qdisc del dev eth1 root
+ tc qdisc del dev eth1 ingress
+ tc qdisc add dev eth1 root handle 1: htb default 20
RTNETLINK answers: Invalid argument
+ tc class add dev eth1 parent 1: classid 1:1 htb rate 100kbit burst 6k
RTNETLINK answers: No such file or directory
+ tc class add dev eth1 parent 1:1 classid 1:10 htb rate 100kbit burst 6k prio 1
RTNETLINK answers: No such file or directory
+ tc class add dev eth1 parent 1:1 classid 1:20 htb rate 90kbit burst 6k prio 2
RTNETLINK answers: No such file or directory
+ tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
RTNETLINK answers: No such file or directory
+ tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
RTNETLINK answers: No such file or directory
+ tc filter add dev eth1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
RTNETLINK answers: Invalid argument
+ tc filter add dev eth1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
RTNETLINK answers: Invalid argument
+ tc filter add dev eth1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
RTNETLINK answers: Invalid argument
+ tc qdisc add dev eth1 handle ffff: ingress
RTNETLINK answers: Invalid argument
+ tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 550kbit burst 10k drop flowid :1
RTNETLINK answers: Invalid argument

Reply

Marsh Posté le 01-11-2004 à 18:07:29    

euh ... :heink: ... ifconfig -a  plize

Reply

Marsh Posté le 01-11-2004 à 18:24:46    

root@eclips:~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:50:22:BB:6E:AA  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43436 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44165 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000  
          RX bytes:5938699 (5.6 MiB)  TX bytes:37905134 (36.1 MiB)
          Interrupt:9 Base address:0xaf00  
 
eth1      Link encap:Ethernet  HWaddr 00:06:29:12:68:36  
          inet addr:82.253.127.29  Bcast:82.253.127.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:36306 errors:0 dropped:0 overruns:0 frame:0
          TX packets:31716 errors:0 dropped:0 overruns:31 carrier:0
          collisions:0 txqueuelen:1000  
          RX bytes:36341569 (34.6 MiB)  TX bytes:4592622 (4.3 MiB)
          Interrupt:15 Base address:0xf000  
 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:53 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0  
          RX bytes:5950 (5.8 KiB)  TX bytes:5950 (5.8 KiB)
 
Une freebox est branchée en DHCP sur eth1...

Reply

Marsh Posté le 01-11-2004 à 18:53:11    

Euh ... y'a ptet une erreur dans le script qos.sh ...
Je peux jeter un oeil dessus ?

Reply

Marsh Posté le 01-11-2004 à 18:58:28    

#!/bin/bash -x
 
# La configuration ultime pour votre connexion Internet domestique
#  
# Configurez les valeurs suivantes avec des valeurs légèrement inférieures que  
# vos vitesses de flux montant et descendant. Exprimé en kilobits.
DOWNLINK=550
UPLINK=100
DEV=eth1
 
#Nettoie les gestionnaires de sortie et d'entrés, cache les erreurs
tc qdisc del dev $DEV root    2> /dev/null > /dev/null
tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
 
###### Flux montant (uplink)
 
# installe HTB à la racine, le trafic ira par défaut vers 1:20 :
 
tc qdisc add dev $DEV root handle 1: htb default 20
 
# Le trafic est mis en forme à une vitesse de $UPLINK. Ceci évite
# d'énormes files d'attente dans votre modem DSL qui pénalisent le temps de
# latence.
 
tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 6k
 
# la classe de haute priorité 1:10 :
 
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit \
   burst 6k prio 1
 
# bulk & default class 1:20 - gets slightly less traffic,  
# and a lower priority:
 
tc class add dev $DEV parent 1:1 classid 1:20 htb rate $[9*$UPLINK/10]kbit \
   burst 6k prio 2
 
# Les deux sont gérées par SFQ :
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
 
# le bit Délai Minimum du champ TOS (ssh, PAS scp) est dirigé vers
# 1:10 :
tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
      match ip tos 0x10 0xff  flowid 1:10
 
# ICMP (ip protocol 1) est dirigé vers la classe interactive 1:10 de telle
# sorte que nous pouvons réaliser des mesures et impressionner nos
# amis :
tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
 match ip protocol 1 0xff flowid 1:10
 
# Pour accélérer les téléchargements vers l'aval lors de la présence d'un
# flux montant, les paquets ACK sont placés dans la classe
# interactive :
 
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
   match ip protocol 6 0xff \
   match u8 0x05 0x0f at 0 \
   match u16 0x0000 0xffc0 at 2 \
   match u8 0x10 0xff at 33 \
   flowid 1:10
 
# Le reste est considéré 'non-interactif' cad 'de masse' et fini dans 1:20
 
 
########## Flux descendant (downlink) #############
# Ralentir le flux descendant à une valeur légèrement plus faible que votre
# vitesse rélle de manière à éviter la mise en file d'attente chez notre
# FAI. Faites des tests pour voir la vitesse maximum à laquelle vous pouvez
# le configurer. Les FAI ont tendance à avoir *d'énormes* files d'attente
# pour s'assurer de la rapidité des gros téléchargements.
#
# attache la réglementation d'entrée (ingress policer) :
 
tc qdisc add dev $DEV handle ffff: ingress
 
# Filtre *tout* (0.0.0.0/0), rejette tout ce qui arrive trop
# rapidement :
 
tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \
   0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1
 

Reply

Marsh Posté le 01-11-2004 à 19:12:54    

tu peux donner le résultat d'un lsmod juste après avoir essayé de lancer le script et d'un find /lib/modules/ -iname "*htb*" stp ?

Reply

Marsh Posté le 01-11-2004 à 19:22:47    

root@eclips:~# lsmod
Module                  Size  Used by    Not tainted
ipt_ipp2p               2880   2  
ppp_async               7200   0  (autoclean)
ppp_generic            23052   0  (autoclean) [ppp_async]
slhc                    4608   0  (autoclean) [ppp_generic]
ipt_MASQUERADE          1504   1  (autoclean)
ipt_state                608   6  (autoclean)
ipt_LOG                 3392   3  (autoclean)
iptable_mangle          2208   0  (autoclean) (unused)
iptable_nat            16564   1  (autoclean) [ipt_MASQUERADE]
ip_conntrack           21076   0  (autoclean) [ipt_MASQUERADE ipt_state iptable_nat]
iptable_filter          1760   1  (autoclean)
ip_tables              12032   9  [ipt_ipp2p ipt_MASQUERADE ipt_state ipt_LOG iptable_mangle iptable_nat iptable_filter]
eepro100               19372   1  
keybdev                 1792   0  (unused)
usbkbd                  2880   0  (unused)
usbcore                59072   0  [usbkbd]
input                   3520   0  [keybdev usbkbd]
 
 
root@eclips:~# find /lib/modules/ -iname "*htb*"
(rien!)
 

Reply

Marsh Posté le 01-11-2004 à 19:26:56    

mwé :/
Soit le support de HTB est carrément en dur dans ton noyau (et le pb est ailleurs ... mais où ? :??: )
Soit ton noyau n'a pas été compilé avec le support HTB ...
Il faut que tu vérifies ça dans ton noyau ...

Reply

Marsh Posté le 01-11-2004 à 20:58:27    

Lorsque j'ai compilé le noyau, j'ai effectivement choisi le support HTB inclus dans le noyau (pas en module), le problème peut venir de là ?
 
Sinon je n'ai pas pris quelques options :
 
<M>   CSZ packet scheduler
< >   H-FSC packet scheduler
<*>   The simplest PRIO pseudoscheduler
<M>   RED queue
<*>   SFQ queue
< >   TEQL queue
<M>   TBF queue
<M>   GRED queue
< >   Network emulator
<M>   Diffserv field marker
<M>   Ingress Qdisc  
[ * ]   QoS support
[ * ]     Rate estimator
[ * ]   Packet classifier API  
<M>     TC index classifier
<M>     Routing table based classifier
<*>     Firewall based classifier
<M>     U32 classifier
< >     Special RSVP classifier
< >     Special RSVP classifier for IPv6    
[ * ]     Traffic policing (needed for in/egress)


Message édité par Jerem22 le 01-11-2004 à 20:59:09
Reply

Marsh Posté le 01-11-2004 à 21:56:02    

Jerem22 a écrit :

Lorsque j'ai compilé le noyau, j'ai effectivement choisi le support HTB inclus dans le noyau (pas en module), le problème peut venir de là ?
 
Sinon je n'ai pas pris quelques options :
 
<M>   CSZ packet scheduler
< >   H-FSC packet scheduler
<*>   The simplest PRIO pseudoscheduler
<M>   RED queue
<*>   SFQ queue
< >   TEQL queue
<M>   TBF queue
<M>   GRED queue
< >   Network emulator
<M>   Diffserv field marker
<M>   Ingress Qdisc  
[ * ]   QoS support
[ * ]     Rate estimator
[ * ]   Packet classifier API  
<M>     TC index classifier
<M>     Routing table based classifier
<*>     Firewall based classifier
<M>     U32 classifier
< >     Special RSVP classifier
< >     Special RSVP classifier for IPv6    
[ * ]     Traffic policing (needed for in/egress)


Je pense pas mais bon ...

Reply

Marsh Posté le 02-11-2004 à 17:22:56    

A tout hasard, essaies de voir si y'a pas une version plus récente de iproute2 que tu pourrais installer et refais le test ...
Sinon, vérifies bien tes options de compil du noyau et recompiles le ...

Reply

Marsh Posté le 02-11-2004 à 18:21:18    

J'ai récupéré la dernière version d'iproute et j'essaye de là compiler, mais j'obtiens une erreur :
 
/usr/bin/gcc-3.0 -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -I../include -DRESOLVE_HOSTNAMES -I/usr/include  -o arpd arpd.c ../lib/libnetlink.a ../lib/libutil.a -ldb
/usr/bin/ld: cannot find -ldb
collect2: ld returned 1 exit status
make[1]: *** [arpd] Error 1
make[1]: Leaving directory `/root/iproute2-2.6.8-040823/iproute2-2.6.8/misc'
make: *** [all] Error 2
 
Une idée ?

Reply

Marsh Posté le 02-11-2004 à 19:32:21    

il n'arrive pas à trouver les libs de "Berkeley DB" ...

Reply

Marsh Posté le 02-11-2004 à 19:56:24    

Pourtant j'ai bien fait un apt-get install libdb3
Le problème doit se situer au niveau du dossier qui contient ces fichiers, je vais regarder ça !

Reply

Marsh Posté le 02-11-2004 à 20:14:02    

plutot que de compiler iproute, t'avais pas le moyen de récupérer un package plus récent de celui-ci pour ta Debian ?

Reply

Marsh Posté le 02-11-2004 à 20:27:28    

Avec la nouvelle version d'iproute, j'ai moins d'erreur (le début du script passe) mais pas la suite :
 
root@eclips:~# ./qos.sh
+ DOWNLINK=550
+ UPLINK=100
+ DEV=eth1
+ tc qdisc del dev eth1 root
+ tc qdisc del dev eth1 ingress
+ tc qdisc add dev eth1 root handle 1: htb default 20
+ tc class add dev eth1 parent 1: classid 1:1 htb rate 100kbit burst 6k
+ tc class add dev eth1 parent 1:1 classid 1:10 htb rate 100kbit burst 6k prio 1
+ tc class add dev eth1 parent 1:1 classid 1:20 htb rate 90kbit burst 6k prio 2
+ tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
+ tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
+ tc filter add dev eth1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
+ tc filter add dev eth1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
+ tc filter add dev eth1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
+ tc qdisc add dev eth1 handle ffff: ingress
RTNETLINK answers: Invalid argument
+ tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 550kbit burst 10k drop flowid :1
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
 
 
Il semblerait comme tu l'avais dis que le problème se situe maintenant au niveau du kernel. Tu as une idée de ce que je dois vérifier avant de me lancer dans la compilation du nouveau noyau ?
 
Encore merci pour ton aide ;)

Reply

Marsh Posté le 02-11-2004 à 20:29:52    

je crois me souvenir qu'il faut être en testing pour avoir la bonne version d'iproute2 :/
 
c'est pour ça entres autres que je suis en testing now :D


---------------
:: Light is Right ::
Reply

Marsh Posté le 02-11-2004 à 20:32:05    

modprobe u32 ou qqch comme ça

Reply

Marsh Posté le 02-11-2004 à 21:07:03    

en effet, c'est un modinfo cls_u32 qu'il faudrait balancer ... mais ce qui est bizarre, si ca règle le problème, c'est que le noyau ait pas chargé ce module, à la demande ... :??:

Reply

Marsh Posté le 02-11-2004 à 21:25:00    

root@eclips:~# modprobe cls_u32
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol tcf_police_dump
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol qdisc_copy_stats
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol tcf_police
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol tcf_police_destroy
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol unregister_tcf_proto_ops
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol register_tcf_proto_ops
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol tcf_police_locate
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: insmod /lib/modules/2.4.27/kernel/net/sched/cls_u32.o failed
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: insmod cls_u32 failed

Reply

Marsh Posté le 02-11-2004 à 21:27:42    

rassures moi, tu as bien renommé /lib/modules/2.4.27 en /lib/modules/2.4.27.old avant de recompiler ?? :whistle:


---------------
:: Light is Right ::
Reply

Marsh Posté le 02-11-2004 à 21:31:09    

oups... maintenant que tu le dis, je crois que j'ai zappé ça ! j'ai compilé 4 noyaux en 2 jours donc j'ai peut être oublié ça !

Reply

Marsh Posté le 02-11-2004 à 21:39:39    

:D


---------------
:: Light is Right ::
Reply

Marsh Posté le 02-11-2004 à 21:40:17    

même j'ai pas toujours fait ce que je dis et que j'ai jamais eu de pb [:cupra]


---------------
:: Light is Right ::
Reply

Marsh Posté le 02-11-2004 à 21:56:39    

Jerem22 a écrit :

root@eclips:~# modprobe cls_u32
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol tcf_police_dump
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol qdisc_copy_stats
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol tcf_police
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol tcf_police_destroy
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol unregister_tcf_proto_ops
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol register_tcf_proto_ops
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: unresolved symbol tcf_police_locate
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: insmod /lib/modules/2.4.27/kernel/net/sched/cls_u32.o failed
/lib/modules/2.4.27/kernel/net/sched/cls_u32.o: insmod cls_u32 failed


ouh là  ... noyal foireux là j'ai l'impression :/
Balances un depmod -a pour voir ce qu'il dit ...

Reply

Marsh Posté le 02-11-2004 à 22:01:05    

tomate a écrit :

rassures moi, tu as bien renommé /lib/modules/2.4.27 en /lib/modules/2.4.27.old avant de recompiler ?? :whistle:


C'est pas nécessaire
Et si le but c'est de garder une version "propre" d'un ancien noyau, il vaut mieux changer la ligne suivante du Makefile "principal" dans /usr/src/linux
 

EXTRAVERSION = ...


 
et avoir une bonne convention de nommage des différents bzImage générés ...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed