ubuntuusers.de

iptables mark und QoS

Status: Gelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

jb-alvarado

Anmeldungsdatum:
28. November 2012

Beiträge: 345

Hallo Allerseits, ich bin gerade dabei Traffic Shaping einzurichten. Die iptables richte ich mit fwBuilder ein und für das Shaping verwende ich TC.

Im Groben geht das ganze auch schon, allerdings habe ich ein Problem und eine Frage.

Das Problem:

Einige Ports sollten einen Mark Tag bekommen, den sie anscheint nicht annehmen, sondern einen anderen Marker erhalten. Die iptables Rules schauen so aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Stream über Kabel Deutschland priorisieren
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  --dport 1935  -j MARK --set-mark 10
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  --dport 1935  -j MARK --set-mark 10
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  --dport 1935  -j CONNMARK --save-mark
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  --dport 1935  -j CONNMARK --save-mark

# DNS über Kabel Deutschland priorisieren
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p udp -m udp  --dport 53  -j MARK --set-mark 11
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p udp -m udp  --dport 53  -j MARK --set-mark 11
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p udp -m udp  --dport 53  -j CONNMARK --save-mark
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p udp -m udp  --dport 53  -j CONNMARK --save-mark

# TCP Port: 22,80,443,465,587 über Kabel Deutschland priorisieren
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  -m multiport  --dports 587,80,443,25,465  -j MARK --set-mark 12
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p udp -m udp  --dport 1194  -j MARK --set-mark 12
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  -m multiport  --dports 587,80,443,25,465  -j MARK --set-mark 12
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p udp -m udp  --dport 1194  -j MARK --set-mark 12
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  -m multiport  --dports 587,80,443,25,465  -j CONNMARK --save-mark
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p udp -m udp  --dport 1194  -j CONNMARK --save-mark
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  -m multiport  --dports 587,80,443,25,465  -j CONNMARK --save-mark
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p udp -m udp  --dport 1194  -j CONNMARK --save-mark
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  --dport 22  -j MARK --set-mark 12
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  --dport 22  -j MARK --set-mark 12
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  --dport 22  -j CONNMARK --save-mark
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  --dport 22  -j CONNMARK --save-mark

# FTP und Data Verbindungen über Kabel Deutschland priorisiert
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  --dport 6000:7000  -j MARK --set-mark 13
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  --dport 40000:65535  -j MARK --set-mark 13
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  -m multiport  --dports 21,20  -j MARK --set-mark 13
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  --dport 6000:7000  -j MARK --set-mark 13
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  --dport 40000:65535  -j MARK --set-mark 13
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  -m multiport  --dports 21,20  -j MARK --set-mark 13
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  --dport 6000:7000  -j CONNMARK --save-mark
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  --dport 40000:65535  -j CONNMARK --save-mark
$IPTABLES -t mangle -A OUTPUT -o eth0.10  -p tcp -m tcp  -m multiport  --dports 21,20  -j CONNMARK --save-mark
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  --dport 6000:7000  -j CONNMARK --save-mark
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  --dport 40000:65535  -j CONNMARK --save-mark
$IPTABLES -t mangle -A POSTROUTING -o eth0.10  -p tcp -m tcp  -m multiport  --dports 21,20  -j CONNMARK --save-mark

Alles was Mark 13 erhält rutscht später irgendwie in 12 rein...

iptables -L -n -t mangle gibt das aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
CONNMARK   all  --  0.0.0.0/0            0.0.0.0/0            CONNMARK restore

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
TCPMSS     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp flags:0x06/0x02 TCPMSS clamp to PMTU

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
CONNMARK   all  --  0.0.0.0/0            0.0.0.0/0            CONNMARK restore
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1935 MARK set 0xa
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1935 CONNMARK save
MARK       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53 MARK set 0xb
CONNMARK   udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 MARK set 0xc
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 587,80,443,25,465 MARK set 0xc
MARK       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194 MARK set 0xc
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 587,80,443,25,465 CONNMARK save
CONNMARK   udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:6000:7000 MARK set 0xd
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40000:65535 MARK set 0xd
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 21,20 MARK set 0xd
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:6000:7000 CONNMARK save
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40000:65535 CONNMARK save
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 21,20 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1935 MARK set 0xf
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1935 CONNMARK save
MARK       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53 MARK set 0x10
CONNMARK   udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 MARK set 0x11
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 587,80,443,25,465 MARK set 0x11
MARK       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194 MARK set 0x11
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 587,80,443,25,465 CONNMARK save
CONNMARK   udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:6000:7000 MARK set 0x12
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40000:65535 MARK set 0x12
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 21,20 MARK set 0x12
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:6000:7000 CONNMARK save
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40000:65535 CONNMARK save
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 21,20 CONNMARK save

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1935 MARK set 0xa
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1935 CONNMARK save
MARK       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53 MARK set 0xb
CONNMARK   udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 MARK set 0xc
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 587,80,443,25,465 MARK set 0xc
MARK       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194 MARK set 0xc
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 587,80,443,25,465 CONNMARK save
CONNMARK   udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:6000:7000 MARK set 0xd
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40000:65535 MARK set 0xd
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 21,20 MARK set 0xd
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:6000:7000 CONNMARK save
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40000:65535 CONNMARK save
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 21,20 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1935 MARK set 0xf
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1935 CONNMARK save
MARK       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53 MARK set 0x10
CONNMARK   udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 MARK set 0x11
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 587,80,443,25,465 MARK set 0x11
MARK       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194 MARK set 0x11
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 587,80,443,25,465 CONNMARK save
CONNMARK   udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194 CONNMARK save
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:6000:7000 MARK set 0x12
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40000:65535 MARK set 0x12
MARK       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 21,20 MARK set 0x12
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:6000:7000 CONNMARK save
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40000:65535 CONNMARK save
CONNMARK   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp multiport dports 21,20 CONNMARK save

Und TC gibt mit: tc -s -d class show dev eth0.10 das aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class htb 1:11 parent 1:1 leaf 11: prio 1 quantum 1250 rate 100000bit ceil 12000Kbit linklayer ethernet burst 1600b/1 mpu 0b overhead 0b cburst 1597b/1 mpu 0b overhead 0b level 0 
 Sent 387856 bytes 4346 pkt (dropped 0, overlimits 0 requeues 0) 
 rate 0bit 0pps backlog 0b 0p requeues 0 
 lended: 4342 borrowed: 4 giants: 0
 tokens: 1686616 ctokens: 15781

class htb 1:1 root rate 12000Kbit ceil 12000Kbit linklayer ethernet burst 1597b/1 mpu 0b overhead 0b cburst 1597b/1 mpu 0b overhead 0b level 7 
 Sent 742395036 bytes 698178 pkt (dropped 0, overlimits 0 requeues 0) 
 rate 0bit 0pps backlog 0b 0p requeues 0 
 lended: 241098 borrowed: 0 giants: 0
 tokens: -15634 ctokens: -15634

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 37500 rate 3000Kbit ceil 4000Kbit linklayer ethernet burst 1599b/1 mpu 0b overhead 0b cburst 1600b/1 mpu 0b overhead 0b level 0 
 Sent 388980550 bytes 302898 pkt (dropped 51, overlimits 0 requeues 0) 
 rate 0bit 0pps backlog 0b 0p requeues 0 
 lended: 225502 borrowed: 77396 giants: 0
 tokens: 27072 ctokens: 20312

class htb 1:13 parent 1:1 leaf 13: prio 3 quantum 50000 rate 4000Kbit ceil 12000Kbit linklayer ethernet burst 1600b/1 mpu 0b overhead 0b cburst 1597b/1 mpu 0b overhead 0b level 0 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 rate 0bit 0pps backlog 0b 0p requeues 0 
 lended: 0 borrowed: 0 giants: 0
 tokens: 50000 ctokens: 16656

class htb 1:12 parent 1:1 leaf 12: prio 2 quantum 42500 rate 3400Kbit ceil 12000Kbit linklayer ethernet burst 1599b/1 mpu 0b overhead 0b cburst 1597b/1 mpu 0b overhead 0b level 0 
 Sent 353026630 bytes 390934 pkt (dropped 651, overlimits 0 requeues 0) 
 rate 0bit 0pps backlog 0b 110p requeues 0 
 lended: 226599 borrowed: 163698 giants: 0
 tokens: -20047 ctokens: 318

class htb 1:14 parent 1:1 leaf 14: prio 4 quantum 12500 rate 1000Kbit ceil 12000Kbit linklayer ethernet burst 1600b/1 mpu 0b overhead 0b cburst 1597b/1 mpu 0b overhead 0b level 0 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 rate 0bit 0pps backlog 0b 0p requeues 0 
 lended: 0 borrowed: 0 giants: 0
 tokens: 200000 ctokens: 16656

class sfq 12:27b parent 12: 
 (dropped 0, overlimits 0 requeues 0) 
 backlog 81756b 54p requeues 0 
 allot 0 

class sfq 12:29f parent 12: 
 (dropped 0, overlimits 0 requeues 0) 
 backlog 84784b 56p requeues 0 
 allot 1520 

Hier noch meine TC Script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/sh

# environment
DEV1=eth0.10
DEV2=eth0.11
TC=/sbin/tc
CEIL1=12000kbit
CEIL2=1000kbit

# delete old rules
$TC qdisc del dev $DEV1 ingress > /dev/null 2>&1
$TC qdisc del dev $DEV1 root > /dev/null 2>&1
$TC qdisc del dev lo root > /dev/null 2>&1

# default rule
$TC qdisc add dev $DEV1 root handle 1: htb default 12

# distribute bandwidth
$TC class add dev $DEV1 parent 1: classid 1:1  htb rate ${CEIL1} ceil ${CEIL1}
$TC class add dev $DEV1 parent 1:1 classid 1:10 htb rate 3000kbit ceil 4000kbit prio 0
$TC class add dev $DEV1 parent 1:1 classid 1:11 htb rate 100kbit ceil ${CEIL1} prio 1
$TC class add dev $DEV1 parent 1:1 classid 1:12 htb rate 3400kbit ceil ${CEIL1} prio 2
$TC class add dev $DEV1 parent 1:1 classid 1:13 htb rate 4000kbit ceil ${CEIL1} prio 3
$TC class add dev $DEV1 parent 1:1 classid 1:14 htb rate 1000kbit ceil ${CEIL1} prio 4

# management
$TC filter add dev $DEV1 parent 1:0 prio 1 protocol ip handle 10 fw flowid 1:10
$TC filter add dev $DEV1 parent 1:0 prio 2 protocol ip handle 11 fw flowid 1:11
$TC filter add dev $DEV1 parent 1:0 prio 3 protocol ip handle 13 fw flowid 1:13
$TC filter add dev $DEV1 parent 1:0 prio 4 protocol ip handle 14 fw flowid 1:14

$TC qdisc add dev $DEV1 parent 1:10 handle 10: sfq perturb 10
$TC qdisc add dev $DEV1 parent 1:11 handle 11: sfq perturb 10
$TC qdisc add dev $DEV1 parent 1:12 handle 12: sfq perturb 10
$TC qdisc add dev $DEV1 parent 1:13 handle 13: sfq perturb 10
$TC qdisc add dev $DEV1 parent 1:14 handle 14: sfq perturb 10

Gibt es bei den Mark Tags Begrenzungen, dass man nur eine gewissen Anzahl vergeben kann? Order ist das Format falsch und ich muss das in 0x013 etc. angeben? Oder woran liegt das?

Habt ihr da eine Idee?

Eine zweite Frage wäre:

Welche Möglichkeiten gäbe es, wenn die Internetverbindungen Seitens des Providers verlangsamt und man die Bandbreite für einen Port priorisieren möchte?

Z.B. haben wir normalerweise 12mbit Upload und ich will Port 1935 auf jeden Fall 3mbit geben. Das würde ja momentan meine Regeln erledigen. Was ist aber, wenn der Upload auf 2500kbit runter geht? Kann ich hier auch sagen, dass der Port 1935 alles bekommt was geht? Also irgendwie eine Dynamische neu Verteilung.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

Kanns sein daß du alte iptables Regeln nicht richtig rausgeworfen hast?

In deinen iptables Script steht 6000:7000 mark 13, in deiner iptables -L steht es doppelt tcp dpts:6000:7000 MARK set 0xd [0xd ist 13] und dann nochmal tcp dpts:6000:7000 MARK set 0x12 [0x12 ist 18].

Ich würde dir empfehlen überall die 0xFF Schreibweise zu verwenden solang die akzeptiert wird, da es auch bei iptables -L dann so dargestellt wird und weniger Interpretationsspielraum besteht.

Kann ich hier auch sagen, dass der Port 1935 alles bekommt was geht?

Für "alles was geht" gibts PRIO. Das schickt Pakete einer höheren Priorität immer zuerst raus. Aber mit PRIO kann dir dieser Port dann eben wirklich alles andere komplett dicht machen. Für Anwendungen die nicht mehr nutzen würden als sie brauchen (VOIP?) ist das vielleicht OK. Aber für normale Uploads ... zu krass.

Standardmäßig hat PRIO drei Stufen (bands) und richtet sich nach dem ToS Feld. Du kannst PRIO aber auch mit mehr Stufen erstellen, die priomap für die niedrigeren Stufen anpassen (+1) und dann einen festen Filter in die erste Stufe (höchste Priorität) setzen.

jb-alvarado

(Themenstarter)

Anmeldungsdatum:
28. November 2012

Beiträge: 345

Hallo Frostschutz,

danke für die Antwort!

Das mit dem doppelten Eintrag stimmt schon. Mark 13 geht über das Interface eth0.10 und Mark 18 geht über eth0.11. Für eth0.11 gibt es auch TC Regeln, habe sie nur der Einfachheit halber nicht hierein kopiert.

eth0.11 ist eine Ausfallleitung die anspringt wenn eth0.10 down geht.

Hatte auch sicherheitshalber die mangle Regeln mit iptables -t mangle -X gelöscht, weil ich auch schon vermutet hatte, dass da was doppelt ist. Gab aber keinen Unterschied.

Wenn ich allerdings mit ipref die Ports teste und z.B. Port 80 (der in Mark 12) liegt und Port 20 (Mark 13) gleichzeitig Übertragen lassen, teilen sie sich die Bandbreite auf, die ich in der TC Regel für die Klasse 12 definiert habe. Auch tc -s -d class show dev eth0.10 bestätigt das, weil hier zwei Übertragungen mit dem parent 12 aufgelistet werden.

Übertage ich auf dem Port 1935 und Port 80 stimmt das Ergebnis, hier ist Port 1935 parent 10 und Port 80 parent 12. Und auch die Werte im ipref stimmen dem überein, was ich festgelegt habe.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

OK, wenn das so funktioniert (du das so verifiziert hast anhand der iptables Zähler oder per iptables log).

QoS/tc ist bei mir einfach zu lange her, als ich in einer Studenten-WG gewohnt habe und dort die Leitung wegen edonkey oder sonst was dicht war hab ich mich damit befasst, vor 10 Jahren oder so...

Was den connmark angeht, du solltest eigentlich nicht so viele save Regeln brauchen. Ein restore am Anfang (und was dann einen Mark hat kann schon weg ohne nochmal alle Regeln erneut zu durchlaufen), ein save am Ende...

https://github.com/frostschutz/FairNAT/blob/master/fairnat_wrt.sh#L167

Keine Garantie ob das richtig ist.

Wo kommen die eth0.x Namen her? Ist das ein Routerboard mit X Ports wo jeder Port per eth0.x ansprechbar ist?

Bei Aliasen eth0:sonstwas gibts ja das Problem daß das gar keine echten unterscheidbaren Geräte sind. Diese Aliase benutzt man ja auch gar nicht mehr. Da muss man nach source-IP oder sonstwas gehen...

jb-alvarado

(Themenstarter)

Anmeldungsdatum:
28. November 2012

Beiträge: 345

frostschutz schrieb:

OK, wenn das so funktioniert (du das so verifiziert hast anhand der iptables Zähler oder per iptables log).

Leider hatte ich das nicht genug getestet und das ist wohl auch das Problem. Zum einen habe ich einen falschen Default tag angeben und zum anderen hatte ich ein Denkfehler genau in dieser doppelten Vergabe der iptables Marker.

Ich dachte die Regeln für eth0.11 würden erst greifen, wenn auch wirklich Pakete über dieses Interface geschickt werden. Dem scheint aber nicht so zu sein, die Pakete werden sofort neu getagget. Und dadurch dass die TC Regeln schlussendlich ins Leere greifen, wird Default angewendet. Interessant dass das bei Port 1935 nicht passiert ist.

Restore und save neu zu definieren geht nicht so ohne weiteres, da ich ja fwBuilder verwende um die Firewall zu warten. Und der macht das automatisch.

eth0.10 und eth0.11 kommen zu Stande weil ich mit dem Computer mehrere VLans verwalte. 10 und 11 sind unterschiedliche Internetverbindungen, dann hat noch wlan ein eigenes VLan und ein Sreaming Rechner hat auch noch sein eigenes.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

Problem gefunden ist ja schonmal halbe Miete. Leider kenn ich mich nicht gut genug aus mit iptables/fwBuilder/VLAN um konkret zu helfen. Vielleicht findet sich ja noch jemand. Viel Glück!

jb-alvarado

(Themenstarter)

Anmeldungsdatum:
28. November 2012

Beiträge: 345

Man kann in fwBuilder mehrere Firewall Scripts verwalten, die dann auch in einer Projektdatei gespeichert werden. Somit ist es doch noch einigermaßen übersichtlich und wartungsfreundlich. Daher habe ich jetzt für beide Interfaces ein eigenes iptables Script erstellt. Denke das ist die einfachste Möglichkeit.

Antworten |