
- •Средства маршрутизации
- •Политика маршрутизации
- •Тип сервиса
- •Передача пакетов по различным маршрутам
- •Протоколирование работы маршрутизатора
- •Качество сервиса
- •Ip команда [list |add I del ] селектор действие
- •Использование tc
- •Использование протоколов маршрутизации
- •Принцип действия протоколов маршрутизации
- •Использование routed
- •Использование GateD
- •Использование Zebra
Качество сервиса
В большинстве случаев средства маршрутизации Linux обрабатывают пакеты по принципу "первый пришел/первым обработан" (first-come/first-served). Такая процедура дает хорошие результаты в тех случаях, когда пропускная способность линий достаточна для передачи всех пакетов с минимальной задержкой и когда нет необходимости предоставлять некоторым пакетам более высокий приоритет по сравнению с остальными. Если нагрузка на маршрутизатор велика, приходится использовать другие способы обработки пакетов, которые позволяют уменьшить поток данных на некоторые узлы или гарантировать своевременную доставку информации определенным пользователям или приложениям. Для установки подобных режимов маршрутизации в системе Linux предусмотрен ряд опций. Они объединены в подменю QoS and/or Fair Queueing, которое вызывается с помощью одноименного пункта меню Networking Options.
Активизация опций меню QoS and/or Fair Queueing сама по себе не приведет к изменению работы системы. Подобно другим опциям, которые управляют средствами расширенной маршрутизации, эти опции предполагают использование пакета iproute2. Если вы не уверены в том, что данные средства понадобятся вам, скомпилируйте компоненты ядра, предназначенные для их поддержки, в виде модулей. В результате соответствующие компоненты не будут занимать ресурсы компьютера, но вы всегда сможете воспользоваться ими.
ВНИМАНИЕ Перед компиляцией ядра внимательно ознакомьтесь с документацией. В ядре 2.4.17 опция, реализующая алгоритм CSZ, работает некорректно. Активизация этой опции может привести к ненадежной работе маршрутизатора.
Использование iproute2
Пакет iproute2 входит в состав многих дистрибутивных пакетов Linux. Часто он поставляется под именем iproute. Вы можете скопировать данный пакет с FTP- узла, предназначенного для его поддержки, обратившись по адресу ftp://ftp.inr.ac.ru/ip-routing/. Пакет iproute2 содержит несколько программ, две из которых (ip и tc)рассматриваются здесь.
Использование ip
Программа ip предназначена для управления таблицами маршрутизации, в частности, правилами, определенными в них. Выполнение данной программы зависит от значений некоторых подопций опции IP:Advanced Router. Программа ip вызывается следующим образом:
Ip команда [list |add I del ] селектор действие
В утилите ip предусмотрено несколько команд. Наиболее важная из них — команда rule. Она позволяет добавлять (add), удалять (del) правила маршрутизации или отображать информацию о существующих правилах (list). Правила определяются с помощью селектора, который имеет структуру
[from адрес ] [to адрес ] [tos тип_сервиса ]
[dev имя_устройства ] [pref число ]
Элементы from и to определяют IP- адреса, а элемент tos задает тип сервиса (тип сервиса представляет собой число, например 4). Элемент dev определяет имя сетевого устройства (например, eth0), a pref задает номер предпочтения. Набор элементов сообщает Linux о том, как идентифицируются пакеты, к которым должно быть применено данное правило. Действие, указываемое в команде, задается в следующем формате:
[table идентификатор_таблицы ] [nat адрес ]
[prohibit I reject I unreachable ]
Идентификатор таблицы — это число, которое идентифицирует таблицу маршрутизации, элемент nat позволяет задать для пакета новый адрес источника, a prohibit, reject и unreachable — это коды, определяющие различные варианты отказа от пакета.
Пример реальной команды ip приведен ниже.
#ip rule add from 172.20.24.128 dev eth0 table 2
Правило, определяемое с помощью данной команды, указывает системе на то, что для обработки трафика с адреса 172.20.24.128 через eth0 должна использоваться таблица маршрутизации 2. Что значит таблица маршрутизации 2? В системе Linux для заполнения таблицы маршрутизации используется команда route. Расширенные средства маршрутизации позволяют работать с несколькими таблицами, создаваемыми посредством команды ip route. При обработке различных типов трафика можно быстро переключаться между разными таблицами. Приведенная выше команда сложнее обычной команды route, но она предоставляет возможности, которые не может обеспечить route. Вы можете использовать ip route так же, как и route, единственное отличие состоит в том, что вам необходимо задать номер таблицы. Например, для добавления маршрута в таблицу 2 можно использовать следующую команду:
ip route add 10.201.0.0/16 dev ethl table 2
Если не принимать во внимание имя программы ip и элемент table 2, то данная команда эквивалентна команде route. Она сообщает системе о том, что все данные, адресованные в сеть 10.201.0.0/16, должны передаваться через интерфейс ethl.