[Linux] RTNETLINK answers: Invalid argument

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 12-04 14:05
Ik probeer, zoals de mensen die hier vaker komen denk ik nu wel weten ;) een linux router op te zetten die ook bandbreedte kan limiteren.
Dat eerste lukt prima, firewall enz gaat goed, maar nu het bandbreedte limiteren. Ik doe dit volgens de volgende site's, die daar duidelijke info over geven.
Dat zijn de volgende adressen:

http://www.knowplace.org/shaper/requirements.html - Vooral op deze pagina het laatste stuk is straks belangrijk.

http://www.trekweb.com/~j.../linux_tc_minihowto.shtml

Ik doe dit met HTB ipv met CBQ, want dat zou beter zijn. Ik maak daarbij gebruik van een eenvoudig script dat de gecompliceerde "TC class add dev blablabla" regels verzint, helaas werkt dit niet zoals het zou moeten werken; ik kan het het beste uitleggen door de log file te laten zien door het uitgebreide LOG bestand te laten zien van het programma.
Klik hier om de logfile te bekijken in je browser

Nu denk ik te weten waar het door komt; het laatste stuk dat op d eerst genoemde site staat wil niet lukken; het compileren van IProute2.
Dit staat er op de site, voor de luie mensen:
[ *] Download and untar the content of iproute2-2.4.7-now-ss020116-try.tar.gz
[ *] Download and untar the content of htb3.6-020525.tgz - Note: You might want to make a directory first if you don't want the scatter
[ *] While inside the iproute2 directory, run patch -p1 < /path/to/htb3.6_tc.diff
[ *] After patching, run make && make install
[ *] If you run "strings /sbin/tc |grep -i htb" it should return:

htb_util
htb2_util
Usage: ... qdisc add ... htb [default N] [r2q N]
... class add ... htb rate R1 burst B1 [prio P] [slot S] [pslot PS]
TC HTB version %d.%d
htb: failed to calculate rate table.
htb: failed to calculate ceil rate table.
htb2
Bij mij krijg ik dan het volgende op m'n scherm, bij die laatste opdracht:
htb_util
Usage: ... qdisc add ... htb [default N] [r2q N]
possible to use HTB on very fast devices
... class add ... htb rate R1 burst B1 [prio P] [slot S] [pslot PS]
htb: failed to calculate rate table.
htb: failed to calculate ceil rate table.
router:/etc#
Zoals je ziet mis ik dus htb2, bovenaan en onderaan. Dit komt waarschijnlijk (bijna zeker van) omdat ik iproute2 niet opnieuw gecompileerd krijg, met of zonder de patch die je eerst installeert op die iproute bestanden, dat wel slaagt.
Ik pas daarna het "Makefile" bestand aan dat bij iproute2-2.4.7-now-ss020116-try.tar.gz zit. Ik laat dat helemaal hetzelfde, aangezien mijn Linux kernel 2.4.22 is uitgezipt in de directory /usr/src/linux.
Ik heb ook, nadat het dus niet ging werken, de DESTDIR= variabele aangepast naar een bestaande lege map. Verder heb ik iproute nog gedeinstalleerd. Natuurlijk heb ik zelf mijn kernel gecompileerd met de nodige opties; ik heb ook de opties van die website nog eens geprobeerd, ook zonder effect (als module, meegebakken, het maakt niet uit).

Ik krijg tijdens het compileren deze melding:
router:/home/pierre/iproute2# make

make[1]: Entering directory `/home/pierre/iproute2/lib'
gcc -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -I../include-glibc -I/usr/include/db3 -include ../include-glibc/glibc-bugs.h -I/usr/src/linux/include -I../include -DRESOLVE_HOSTNAMES -c -o ll_map.o ll_map.c
In file included from ../include-glibc/netinet/in.h:7,
from ll_map.c:19:
/usr/src/linux/include/linux/in.h:140: field `gr_group' has incomplete type
/usr/src/linux/include/linux/in.h:146: field `gsr_group' has incomplete type
/usr/src/linux/include/linux/in.h:147: field `gsr_source' has incomplete type
/usr/src/linux/include/linux/in.h:153: field `gf_group' has incomplete type
/usr/src/linux/include/linux/in.h:156: field `gf_slist' has incomplete type
make[1]: *** [ll_map.o] Error 1
make[1]: Leaving directory `/home/pierre/iproute2/lib'
make: *** [all] Error 2
router:/home/pierre/iproute2#
Ik ben trouwens wel als root ingelogd, ik gebruik alleen die user directory als opslagplaats :)


Ik denk dus dat het probleem is dat ik die iptables niet goed krijg gecompileerd. Eerst kreeg ikook nog een melding of ik eerst m'n kernel wilde compileren, ik nam aan dat ze de linux kernel bedoelden, deze heb ik dus (nog maar een keertje, 90 minuten wachten is leuk op z'n P100 systeem) ook gecompileerd. Nu is die melding gelukkig weg, ik geloof dus dat het daaraan lag, maar hij komt nu niet echt verder. Op de website staat of je een 2.4.20 of hogere kernel wil gebruiken, anders zou je de kernel ook nog moeten patchen; ik gebruik dus 2.4.22 ( ook belangrijk: Op Debain, de nieuwste). Op de 2e site die ik noemde gebruiken ze de 2.4.18 kernel, en die patchen ze daar. Ik heb die patch ook nog geprobeerd op mijn 2.4.22 kernel, maar dat helpt ook niet; alleen een rijtje foutmeldingen.

Is mijn kernel te nieuw? Ik kan nog eens de 2.4.18 gebruiken.... maar misschien is dit wel een heel simpel probleem? ( hoop ik :D )
Ik heb ook via apt iproute en iptables geinstalleerd, en ook nog eens gedeinstalleerd voor het compileren van iproute2.


pff, een heel verhaal, sorry, maar ik kon het niet korter maken met deze info :D

Ik hoop dat iemand mij hieruit kan helpen :)

edit:
mmm, met de juiste zoekterm vind ik iemand die dat probleem ook heeft zie ik net; zie http://archives.neohapsis...nux/owl/2003-q3/0015.html en eventueel de threat daarboven. Het zou dus aan m'n kernel liggen :S ik lees verder...

edit2:
En wat http://www.mail-archive.c...man.ds9a.nl/msg06277.html staat, dat werkt ook niet voor mij; een link gemaakt naar een niet bestaande dir, de src dit hernoemt, het maakt neit uit, zelfde foutmeldingen helaas. Ik ga anders maar naar een andere kernel verhuizen :S

edit3:
Ik heb een oplossing, hij is nu aan het compileren. Ik weet niet of ik straks ook een nieuwe linux kernel moet installeren? Denk het niet, maar ik kijk zo wel.
Het probleem is als volgt op de te lossen voor mensen die dat willen weten:

Er zit een fout in linux-2.4.22 en hoger schijnt, in een bestand. Dit bestand vervang je door een bestand op je eigen linux bak, maakt niet uit of die bak op dezelfde kernel draait. Dat gaat als volgt:
Ga eerst naar je linux source directory, standaard /usr/src/linux. Daarin ga je naar de directory /include/linux. Je wijzigt daar even het bestand in.h naar bijvoorbeeld in.h.old ofzo, kan je altijd nog terug (misschien bij compileren kernel?). Hierna ga je naar de directory op je pc, niet source dus, naar /usr/include/linux. Daar kopieeer je het bestand in.h naar de source directorywaar je net dat bestand hebt gerenamed.

Hierna werkt het compileren :D nu hopen dat de rest ook gaat werken ;)

[ Voor 17% gewijzigd door pierre-oord op 18-11-2003 19:12 ]

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Arnout
  • Registratie: December 2000
  • Laatst online: 20:23
Ik snap niet waarop je iproute gaat compileren? Zoals je weet ;) maak ik ook gebruik van Netfilter QoS en dan ook HTB... ik hoefde voor htb3 alleen maar een executable te downen (nieuwere htb versie) en ik heb een nieuwe binary voor -ik meen- iptables neergezet zodat deze ook length match aan kon (oid). De standaard Stable binaries bij Debain GNU/Linux zijn wat verouderd.
Ik heb dus voor het gebruik van QoS (Netfilter) niks hoeven compileren...

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 12-04 14:05
MetHod schreef op 18 november 2003 @ 20:41:
Ik snap niet waarop je iproute gaat compileren? Zoals je weet ;) maak ik ook gebruik van Netfilter QoS en dan ook HTB... ik hoefde voor htb3 alleen maar een executable te downen (nieuwere htb versie) en ik heb een nieuwe binary voor -ik meen- iptables neergezet zodat deze ook length match aan kon (oid). De standaard Stable binaries bij Debain GNU/Linux zijn wat verouderd.
Ik heb dus voor het gebruik van QoS (Netfilter) niks hoeven compileren...
Die TC heb ik ook gedownload, de oude hernoemt en toen de nieuwe neergezet, maar fouten bleven helaas. Nu is het opgelost, en het werkt super :D

Ik heb wel even de bak opnieuw geinstalleerd net, het was beetje troep erop geworden, begreep zelf niet meer wat welke file was :P

Ben nu aan het herinstalleren, en verwacht dat alles soepeltjes gaat verlopen. Ik heb al een stukje van een howto gemaakt :)

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)