
W dniu 06.09.2012 11:51, Tomasz Chiliński pisze:
W dniu 06.09.2012 11:07, JOYNET napisał(a):
W dniu 06.09.2012 06:44, Łukasz Czerepuk pisze: Podpisuje sie z przedmowca. Mialem pododobna sytuacje. Load nie byl zbyt wysoki, a transfer konczyl sie na 100Mbps, oczywiscie linki byly pospinane na 1Gbps. A dalej wiadomo, pasmo dla klientow spadalo, telefony i tak dalej. Kolejki byly napisane z uzyciem HTB. Dla pewnosci przenioslem wszystko na inna maszyne z innymi przerwaniami, myslalem, ze to rozwiaze sytuacje. Nie pomoglo. Rozwiazaniem okazalo sie gruntowne przebudowanie kolejek. Z 20k klas HTB szedlem do 5. Teraz 250Mbps "przerabia" nawet bez zajakniecia. Polecam wiec przyjrzec sie jeszcze raz dla firewalla. Ja stawiam, albo na przerwania, albo na firewall.
W dniu 2012-09-05 23:45, joynet@vp.pl pisze:
Napisz cos wiecej o tych ipsetach, sprzet wyglada ok, problem moze byc z podzialem pasma
Jesli chodzi o ipset to wszystkie reguly ktore wczesniej obslugiwane byly poprzez iptables czyli kazdy komputer to byla jedna linijka w iptables. Teraz jest na kazda podsiec (podsieci jest 23) to osobny ipset a wiec linijek dla iptables / nat jest 23. Do tego jest troche w tabeli nat dla publicznych IP i tyle. Ogolnie duzo tego nie ma:
# iptables -t nat -L -nv|wc -l 116
# iptables -L FORWARD -nv|wc -l 36
Rzeczywiscie najwiekszym problemem moze byc HTB:
# tc qdisc show qdisc htb 1: dev eth0 root refcnt 6 r2q 10 default 0 direct_packets_stat 3072877145 qdisc htb 1: dev eth1 root refcnt 6 r2q 10 default 0 direct_packets_stat 459710 qdisc htb 1: dev imq0 root refcnt 3 r2q 10 default 0 direct_packets_stat 933285
# tc class show dev eth1|wc -l 352
# tc class show dev imq0|wc -l 352
Wlaczylem jeszcze irqbalanace. Zobaczymy czy cos sie zmieni.
irq balance niczego nie zmieni, masz do bani podzial pasma polecam przy tylu klasach sieciowych zastosowac filtry mieszajace, dzialaja super
Klasy już zobaczyliśmy, tabelę nat i trochę filter również, ale filtrów tc, ani tabeli mangle jeszcze nie ;-) Co tam takiego tajnego ukrywasz Sławku? ;-)
Nic tajnego, myslalem ze to malo znaczace ;-)
# tc filter show dev eth1|wc -l 1848
tc filter show dev imq0|wc -l 1848
No i kawalek dla eth1:
filter parent 1: protocol ip pref 48691 u32 filter parent 1: protocol ip pref 48691 u32 fh 9cd: ht divisor 1 filter parent 1: protocol ip pref 48691 u32 fh 9cd::800 order 2048 key ht 9cd bkt 0 flowid 1:800 match 0a0a0b3c/ffffffff at 16 filter parent 1: protocol ip pref 48692 u32 filter parent 1: protocol ip pref 48692 u32 fh 9cc: ht divisor 1 filter parent 1: protocol ip pref 48692 u32 fh 9cc::800 order 2048 key ht 9cc bkt 0 flowid 1:798 match 0a0a0b3b/ffffffff at 16 filter parent 1: protocol ip pref 48693 u32 filter parent 1: protocol ip pref 48693 u32 fh 9cb: ht divisor 1 filter parent 1: protocol ip pref 48693 u32 fh 9cb::800 order 2048 key ht 9cb bkt 0 flowid 1:796 match 0a0a0b3a/ffffffff at 16 filter parent 1: protocol ip pref 48694 u32 filter parent 1: protocol ip pref 48694 u32 fh 9ca: ht divisor 1 filter parent 1: protocol ip pref 48694 u32 fh 9ca::800 order 2048 key ht 9ca bkt 0 flowid 1:794 match 0a0a0c70/ffffffff at 16 filter parent 1: protocol ip pref 48695 u32 filter parent 1: protocol ip pref 48695 u32 fh 9c9: ht divisor 1 filter parent 1: protocol ip pref 48695 u32 fh 9c9::800 order 2048 key ht 9c9 bkt 0 flowid 1:792 match 0a0a0120/ffffffff at 16 filter parent 1: protocol ip pref 48696 u32 filter parent 1: protocol ip pref 48696 u32 fh 9c8: ht divisor 1 filter parent 1: protocol ip pref 48696 u32 fh 9c8::800 order 2048 key ht 9c8 bkt 0 flowid 1:790 match 0a0a0683/ffffffff at 16 filter parent 1: protocol ip pref 48697 u32 filter parent 1: protocol ip pref 48697 u32 fh 9c7: ht divisor 1 filter parent 1: protocol ip pref 48697 u32 fh 9c7::800 order 2048 key ht 9c7 bkt 0 flowid 1:788
dla imq0:
filter parent 1: protocol ip pref 48691 u32 filter parent 1: protocol ip pref 48691 u32 fh 9cd: ht divisor 1 filter parent 1: protocol ip pref 48691 u32 fh 9cd::800 order 2048 key ht 9cd bkt 0 flowid 1:800 match 0a0a0b3c/ffffffff at 12 filter parent 1: protocol ip pref 48692 u32 filter parent 1: protocol ip pref 48692 u32 fh 9cc: ht divisor 1 filter parent 1: protocol ip pref 48692 u32 fh 9cc::800 order 2048 key ht 9cc bkt 0 flowid 1:798 match 0a0a0b3b/ffffffff at 12 filter parent 1: protocol ip pref 48693 u32 filter parent 1: protocol ip pref 48693 u32 fh 9cb: ht divisor 1 filter parent 1: protocol ip pref 48693 u32 fh 9cb::800 order 2048 key ht 9cb bkt 0 flowid 1:796 match 0a0a0b3a/ffffffff at 12 filter parent 1: protocol ip pref 48694 u32 filter parent 1: protocol ip pref 48694 u32 fh 9ca: ht divisor 1 filter parent 1: protocol ip pref 48694 u32 fh 9ca::800 order 2048 key ht 9ca bkt 0 flowid 1:794 match 0a0a0c70/ffffffff at 12 filter parent 1: protocol ip pref 48695 u32 filter parent 1: protocol ip pref 48695 u32 fh 9c9: ht divisor 1 filter parent 1: protocol ip pref 48695 u32 fh 9c9::800 order 2048 key ht 9c9 bkt 0 flowid 1:792
a same regulki wygladaja tak:
#!/bin/bash TC=/sbin/tc # Chwilowe pierdolniecie BURST="burst 8Mb" # Minimum pasma RATE="716800kbit" # Maximum pasma CEIL="1024000kbit" # Interfejs WAN / IMQ WAN="imq0" # Interfejs LAN LAN="eth1"
$TC qdisc del root dev $WAN $TC qdisc add dev $WAN root handle 1:0 htb $TC class add dev $WAN parent 1:0 classid 1:1 htb rate $RATE ceil $CEIL
$TC qdisc del root dev $LAN $TC qdisc add dev $LAN root handle 1:0 htb $TC class add dev $LAN parent 1:0 classid 1:1 htb rate $RATE ceil $CEIL
# POCZĄTEK WPISU DLA (ID:12) # Ciecie UPLOAD-u $TC class add dev $WAN parent 1:1 classid 1:112 htb rate 1024kbit ceil 4096kbit # Ciecie DOWNLOAD-u $TC class add dev $LAN parent 1:1 classid 1:112 htb rate 2048kbit ceil 8092kbit $BURST c$BURST $TC filter add dev $WAN protocol ip parent 1:0 u32 match ip src 10.10.9.63 flowid 1:112 $TC filter add dev $LAN protocol ip parent 1:0 u32 match ip dst 10.10.9.63 flowid 1:112 # # KONIEC DLA (ID:12) ######################
To takie stare i pewnie malo ok ale z grubsza do tej pory dzialalo. Przyklad dla jednego klienta z jednym komputerem. Bardzo tragiczne? :)