ограничение входящей скорости через iproute2

Приветсвую всех.

Возникла задача ограничить входящий и исходящий трафик на одном интерфейсе.
Решил воспользоваться iproute2

tc qdisc add dev eth1 root handle 1: htb default 11
tc qdisc add dev eth1 handle ffff: ingress
tc class add dev eth1 parent 1: classid 1:1 htb rate 500kbps ceil 500kbps
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 400kbps ceil 400kbps
tc class add dev eth1 parent 1:1 classid 1:11 htb rate 100kbps ceil 100kbps

но эти правила работают только для исходящего трафика (root).

Вопрос: как тоже самое распространить на входящий (ingress)? Или я где-то ошибся в командах?

входящий трафф не режется в

входящий трафф не режется в общем случае ;)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

и где же тут ingress

и где же тут ingress ограничение? :)
вот первый попавшийся кусок из когда-то работавшего кода, поди разберетесь?

if [ -n "$INGRESS" ]; then
    $TC qdisc add dev ${IFACE} handle ffff: ingress
    $TC filter add dev ${IFACE} parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 \
    police rate ${INGRESS} burst 16k drop flowid :1
fi

Есть контакт! Спасибо :)

Есть контакт! Спасибо :)

Только вот срабатывает данное правило если использовать маску /0
Т.е. если мы хотим выделить конкретный IP без маски или с маской /32 правило не работает.

тогда таки непонятно, чего

тогда таки непонятно, чего именно Вы хотите? хотели резать на интерфейсе или как-то более детально?

Сорри, что не описал что мне

Сорри, что не описал что мне нужно.

дано:
eth0 - локальная сеть
eth1 - интернет
iproute2

нужно:
ограничить пользователям входящую и исходящую скорость интернета (у каждого разная скорость)
к локальной сети скорость ограничивать не нужно.

Сейчас скрипт выглядит так:

#!/bin/bash

DEV="eth1"

#удаляем правила
tc qdisc del dev $DEV root
tc qdisc del dev $DEV handle ffff: ingress


#описываем дисциплины
tc qdisc add dev $DEV root handle 1: htb default 100
tc qdisc add dev $DEV handle ffff: ingress

#создаём классы с суммарным ограничением скорости (полоса в инет - 10)
tc class add dev $DEV parent 1: classid 1:1 htb rate 10mbit

#не классифиццированный траф сюда
tc class add dev $DEV parent 1: classid 1:100 htb rate 1Mbit

#создаём фильтры которые направляют пользователей в соответсующие классы.
tc class add dev $DEV parent 1:1 classid 1:24 htb rate 1024kbit
tc filter add dev $DEV protocol ip parent 1: prio 4 u32 match ip dst 192.168.252.100/0 flowid 1:1
tc qdisc add dev $DEV parent 1:24 handle 24: sfq perturb 10
tc filter add dev $DEV parent ffff: protocol ip prio 4 u32 match ip src 192.168.252.100/0 police rate 256kbit burst 32k flowid :1

но поскольку используется маска /0 - данное правило срабатывает для всех
если маску убрать или использовать /32 - правило не работает ни для кого.

.

Вообще-то ограничивать входящий траффик на интерфейсе практически бесполезно.
Нормально ограничить можно только исходящий траффик. Если речь идет о маршрутизаторе
на базе gentoo или другого Linux, то входящий траффик ограничивается на интерфейсах,
к которым подключены клиенты сети, а исходящий на интерфейсах, которые подключены к
провайдерам (внешним сетям). Причем, в обоих случаях фактически для конкретного
интерфейса это будет исходящий траффик.

Т.е. - нужно описать классы и фильтры на eth0 (это будет ограничение входящего траффика), и то же самое на eth1 (это будет ограничение исходящего траффика). Так будет правильно.

Возиться с ingress неблагодарное занятие.

alexpro написал(а): Т.е. -

alexpro написал(а):

Т.е. - нужно описать классы и фильтры на eth0 (это будет ограничение входящего траффика), и то же самое на eth1 (это будет ограничение исходящего траффика). Так будет правильно.

Ну тогда ведь ограничивается и скорсть по локалке, или нет?

Если правильно описать

Если правильно описать фильтры, то ограничиваться будет только то, что нужно ограничивать. Т.е. - если локалку ограничивать не нужно - описываем соответствующие класс/фильтр.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".