Linux Advanced Routing & Traffic Control HOWTO
Шрифт:
Вы обязательно должны указывать имя сетевого интерфейса, поскольку каждый из них имеет свое уникальное пространство имен дескрипторов.
Отбор пакетов по IP-адресам выполняется аналогичным образом:
В
Допускается смешивать проверку IP-адреса и номера порта:
9.6.2. Наиболее употребимые способы фильтрации.
В большинстве случаев, команды фильтрации начинаются так:
Это так называемый селектор u32, который может выполнять отбор пакетов по любой его части.
По исходящему адресу: match ip src 1.2.3.0/24, по адресу назначения: match ip dst 4.3.2.0/24. Чтобы отобрать пакеты, отправляемые с/на единственный узел сети нужно указать сетевую маску /32 или вообще опустить ее.
Исходящий порт: match ip sport 80 0xffff, порт назначения: match ip dport 80 0xffff.
Номера протоколов вы найдете у себя, в файле /etc/protocols . Например, отбор ICMP-пакетов (номер протокола icmp – 1) можно выполнить командой match ip protocol 1 0xff.
Пакеты могут маркироваться либо средствами ipchains, либо средствами iptables. Это бывает полезно, например, для наложения ограничений на трафик, который следует с интерфейса eth1 на интерфейс eth0:
Обратите внимание — этот фильтр не является селектором u32!
Установить метку можно следующим образом:
данном случае число 6 выбрано произвольным образом.
Если вы не хотите с головой погружаться в синтаксис tc, тогда просто пользуйтесь возможностями iptables и запомните принцип отбора по метке.
Отбор трафика с минимальной задержкой:
Дополнительные сведения о фильтрации
9.7. Intermediate queueing device.
Устройство IMQ не является дисциплиной обработки очереди, но тесно с ними связано. В Linux, дисциплины обработки очередей присоединяются к сетевым устройствам и все, что помещается в очередь устройства, попадает сначала в очередь дисциплины обработки очереди. Из-за этого подхода существуют два ограничения:
1. Ограничение пропускной способности полноценно работает только для исходящего трафика (дисциплина обработки входящего трафика существует, но ее возможности мизерны по сравнению с полноклассовыми дисциплинами).
2. Дисциплина обработки очереди обслуживает трафик только для одного интерфейса, нет никакой возможности задать глобальные ограничения.
Устройство IMQ пытается решить эти проблемы. С помощью подсистемы фильтрации ОС Linux можно определенные пакеты направлять через этот псевдо-интерфейс, к которому подключаются различные дисциплины обработки очередей. Таким образом, можно управлять полосой пропускания, как входящего, так и общего трафика.
9.7.1. Пример конфигурирования.
Первое, что может прийти на ум – попытаться сформировать входящий трафик так, чтобы дать себе наивысший приоритет ;) Конфигурация IMQ очень похожа на конфигурацию любого другого интерфейса:
В этом примере для классификации пакетов используется селектор u32, однако, при работе с imq, могут использоваться и другие селекторы.
Отбираемый трафик маркируется средствами iptables:
Действие IMQ в iptables
допускается использовать только в цепочках PREROUTING и POSTROUTING, таблицы mangle. Его синтаксис:
где n – это номер устройства imq.
Это действие существует и в ip6tables.
Обратите внимание: трафик попадает на интерфейс не в тот момент, когда переходит к цели IMQ, а после обработки соответствующей цепочки. Точное место входа на устройство imq зависит от типа трафика (входящий/исходящий).