iptables - hashlimit ルールが入力されると、キャプティブ ポータル (nodogsplash) が動作を停止します (OpenWRT)

iptables - hashlimit ルールが入力されると、キャプティブ ポータル (nodogsplash) が動作を停止します (OpenWRT)

私は openwrt でホットスポット デバイスをセットアップしました。ホットスポット機能用に nodogsplash がインストールされ、帯域幅制限用に iptables がインストールされています。速度制限スクリプトをテストしていたとき、テスト目的でホットスポットが無効になっていたため、競合に気付きませんでした。問題は、iptables を使用したスクリプトと nodogsplash の両方がトラフィック制御のために iptables で "MARK" を使用しており、競合がここから始まると思います。両方のプログラムが "0xa" などの指定された文字列でトラフィックをマークするためです。この問題を修正する方法や、IP ごとに帯域幅を制御する他の方法はありますか?

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

これらは、iptables ルールを作成するスクリプトの一部です。

nodogsplshが作成したiptableルールの一部を以下に示します。

DROP       all  --  anywhere             anywhere             mark match 0x10000/0x30000
ndsAUT     all  --  anywhere             anywhere             mark match 0x30000/0x30000
ACCEPT     all  --  anywhere             anywhere             mark match 0x20000/0x30000

あまり多くせずに十分な情報を提供するように努めています :) 十分であることを願っています。

答え1

誰かが解決策を必要としていたら;

iptables -A forwarding_rule -d 192.168.1.10 -m hashlimit --hashlimit-name "speedLimit" --hashlimit-above 100kb/s -j DROP

オプション:

  • -d:クライアントのIPアドレス

  • --ハッシュ制限名:名前、コメントなど

  • --hashlimit-above:速度制限値(kb/s)

関連情報