Hi,
damit man ipp2p ordentlich benutzen kann, benötigt man "connection tracking mark" support im kernel ist ja auch auf der ipp2p webpage so beschrieben.
Da ich es damit dann aber immer noch nicht geschafft hatte irgendwie das TOS bit früh genug zu setzen (vor dem Traffic Shaper der Box), hab ich den CONNMARK match nen bissel umgebaut (zweiter patch), so dass dieser direkt das TOS bit passend setzen kann. Ansonsten ging das erst innerhalb der POSTROUTING queue in der mangle Table.. das ist aber definitiv zu spät.. und zeigt keinerlei Wirkung auf das Traffic Shaping.
Mit beiden patches von mir funktioniert das Traffic Shaping hier recht gut in Verbindung mit Amule auf dem PC.. da amule kein TOS bit setzen kann, macht das nun iptables auf der Fritzbox.. mit den passenden Regeln.. meine sind da:
Wenn also beim --set-mark das bit 0x8000 gesetzt ist, dann wird das untere byte als TOS (type of service) verwendet (hier also 2.. was minimize cost entspricht..)
Für andere Filesharing Tools muss man den iptables aufruf mit dem -m ipp2p entsprechend ändern (--edk --winmx) .. kann man auf der ipp2p webseite anschauen, was es sonst noch so gibt.
und in der ar7.cfg hab ich dann sowas:
und
Damit kann ich hier trotz vollem upload in Amule nebenbei surfen und telefonieren.. allerdings sollte man es wie ja schon bekannt mit der maximalen Anzahl an Verbindungen nicht übertreiben. (hier auf 200... ggf. noch niedriger setzen)
Achso.. ich hab da noch diesen "minimize delay" eintrag drinn.. damit kann man ggf. in iptables noch nach beliebigen kriterien durch setzen des TOS bits auf 0x10 pakete priorisieren (selbe stufe wie Telefonie) .. wenn man z.B. von einem Rechner in seinem Netz immer mit max priorität ins Netz möchte, so kann man dann sowas machen
Ansonsten wäre da noch das ip[1] = 8 beim "fon-rtp" .. um zu erreichen, dass die fritzbox selber bei den rtp sip paketen das TOS bit auf 8 setzt musste ich hier im WebIf der Box unter Telefonie->Internettelefonie->Erweiterte Einstellungen das "SIP-Pakete kennzeichnen" und "RTP-Pakete kennzeichnen" auf den Wert 2 setzen.. (hier auf der 7050 Software 14.03.101 bzw. 14.04.01) keine Ahnung ob das bei den neuen Versionen auch so ist.. auf jedenfall kann man das mit dem FritzBox Paketmitschnitt und Ethereal überprüfen. Das ganze sollte aber eigentlich nicht nötig sein, da die Erkennung der Pakete ja auch über dieses udp[8] = 0x80 gemacht wird.
Eventuell wirds ja dann in den dsmod eingebaut..
cya
damit man ipp2p ordentlich benutzen kann, benötigt man "connection tracking mark" support im kernel ist ja auch auf der ipp2p webpage so beschrieben.
Da ich es damit dann aber immer noch nicht geschafft hatte irgendwie das TOS bit früh genug zu setzen (vor dem Traffic Shaper der Box), hab ich den CONNMARK match nen bissel umgebaut (zweiter patch), so dass dieser direkt das TOS bit passend setzen kann. Ansonsten ging das erst innerhalb der POSTROUTING queue in der mangle Table.. das ist aber definitiv zu spät.. und zeigt keinerlei Wirkung auf das Traffic Shaping.
Mit beiden patches von mir funktioniert das Traffic Shaping hier recht gut in Verbindung mit Amule auf dem PC.. da amule kein TOS bit setzen kann, macht das nun iptables auf der Fritzbox.. mit den passenden Regeln.. meine sind da:
Code:
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j ACCEPT
iptables -t mangle -A PREROUTING -m ipp2p --edk --winmx -j MARK --set-mark 0x8002
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
Für andere Filesharing Tools muss man den iptables aufruf mit dem -m ipp2p entsprechend ändern (--edk --winmx) .. kann man auf der ipp2p webseite anschauen, was es sonst noch so gibt.
und in der ar7.cfg hab ich dann sowas:
Code:
name = "Fritz!Box";
limiters {
name = "default-out";
bps_limit {
limit_total = 100;
limit_p0 = 95;
limit_p1 = 60;
limit_p2 = 60;
limit_p3 = 0;
}
Code:
out_rules {
name = "minimize delay";
filter = "ip[1] = 0x10";
priority = 3;
limiters = "default-out";
} {
name = "minimize cost";
filter = "ip[1] = 2";
priority = 0;
limiters = "default-out";
} {
name = "fon-rtp (maximize throughput)";
filter = "ip[1] = 8 or udp[8] = 0x80 or udp por
5060";
priority = 3;
limiters = "default-out";
} {
name = "download-tcp-ack";
filter = "tcp and (len <= 64)";
priority = 2;
limiters = "default-out";
} {
name = "dns";
filter = "udp port 53";
priority = 2;
limiters = "default-out";
} {
name = "remote";
filter = "tcp and (port 23 or port 22 or port 3
89)";
priority = 1;
limiters = "default-out";
} {
name = "http-get/put-requests and https";
filter = "tcp[32:4] = 0x47455420 or tcp[32:4] =
0x50555420 or tcp dst port 443";
priority = 2;
limiters = "default-out";
} {
name = "email";
filter = "tcp and (dst port 110 or dst port 995
";
priority = 2;
limiters = "default-out";
} {
name = "pri-out";
filter = "icmp";
priority = 2;
limiters = "default-out";
} {
name = "default";
filter = "";
priority = 1;
limiters = "default-out";
}
Damit kann ich hier trotz vollem upload in Amule nebenbei surfen und telefonieren.. allerdings sollte man es wie ja schon bekannt mit der maximalen Anzahl an Verbindungen nicht übertreiben. (hier auf 200... ggf. noch niedriger setzen)
Achso.. ich hab da noch diesen "minimize delay" eintrag drinn.. damit kann man ggf. in iptables noch nach beliebigen kriterien durch setzen des TOS bits auf 0x10 pakete priorisieren (selbe stufe wie Telefonie) .. wenn man z.B. von einem Rechner in seinem Netz immer mit max priorität ins Netz möchte, so kann man dann sowas machen
Code:
iptables -t mangle -A PREROUTING -s 192.168.0.24 -j TOS --set-tos 16
Ansonsten wäre da noch das ip[1] = 8 beim "fon-rtp" .. um zu erreichen, dass die fritzbox selber bei den rtp sip paketen das TOS bit auf 8 setzt musste ich hier im WebIf der Box unter Telefonie->Internettelefonie->Erweiterte Einstellungen das "SIP-Pakete kennzeichnen" und "RTP-Pakete kennzeichnen" auf den Wert 2 setzen.. (hier auf der 7050 Software 14.03.101 bzw. 14.04.01) keine Ahnung ob das bei den neuen Versionen auch so ist.. auf jedenfall kann man das mit dem FritzBox Paketmitschnitt und Ethereal überprüfen. Das ganze sollte aber eigentlich nicht nötig sein, da die Erkennung der Pakete ja auch über dieses udp[8] = 0x80 gemacht wird.
Eventuell wirds ja dann in den dsmod eingebaut..
cya
Anhänge
Zuletzt bearbeitet: