Traffic shaping mit ipfw und dummynet = packet loss

kenbukan

New Member
Hallo zusammen,

ich habe auf freebsd 7.2 einen Traffic Shaper aufgesetzt und dabei haben sich ein paar probleme ergeben die ich ohne Hilfe nicht in den Griff bekomme.

erst einmal die config von ipfw

generelle Regeln
Code:
ipfw -f flush
ipfw -f pipe flush
ipfw add 1 reset ip from any to any 13751,6699,10240,2234,5534,6881-6889 via bridge0
ipfw pipe 9 config bw 0
ipfw add 2 pipe 9 ip from 85.114.xxx.0/24 to 85.114.xxx.0/24 via bridge0
ipfw add 3 pipe 9 icmp from any to any via bridge0
ipfw add 4 pipe 9 ip from any to any 22,3389 via bridge0

und hier der code fürs shaping von bestimmten IP Adressen

Code:
ipfw pipe 1234 config bw 1MBit/s
ipfw add pipe 1234 ip from any to 85.114.xxx.31 in via bridge0
ipfw add pipe 1234 ip from 85.114.xxx.31 to any out via bridge0

alle pipes die erstellt werden sehen so aus nur das sich die Bandbreite und die IP Adresse ändert.

So nun zum Problem Nummer 1 , wenn alle pipes erstellt sind kann keiner kehr auf die Hosts zugreifen da ein enorm hoher packet loss entsteht der Load liegt dann über 2 und die Cpu Auslastung ca. bei 25%.

Das Problem Nummer zwei sind die Angaben der Bandbreite setze ich die Banbreite auf 10Mbit/s bekomme ich eine donloadrate von 100Mbit/s und setze ich die Bandbeite auf100Kbit/s habe ich einen Download von 10Mbit/s.

Zur Konfiguration:

Der Kernel wurde mit den options aus dem Handbuch ohne Fehler kompiliert und installiert.

noch zwei System-Anpasungen
Code:
sysctl net.inet.ip.fw.one_pass=0
sysctl net.link.ether.bridge.ipfw=1

Hardware Konfiguration:
CPU = 2x Xeon 3,0GHz
2x Intel Fiber NIC (em2+em3=bridge0)
1GB RAM

Ich habe schon den send- und recvspace hochgestellt hat aber am Problem nichts geändert.

Auch einen neuen Treiber von Intel habe ich installiert das einzige was sich dabei geändert hat ist die Load diese ist gesunken auf 1.4.

Leider weis ich nicht ob es an den Regeln selbst liegt oder ob etwas mit der bridge nicht richtig funktioniert, mein latein ist am Ende.
 
Zuletzt bearbeitet:
Hi,
also so wie ich das gerade sehe sind deine Regeln doppeldeutig, sodass Problem 2 dadurch Entsteht da die Pakete mehrmals durch den Filter gehen.

ipfw add 2 pipe 9 ip from 85.114.xxx.0/24 to 85.114.xxx.0/24 via bridge0
ipfw add pipe 1234 ip from any to 85.114.xxx.31 in via bridge0
ipfw add pipe 1234 ip from 85.114.xxx.31 to any out via bridge0

Sind das dieselben IP Adressen?

Zu Problem 1, wie hast du die Verbindung probiert? Per Ping? Wenn ja muss das so sein, da du den Port 135 und 139 nicht zulässt.

Damit ich dir genau Antworten kann brauch ich noch die Infos für die Bridge. Die ergeben sich, aber man hat irgendwann keinen Überblick mehr.

Mfg KO
 
Hi,

Den Kernel hatte ich so kompiliert das alle Verbindungen standardmäßig erlaubt sind.
Über die bridge laufen mehrere Netze, maximal 500 Clients, z.B. 85.114.1.0/24 und 85.114.2.0/24

Die bridge wurde über die rc.conf konfiguriert.

Code:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm em2 addm em3 up"
ifconfig_em2="up"
ifconfig_em3="up"
ifconfig_bridge0_alias0="inet 172.16.100.50 netmask 255.255.255.0 up"
defaultrouter="172.16.100.1"


Ich habe versucht die Client via ping / nmap zu erreichen.

Danke für die willkommene Hilfe :-)
 
Hier die kernel Optionen die ich der GENERIC hinzu gefügt habe.
Code:
# Firewall
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT

# Dummynet
options DUMMYNET
options HZ=1000

Hier die Ausgabe von ipfw show.
Code:
00001     0       0 reset ip from any to any dst-port 9851,5025,6346,411,412,4661,4662,4663,4665,4711,1214,1234,5498,5499,5500,5501,6347,13751,6699,10240,2234,5534,6881-6889
00002     0       0 pipe 9 ip from 62.141.32.0/20,193.111.198.0/23,217.79.176.0/20,80.86.186.0/24,85.114.128.0/19 to 62.141.32.0/20,193.111.198.0/23,217.79.176.0/20,80.86.186.0/24,85.114.128.0/19 in via bridge0
00003     0       0 pipe 9 icmp from any to any in via bridg0
00004     0       0 pipe 9 ip from 195.14.253.109,69.17.117.207,212.19.62.76,85.214.60.146,193.34.68.36,89.31.143.2,80.237.212.80,88.80.210.3,85.25.143.217,85.10.205.101,195.14.253.109,217.20.114.87,62.212.79.29,193.33.216.7,82.165.73.41 to any in via bridge0 
00005     0       0 pipe 9 ip from any to 95.14.253.109,69.17.117.207,212.19.62.76,85.214.60.146,193.34.68.36,89.31.143.2,80.237.212.80,88.80.210.3,85.25.143.217,85.10.205.101,195.14.253.109,217.20.114.87,62.212.79.29,193.33.216.7,82.165.73.41 in via bridg0
00105     0       0 pipe 12565 ip from 85.114.xxx.79 to any out via bridge0
00205     0       0 pipe 12565 ip from any to 85.114.xxx.79 in via bridge0
00305     0       0 pipe 11522 ip from 85.114.xxx.59 to any out via bridge0
00405     0       0 pipe 11522 ip from any to 85.114.xxx.59 in via bridge0
00505     0       0 pipe 26251 ip from 85.114.xxx.42 to any out via bridge0
00605     0       0 pipe 26251 ip from any to 85.114.xxx.42 in via bridge0
00705     0       0 pipe 25560 ip from 85.114.xxx.124 to any out via bridge0
00805     0       0 pipe 25560 ip from any to 85.114.xxx.124 in via bridge0
00905     0       0 pipe 25560 ip from 85.114.xxx.137 to any out via bridge0
01005     0       0 pipe 25560 ip from any to 85.114.xxx.137 in via bridge0
01105     0       0 pipe 26029 ip from 85.114.xxx.168 to any out via bridge0
01205     0       0 pipe 26029 ip from any to 85.114.xxx.168 in via bridge0
01305     0       0 pipe 26029 ip from 85.114.xxx.116 to any out via bridge0
01405     0       0 pipe 26029 ip from any to 85.114.xxx.116 in via bridge0
01505     0       0 pipe 26029 ip from 85.114.xxx.115 to any out via bridge0
01605     0       0 pipe 26029 ip from any to 85.114.xxx.115 in via bridge0
01705     0       0 pipe 26029 ip from 85.114.xxx.110 to any out via bridge0
01805     0       0 pipe 26029 ip from any to 85.114.xxx.110 in via bridge0
01905     0       0 pipe 24888 ip from 93.186.xxx.47 to any out via bridge0
02005     0       0 pipe 24888 ip from any to 93.186.xxx.47 in via bridge0
02105     0       0 pipe 29985 ip from 93.186.xxx.150 to any out via bridge0
02205     0       0 pipe 29985 ip from any to 93.186.xxx.150 in via bridge0
02305     0       0 pipe 26560 ip from 93.186.xxx.174 to any out via bridge0
02405     0       0 pipe 26560 ip from any to 93.186.xxx.174 in via bridge0
02505     0       0 pipe 25225 ip from 93.186.xxx.106 to any out via bridge0
02605     0       0 pipe 25225 ip from any to 93.186.xxx.106 in via bridge0
02705     0       0 pipe 29999 ip from 93.186.xxx.87 to any out via bridge0
02805     0       0 pipe 29999 ip from any to 93.186.xxx.87 in via bridge0
65535 36548 4823243 allow ip from any to any

Hier die Ausgabe von #ipfw pipe show
Code:
26029:  25.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
25225:  50.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
26251:  25.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
12565:  25.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
29985:  15.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
25560:  50.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
29999:  15.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
00009: unlimited    0 ms   50 sl. 0 queues (1 buckets) droptail
24888:  25.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
26560:  25.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
11522:  25.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
 
Zurück
Oben