%20funktioniert%20nicht%20mehr%2C%20wenn%20iptables%20-%20Hashlimit-Regeln%20eingegeben%20werden%20(OpenWRT).png)
Ich habe ein Hotspot-Gerät mit OpenWRT eingerichtet. Es ist Nodogsplash für Hotspot-Funktionen und Iptables für die Bandbreitenbegrenzung installiert. Als ich das Skript zur Geschwindigkeitsbegrenzung getestet habe, war der Hotspot zu Testzwecken deaktiviert, sodass mir der Konflikt damals nicht aufgefallen ist. Das Problem ist, dass sowohl mein Skript mit Iptables als auch Nodogsplash „MARK“ auf Iptables zur Verkehrssteuerung verwenden, und ich glaube, hier beginnt der Konflikt. Denn beide Programme markieren den Verkehr mit ihren angegebenen Zeichenfolgen wie „0xa“. Gibt es Möglichkeiten, dieses Problem zu beheben oder die Bandbreite pro IP auf andere Weise zu steuern?
iptables -t nat -A prerouting_rule -m mac --mac-source 1c:91:48:xx:xx:xx -j MARK --set-mark 0x0A -m comment --comment "PC"
iptables -t nat -A prerouting_rule -m mark --mark 0xA -j CONNMARK --save-mark
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -A forwarding_rule -m mark --mark 0xA -m conntrack --ctstate ESTABLISHED,RELATED -m hashlimit --hashlimit-name "Limit" --hashlimit-above 24kb/s -j DROP
Dies sind die Teile meines Skripts, die iptables-Regeln erstellen.
Einige der von nodogsplsh erstellten iptable-Regeln sind unten aufgeführt
DROP all -- anywhere anywhere mark match 0x10000/0x30000
ndsAUT all -- anywhere anywhere mark match 0x30000/0x30000
ACCEPT all -- anywhere anywhere mark match 0x20000/0x30000
Ich versuche, genügend Informationen zu geben, ohne zu viel zu übertreiben :) Ich hoffe, das reicht.
Antwort1
Wenn jemand eine Lösung bräuchte;
iptables -A forwarding_rule -d 192.168.1.10 -m hashlimit --hashlimit-name "speedLimit" --hashlimit-above 100kb/s -j DROP
Optionen:
-D:IP-Adresse des Kunden
--hashlimit-name:ein Name, wie Kommentar
--hashlimit-über:Geschwindigkeitsbegrenzungswert in kb/s