Чтение онлайн

ЖАНРЫ

Сетевые средства Linux

Смит Родерик В.

Шрифт:

Протоколы маршрутизации используют следующие алгоритмы.

• Дистанционно-векторный алгоритм. Этот алгоритм отслеживает число маршрутизаторов, находящихся между текущим маршрутизатором и узлом назначения. При передаче пакета в некоторую сеть выбирается такой путь, на котором число маршрутизаторов будет минимальным. Данный алгоритм используется при работе протокола RIP (Routing Information Protocol — протокол маршрутной информации).

• Алгоритм маршрутизации по состоянию канала. Данный алгоритм связывает информацию о стоимости передачи пакета с каждым соединением. Маршрутизатор, использующий такой алгоритм, выбирает путь к целевой сети, для которого значение стоимости минимально. Стоимость не обязательно должна быть равна числу маршрутизаторов, при ее определении могут также

учитываться различия в быстродействии сетевых соединений. Данный алгоритм используется при работе протокола OSPF (Open Shortest Path First — первоочередное открытие кратчайших маршрутов).

Использование

routed

В системе UNIX традиционно используется протокол RIP. В Linux он реализуется демоном

routed
, входящим в состав одноименного пакета. Маршрутизаторы, поддерживающие RIP, обмениваются адресами сетей (например, 172.22.0.0) и связанными с ними метриками (в качестве метрики принимается число маршрутизаторов между маршрутизатором, который должен отправить пакет, и целевой сетью). Значения метрики могут лежать в пределах от 0 до 15. Если на пути к целевой сети лежит больше 15 маршрутизаторов, длина маршрута считается бесконечной и информация об этом маршруте удаляется из таблицы. При работе протокола RIP используется дистанционно-векторный алгоритм, а значение метрики оценивается очень грубо. Протокол RIP в основном применяется в небольших и средних сетях; для управления передачей данных по магистралям Internet он не используется.

Когда маршрутизатор получает информацию от другого маршрутизатора, он либо добавляет запись о маршруте в таблицу, либо заменяет существующую запись с более высоким значением метрики, либо удаляет маршрут, если полученное значение метрики, увеличенное на единицу, превышает 15.

При использовании программы

routed
в системе Linux обычно не возникает проблем. Для ее запуска применяются средства, рассмотренные в главе 4. Работой сервера управляет конфигурационный файл
/etc/gateways
, в котором содержится список начальных маршрутов. Пример записи в файле
/etc/gateways
приведен ниже.

net 0.0.0.0 gateway 172.22.7.1 metric 1 active

В данном примере определяется маршрут по умолчанию (

net 0.0.0.0
), для которого задан шлюз 172.22.7.1. Метрика маршрута равна 1. Ключевое слово
active
указывает на то, что этот маршрут может быть обновлен. Если вы хотите, чтобы маршрут сохранялся в таблице в неизменном виде, надо заменить ключевое слово
active
на
passive
. Для работы
routed
можно использовать файл
/etc/gateways
, поставляемый в составе пакета. В процессе работы демон
routed
может, передавая широковещательные запросы, находить другие маршрутизаторы, использующие протокол RIP. После обнаружения маршрутизатора с ним начинается обмен информацией о маршрутах.

Использование GateD

Несмотря на то что протокол RIP традиционно используется в системе UNIX, область его применения ограничена. Одно из ограничений связано с тем, что пакет не может быть передан по маршруту, насчитывающему больше маршрутизаторов; это не позволяет использовать данный протокол в больших сетях. Еще одна проблема связана с медленной сходимостью алгоритма. При изменении структуры сети для достижения стабильного состояния таблицы маршрутизации может потребоваться несколько минут. И наконец, RIP не поддерживает маски подсетей, поэтому он может использоваться только для сетей, соответствующих классам А, В и С. Если, например, сеть класса С разбита на несколько подсетей, маршрутизатор, поддерживающий RIP, передает адрес подсети как адрес всей сети класса С. В результате возникают проблемы при обмене данными между различными подсетями.

В версии 2 протокола RIP (RIPv2) была добавлена поддержка маски подсети. Для хранения данных о маске использовалось поле, которое в исходном варианте RIP было зарезервировано. Протокол RIPv2 реализован в программе GateD (

http://www.gated.net
). Работой GateD управляет
конфигурационный файл
/etc/gated.conf
. Для изменения конфигурации GateD используется утилита
gdc
, которая поставляется в составе того же пакета. Настройка GateD не требует много усилий. В процессе выполнения программа взаимодействует с другими маршрутизаторами, поддерживающими протокол RIP или RIPv2, и модифицирует содержимое таблицы маршрутизации. Подобно другим демонам, GateD запускается с помощью сценария SysV либо локального сценария запуска.

Помимо RIP и RIPv2, GateD также поддерживает протокол маршрутизации OSPF. Другие средства маршрутизации, например Zebra, также поддерживают несколько протоколов.

Использование Zebra

Наряду с рассмотренными выше программами маршрутизации в Linux инструмент Zebra, который представляет собой пакет, состоящий из нескольких доменов и поддерживающий следующие протоколы.

• RIP. Zebra поддерживает протоколы RIP и RIPv2, а также версию RIP для IPv6, которая называется RIPng. Для взаимодействия по протоколам RIP и используется сервер

ripd
, а поддержка RIPng реализована в программе
ripngd
.

• OSPF. Для работы по протоколу OSPF используется программа

ospfd
, а вариант OSPF для IPv6 реализован в программе
ospf6d
. Подобно RIP, OSPF применяется для маршрутизации пакетов в сетевых структурах, насчитывающих несколько локальных сетей.

• BGP (Border Gateway Protocol — пограничный шлюзовый протокол) широко используется в Internet. Для поддержки данного протокола предназначен сервер

bgpd
.

Общее управление работой пакета осуществляет программа

zebra
. Серверы, входящие в состав пакета, используют ее для обновления таблицы маршрутизации.
zebra
выполняется как сервер; обратиться к ней можно с помощью клиентской программы
telnet
.

Каждый из демонов маршрутизации выполняется независимо от других. Например, если вам нужно обеспечить поддержку RIP или RIPv2, вы можете запустить только программы

zebra
и
ripd
. Работой каждого сервера управляет отдельный конфигурационный файл, расположенный в каталоге
/etc
или
/etc/zebra
. Имя файла совпадает с именем соответствующего демона. Например, содержимое файла
/etc/zebra/ospfd.conf
определяет конфигурацию сервера
ospfd
. Все конфигурационные файлы строятся по единому принципу. Символы
!
и
#
являются признаками комментариев. Опции, используемые для определения конфигурации, перечислены ниже.

• 

hostname
. В качестве значения данной опции задается имя узла, выполняющего функции маршрутизатора.

• 

password
. Программа
zebra
использует пароль для управления доступом других систем и серверов. Пароль необходимо задать в каждом конфигурационном файле. Этот пароль предоставляет ограниченный доступ к серверу.

• 

enable password
. Данная опция позволяет задать специальный административный пароль, используемый программой
zebra
. Этот пароль надо задать в, том случае, если вам необходимо изменить конфигурацию сервера.

• 

router протокол
. Конфигурационные файлы серверов требуют указания протокола. Так, в файле
ripd.conf
указывается
router rip
, в файле
ospfd.conf
router ospf
, а в файле
bgpd.conf
router bgp номер_автономной_системы
. (Номера автономных систем назначаются подобно IP-адресам. Если вы хотите применить BGP только в своей локальной сети, вам надо использовать номер автономной системы в диапазоне 64512-65535.)

Поделиться с друзьями: