Вход/Регистрация
Linux Advanced Routing & Traffic Control HOWTO
вернуться

Larroy Pedro

Шрифт:

# оба получают дисциплину Stochastic Fairness:

tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10

tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10

# TOS = Minimum-Delay (ssh, НО НЕ scp) -- в 1:10:

tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \

match ip tos 0x10 0xff flowid 1:10

# ICMP (ip protocol 1) -- в интерактивный класс 1:10

# так мы сможем удивить своих друзей:

tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \

match ip protocol 1 0xff flowid 1:10

# Поднять скорость входящего трафика, при наличии исходящего -- передать ACK-пакеты

# в интерактивный класс:

tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \

match ip protocol 6 0xff \

match u8 0x05 0x0f at 0 \

match u16 0x0000 0xffc0 at 2 \

match u8 0x10 0xff at 33 \

flowid 1:10

# остальной трафик не является интерактивным поэтому он попадает в 1:20

########## входящий трафик #############

# необходимо несколько уменьшить скорость поступления входящего трафика,

# это предотвратит задержку пакетов в очередях у поставщика услуг.

# Поставщики имеют обыкновение увеличивать размеры очередей,

# поэтому, экспериментальным путем подберите требуемые значения,

# при которых скачивание будет происходить с максимальной скоростью.

#

# присоединить входной ограничитель:

tc qdisc add dev $DEV handle ffff: ingress

# сбрасывать все подряд (0.0.0.0/0), что приходит со слишком большой скоростью.

tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \

0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1

Если вы собираетесь использовать этот сценарий совместно с ppp — скопируйте его в /etc/ppp/ip-up.d.

Если последние две строки в сценарии порождают сообщения об ошибке — обновите версию tc!

15.9. Ограничение скорости для отдельного хоста или подсети.

Хотя очень подробные описания темы раздела можно найти в разных местах, в том числе и в справочном руководстве man, тем не менее этот вопрос задается очень часто. К счастью, ответ на него настолько прост, что не нуждается в полном понимании принципов управления трафиком.

Эти три строки сделают все что вам нужно:

tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit

tc class add dev $DEV parent 1: classid 1:1 cbq rate 512kbit \

 allot 1500 prio 5 bounded isolated

tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \

 match ip dst 195.96.96.97 flowid 1:1

Первая строка — назначает базовую дисциплину на заданный интерфейс и сообщает ядру, что пропускная способность интерфейса составляет 10 Мбит/сек. Если вы установите неверное значение, то особого вреда не будет, однако, всегда стремитесь устанавливать верные значения, это повысит точность вычислений.

Вторая строка создает класс с полосой пропускания 512 Кбит/сек. Подробное описание CBQ содержит раздел Дисциплины обработки очередей для управления пропускной способностью.

Последняя строка говорит о том, какой трафик должен формироваться классом, определенным выше. Трафик, не подпадающий под заданное в фильтре условие, НЕ ОГРАНИЧИВАЕТСЯ! Более сложные примеры назначения условий (подсети, порт отправителя, порт адресата), вы найдете в разделе Наиболее употребимые способы фильтрации.

  • Читать дальше
  • 1
  • ...
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: