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

Larroy Pedro

Шрифт:

1. Ограничение пропускной способности полноценно работает только для исходящего трафика (дисциплина обработки входящего трафика существует, но ее возможности мизерны по сравнению с полноклассовыми дисциплинами).

2. Дисциплина обработки очереди обслуживает трафик только для одного интерфейса, нет никакой возможности задать глобальные ограничения.

Устройство IMQ пытается решить эти проблемы. С помощью подсистемы фильтрации ОС Linux можно определенные пакеты направлять через этот псевдо-интерфейс, к которому подключаются различные дисциплины обработки очередей. Таким образом, можно управлять полосой пропускания, как входящего, так и общего трафика.

9.7.1. Пример конфигурирования.

Первое, что может прийти на ум – попытаться сформировать входящий трафик так, чтобы дать себе наивысший приоритет ;) Конфигурация IMQ очень похожа на конфигурацию любого другого интерфейса:

tc qdisc add dev imq0 root handle 1: htb default 20

tc class add dev imq0 parent 1: classid 1:1 htb rate 2mbit burst 15k

tc class add dev imq0 parent 1:1 classid 1:10 htb rate 1mbit

tc class add dev imq0 parent 1:1 classid 1:20 htb rate 1mbit

tc qdisc add dev imq0 parent 1:10 handle 10: pfifo

tc qdisc add dev imq0 parent 1:20 handle 20: sfq

tc filter add dev imq0 parent 10:0 protocol ip prio 1 u32 match \

 ip dst 10.0.0.230/32 flowid 1:10

В этом примере для классификации пакетов используется селектор u32, однако, при работе с imq, могут использоваться и другие селекторы.

Отбираемый трафик маркируется средствами iptables:

iptables –t mangle –A PREROUTING –i eth0 –j IMQ –todev 0

ip link set imq0 up

Действие IMQ в iptables

допускается использовать только в цепочках PREROUTING и POSTROUTING, таблицы mangle. Его синтаксис:

IMQ [ -–todev n ]

где n – это номер устройства imq.

Это действие существует и в ip6tables.

Обратите внимание: трафик попадает на интерфейс не в тот момент, когда переходит к цели IMQ, а после обработки соответствующей цепочки. Точное место входа на устройство imq зависит от типа трафика (входящий/исходящий).

Для входящего трафика imq регистрируется с приоритетом NF_IP_PRI_MANGLE + 1. Это означает, что пакеты попадают на устройство сразу после прохождения цепочки PREROUTING. Для исходящего трафика, imq использует приоритет NF_IP_PRI_LAST, который гарантирует, что пакеты, уничтоженные пакетным фильтром не будут занимать полосу пропускания устройства.

Дополнительные сведения и "заплаты" вы найдете на сайте http://luxik.cdi.cz/~patrick/imq/

Глава 10. Распределение нагрузки по нескольким интерфейсам.

Существует несколько способов реализации такой схемы. Простейший и непосредственный способ представляет 'TEQL'. Это простейший компенсатор (True/Trivial link Equalizer). Как и большая часть того, что связано с очередями, балансировка нагрузки работает в обе стороны. Для полного эффекта обе стороны соединения должны работать совместно.

Представим ситуацию:

+-------+ eth1 +-------+

| |==========| |

'сеть 1' ----| A | | B |---- 'сеть 2'

| |==========| |

+-------+ eth2 +-------+

A и B это маршрутизаторы, и пока мы будем предполагать, что оба работают под управлением Linux. Для передачи данных из сети 1 в сеть 2, маршрутизатору A необходимо распределить пакеты по обоим каналам. Маршрутизатор B должен быть настроен соответствующим образом, чтобы поддерживать это. Тоже самое относится и к передаче данных из сети 2 в сеть 1. Маршрутизатор B должен передавать данные по двум интерфейсам — eth1 и eth2.

Распределение выполняется устройством 'TEQL'. Вот необходимые команды (куда уж проще):

# tc qdisc add dev eth1 root teql0

# tc qdisc add dev eth2 root teql0

# ip link set dev teql0 up

Не забудьте команду ip link set up!

Приведенные команды должны быть выполнены на каждом из маршрутизаторов. Устройство teql0 представляет собой циклический распределитель пакетов по интерфейсам eth1 и eth2. На устройство teql никогда не приходят данные, их получают интерфейсы eth1 и eth2.

  • Читать дальше
  • 1
  • ...
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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