Jump to content

Recommended Posts

Posted

Добрый день!

Есть:

1) сеть 192.168.5.0/24

2) роутер с линуксом eth0 - интернет, eth1 - 192.168.5.1

3) куча клиентов в сети 192.168.5.0/24

Нужно ограничивать скорость от клиентов в интернет. Всё вроде бы получилось, но текущие настройки режут и трафик от клиентов к самому роутеру 192.168.5.1

Далее привожу текущий конфиг:

#in root
$TC qdisc add dev ifb0 root handle 1: htb default 300
#out root
$TC qdisc add dev ifb1 root handle 2: htb default 300

#ingress
$TC class add dev ifb0 parent 1: classid 1:1 htb rate 900kbit ceil 901kbit
#egress
$TC class add dev ifb1 parent 2: classid 2:1 htb rate 900kbit ceil 901kbit

#others
$TC class add dev ifb0 parent 1:1 classid 1:300 htb rate 32kbit
$TC class add dev ifb1 parent 2:1 classid 2:300 htb rate 32kbit

$TC qdisc add dev ifb0 parent 1:300 sfq perturb 10
$TC qdisc add dev ifb1 parent 2:300 sfq perturb 10

#2
$TC class add dev ifb0 parent 1:1 classid 1:2 htb rate 64kbit ceil 512kbit
$TC class add dev ifb1 parent 2:1 classid 2:2 htb rate 64kbit ceil 512kbit

$TC qdisc add dev ifb0 parent 1:2 sfq perturb 10
$TC qdisc add dev ifb1 parent 2:2 sfq perturb 10

$TC filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.5.2 flowid 1:2
$TC filter add dev ifb1 protocol ip parent 2:0 prio 1 u32 match ip dst 192.168.5.2 flowid 2:2
#voip
$TC class add dev ifb0 parent 1:1 classid 1:100 htb rate 320kbit ceil 512kbit
$TC class add dev ifb1 parent 2:1 classid 2:100 htb rate 320kbit ceil 512kbit

$TC qdisc add dev ifb0 parent 1:100 sfq perturb 10
$TC qdisc add dev ifb1 parent 2:100 sfq perturb 10

$TC filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.5.100 flowid 1:100
$TC filter add dev ifb1 protocol ip parent 2:0 prio 1 u32 match ip dst 192.168.5.100 flowid 2:100

ifconfig ifb0 up
#ingress redirection
$TC qdisc add dev eth1 ingress
$TC filter add dev eth1 parent ffff: protocol ip prio 1 u32 match u32 0 0 flowid 1: action mirred egress redirect dev ifb0
#egress redirection
$TC qdisc add dev eth1 root handle 2: htb
$TC filter add dev eth1 parent 2: protocol ip prio 1 u32 match u32 0 0 flowid 2: action mirred egress redirect dev ifb1

Вобщем надо каким-то образом переделать фильтр u32 match. Я понимаю как работает данный фильтр. И предполагаю что нужно сделать подобное правило:

трафик с src 192.168.5.0 и dst НЕ 192.168.5.0 отправлять в ifb, остальное мимо. Но вот как это сделать с помощью данного фильтра - не понимаю. Смотрел документацию и не нашёл там возможности задать адрес отрицанием.

Подскажите, каким образом можно решить мою проблему?

Posted

Видимо и правда нельзя использовать отрицание, ну и фик с ним.

Подскажите, как будет обработан трафик в такой ситуации:

1)есть трафик с src 192.168.5.0\24 и dst 192.168.5.0\24.

2)есть два разных правила, но трафик соотетствует обоим, например :

$TC filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.5.0\24 flowid 1:100
$TC filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.5.0\24 flowid 1:101

Интересует: трафик будет обработан только первым правилом? обоими? как-то ещё?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.