Modelagem de tráfego com iptables, ipset e tc (--match-set e --set-mark)

1

Estou tendo alguns problemas com o que acredito que deve ser um problema de modelagem de tráfego bastante simples.

Eu tenho um servidor Ubuntu (16.04) que está agindo como um roteador / nat. Eu quero permitir que a maioria dos usuários use a internet de 2Mbps, enquanto alguns dispositivos são controlados para 512kbps.

Eu tenho a lista de dispositivos acelerados em um ipset . Eu estou tentando --mark-set os pacotes que vêm desses dispositivos para que tc possa direcioná-los com a modelagem de tráfego.

Minha configuração atual é:

tc qdisc del root dev $LAN
tc qdisc add dev $LAN root handle 1: htb default 20
tc class add dev $LAN parent 1: classid 1:1 htb rate 6mbit burst 15k
tc class add dev $LAN parent 1:1 classid 1:10 htb rate 5mbit burst 15k
tc class add dev $LAN parent 1:1 classid 1:20 htb rate 2mbit ceil 2mbit burst 15k
tc class add dev $LAN parent 1:1 classid 1:30 htb rate 512kbit ceil 512kbit burst 15k
tc qdisc add dev $LAN parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $LAN parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $LAN parent 1:30 handle 30: sfq perturb 10
tc filter add dev $LAN protocol ip parent 1: prio 1 handle 6 fw flowid 1:30


$IPS create throttled hash:mac -exist
$IPS add throttled 00:11:22:33:44:55 -exist
$IPT -A PREROUTING -t mangle -m set --match-set throttled src,dst -j MARK --set-mark 6

Isso não me reduz a 512kbps (supondo que meu endereço MAC seja o fornecido), ele cai para os 2mbps padrão

Se eu remover a parte --match-set , ela irá limitar todos os dispositivos a 512kbps (o que me faz pensar que a seção tc está correta)

No entanto, se eu DROP dos pacotes que correspondem a este conjunto, ele corretamente descarta os pacotes (o que me faz pensar que a seção iptables está correta)

Estou sentindo falta de algo aqui, ou esses dois comandos não podem ser usados juntos assim?

Qualquer ajuda muito apreciada.

Obrigado,

    
por Scalamoosh 22.04.2017 / 16:58

1 resposta

1

Um pensamento ... seu conjunto contém endereços MAC, mas suspeito que a regra PREROUTING esteja tentando corresponder a endereços IP src ou dst em vez de endereços MAC.

    
por 23.04.2017 / 04:30