%20para%20de%20funcionar%20se%20iptables%20-%20regras%20de%20hashlimit%20inseridas%20(OpenWRT).png)
Eu configurei um dispositivo hotspot com openwrt. Possui nodogsplash instalado para funções de hotspot e iptables para limitar largura de banda. Quando eu estava testando o script de limite de velocidade, o hotspot foi desativado para fins de teste, então não percebi o conflito naquela época. O problema é que meu script com iptables e nodogsplash usa "MARK" no iptables para controle de tráfego e o conflito começa aqui, eu acho. Porque ambos os programas marcam o tráfego com strings especificadas como "0xa". Existe alguma maneira de corrigir esse problema ou alguma outra maneira de controlar a largura de banda por 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
Essas são algumas partes do meu script que criam regras de iptables.
Algumas das regras de iptable criadas pelo nodogsplsh estão abaixo
DROP all -- anywhere anywhere mark match 0x10000/0x30000
ndsAUT all -- anywhere anywhere mark match 0x30000/0x30000
ACCEPT all -- anywhere anywhere mark match 0x20000/0x30000
Tento dar informações suficientes sem muita :) Espero que seja o suficiente.
Responder1
Se alguém precisasse de uma solução;
iptables -A forwarding_rule -d 192.168.1.10 -m hashlimit --hashlimit-name "speedLimit" --hashlimit-above 100kb/s -j DROP
opções:
-d:endereço IP do cliente
--hashlimit-nome:algum nome, como comentário
--hashlimit-acima:valor limite de velocidade em kb/s