Определение информации интернет-маршрутизации для routed
/etc/gateways
ЗОСРВ «Нейтрино»
В файле /etc/gateways
определены шлюзы для сервиса routed. Обычно сервис routed опрашивает сеть и строит таблицы маршрутизации согласно информации, полученной от других хостов, непосредственно подключенных к сети. В этом файле могут быть определены шлюзы, не распознаваемые сервисом по опросам (они также называются удаленными шлюзами (distant gateway)).
При запуске сервис routed обращается к этому файлу в следующих целях:
- поиск удаленных шлюзов, которые невозможно обнаружить исключительно на основе информации, получаемой от сокета маршрутизации;
- проверка наличия у некоторых локальных шлюзов атрибута passive;
- поиск других параметров (см. раздел "Настройки других параметров").
Шлюзы должны иметь атрибут passive, active или external, определяющий способ работы с данным шлюзом:
- active
- Шлюз готов к обмену пакетами RIP (Routing Information Protocol; протокол маршрутной информации), используемыми в качестве сетевых интерфейсов.
- passive
- Шлюз не готов к обмену данными таблицы маршрутизации.
- external
- Должен рассматриваться как шлюз с атрибутом passive. При необходимости соответствующий маршрут будет установлен другим процессом маршрутизации, и сервису routed не следует устанавливать другие маршруты к данному пункту назначения.
Каждая запись помещается в отдельной строке. Пустые строки и строки, начинающиеся с символа решетки (#
), рассматриваются как комментарий. В записи могут быть указаны пользовательские параметры (см. раздел "Настройки других параметров"), либо определено, является ли маршрут маршрутом к сети или определенному хосту, в одном из следующих форматов:
net имя_сети[/маска] gateway имя_шлюза metric значение
host имя_хоста gateway имя_шлюза metric значение
- имя_шлюза
- Имя или адрес шлюза, которому необходимо пересылать ответы RIP.
- имя_хоста
- имя_сети
- Имя целевой сети или хоста. Может представлять собой символическое имя (такое же, как в файле /etc/hosts или /etc/networks), либо IP-адрес, заданный в обычном формате (с точками-разделителями "."), с помощью функции inet_network(), относящейся к функциям управления IP- адресами, – inet_*().
Если используется символическое имя, оно должно быть определено либо в файле /etc/networks, либо /etc/hosts, либо посредством сервиса named, который следует запустить до запуска routed. - маска
- Необязательный числовой параметр; диапазон значений – от 1 до 32. Определяет сетевую маску, связанную с параметром имя_сети.
- значение
- Счетчик переходов до хоста-получателя или сети-получателя.
- active
- Передавать ответы RIP удаленному активному шлюзу. Если шлюз активен, информация о нем добавляется во внутренние таблицы маршрутизации и данные маршрутизации, передаваемые по протоколу RIP. Если от шлюза не поступает ответ в течение определенного периода времени, то соответствующий маршрут удаляется из внутренних таблиц маршрутизации и объявление ответов RIP осуществляется через другие интерфейсы. Если удаленный шлюз возобновляет передачу ответов RIP, соответствующий маршрут восстанавливается.
Такие шлюзы целесообразно использовать в среде передачи данных, которая не поддерживает широковещательную или многоадресную передачу и является обычной средой с разделением доступа, такой как сети Ethernet и некоторые сети ATM. Для составления списка всех маршрутизаторов RIP, доступных в сети HIPPI или ATM, в файл /etc/gateways
можно добавить группу строк "хост". Следует отметить, что в таких ситуациях рекомендуется использовать RIPv2 во избежание генерации списков производных маршрутов к хостам. - passive
- Запретить обмен информацией RIP. Интерфейс исключается из объявления в обновляемой информации, передаваемой через другие интерфейсы; кроме того, в этом интерфейсе выключаются все функции протокола RIP и обнаружения маршрутизаторов.
Маршруты, проходящие через шлюзы passive, однократно устанавливаются в таблицах маршрутизации ядра при начальном запуске и не добавляются в передаваемые ответы RIP. - extern
- Информировать сервис routed о том, что данный маршрут будет установлен другим процессом маршрутизации и что routed не следует устанавливать альтернативные маршруты к данному пункту назначения. Информация о внешних шлюзах не добавляется во внутренние таблицы маршрутизации и не передается посредством RIP. Такие записи требуются только в том случае, если оба маршрутизатора могут распознавать маршруты к одному и тому же пункту назначения.
Если опцией -T активирован режим отладки, эти строки создают псевдоинтерфейсы. При установке параметров для удаленных или внешних интерфейсов, строки должны начинаться с if=alias( имя_хоста ) или if=remote( имя_хоста ) и т.д.
Настройки других параметров
Строки, в начале которых отсутствует net или host, должны содержать один из следующих параметров или несколько таких параметров, разделенных запятыми или пробелами:
- bcast_rdisc
- Определить необходимость широковещательной передачи (вместо многоадресной передачи) пакетов обнаружения маршрутизатора (Router Discovery).
- fake_default=метрика
- Эта опция аналогична следующей, но сеть и маска берутся из заданного интерфейса: -F сеть[/маска][=метрика]
- if=ifname
- Указать, что остальные параметры в строке применяются к интерфейсу с именем ifname.
- md5_passwd=XXX|идентификатор_ключа[start|stop]
- Задать пароль RIPv2 MD5. Это ключевое слово схоже с passwd (отличается тем, что требуется идентификатор_ключа).
- no_ag
- Деактивировать сбор (агрегирование) подсетей в ответах RIPv1 и RIPv2.
- no_rdisc
- Деактивировать интернет-протокол обнаружения маршрутизаторов (Internet Router Discovery Protocol).
- no_rdisc_adv
- Деактивировать передачу объявлений обнаружения маршрутизаторов.
- no_rip
- Деактивировать все функции обработки RIP в заданном интерфейсе. Если отсутствуют интерфейсы, которым разрешено обрабатывать пакеты RIP, сервис routed функционирует исключительно как сервис обнаружения маршрутизаторов.
Следует отметить, что выключение RIP без явного включения объявлений обнаружения маршрутизаторов (с помощью rdisc_adv или -s) приводит к тому, что routed действует как клиентский сервис обнаружения маршрутизаторов, а не как сервис объявлений. - no_rip_mcast
- Активировать широковещательную передачу пакетов RIPv2 (вместо многоадресной передачи).
- no_ripv1_in
- Игнорировать полученные ответы RIPv1.
- no_solicit
- Деактивировать передачу запросов обнаружения маршрутизаторов (Router Discovery Solicitation).
- no_super_ag
- Выключить объединение сетей в суперсети в ответах RIPv2.
- passwd=XXX[|идентификатор_ключа[start|stop]]
- Задать незашифрованный пароль RIPv2, который добавляется ко всем передаваемым ответам RIPv2 и проверяется во всех принимаемых ответах RIPv2. Пробелы, символы табуляции, запятые или символы
#
, |
и NULL
в пароле следует экранировать символом обратной косой черты (\). Общие управляющие последовательности \n, \r, \t, \b и \xxx имеют свой обычный смысл. Значение идентификатор_ключа должно быть уникальным (однако это значение игнорируется для незашифрованных паролей). Параметры start и stop, (при наличии) представляют собой временные метки в формате год/месяц/день@часы:минуты. Они указывают период действия пароля. В исходящих пакетах используется действующий пароль с самой отдаленной датой истечения срока действия. Если у всех паролей истек срок действия, продолжает использоваться пароль, срок действия которого истек последним. Если не начался срок действия ни одного пароля, в исходящих пакетах пароль отсутствует. Во входящих пакетах может содержаться любой действующий пароль, или пароль, который станет действующим в пределах 24 часов, или пароль, который был действующим в пределах 24 часов. В целях обеспечения конфиденциальности параметры passwd действуют только в файле /etc/gateways
и только при условии, что этот файл доступен для чтения только пользователю root. - pm_rdisc
- Аналогична fake_default. Если маршруты RIPv2 используются для многоадресной передачи (прослушивающие процессы RIPv1 не могут осуществлять прием по этим маршрутам), данная функция обеспечивает широковещательную передачу по маршруту RIPv1 по умолчанию для прослушивающих процессов RIPv1. Если не были внесены изменения с использованием fake_default, то маршрут по умолчанию является маршрутом широковещательной передачи с метрикой 14. Таким способом реализуется протокол обнаружения маршрутизаторов "для бедных" (poor man's router discovery).
- rdisc_adv
- Определить необходимость передачи объявлений обнаружения маршрутизаторов (Router Discovery Advertisement) даже по каналам связи "точка- точка", в которых по умолчанию осуществляется только прослушивание сообщений обнаружения маршрутизаторов (Router Discovery Message).
- rdisc_interval=N
- Установить номинальный интервал передачи объявлений обнаружения маршрутизаторов (N секунд) и срок существования этих объявлений (3 * N).
- rdisc_pref=N
- Задать для объявлений обнаружения маршрутизаторов параметр, являющийся целым числом N с необязательным знаком (значение по умолчанию –
0
). Клиенты предпочтительно выбирают маршруты по умолчанию с меньшими (или большими отрицательными) значениями. - redirect_ok
- Разрешить по протоколу RIP передавать сообщения ICMP о перенаправлении (ICMP Redirect message), когда система функционирует как маршрутизатор и пересылает пакеты. В противном случае, отменить сообщения ICMP о перенаправлении.
- ripv1_mask=имя_сети/маска1,маска2
- Указать, что сетевой маской для сети с подсетью имя_сети/маска1 должна быть сетевая маска маска2. Например, ripv1_mask=192.0.2.16/28,27 обозначает 192.0.2.16/28 как подсеть 192.0.2.0/27 вместо 192.0.2.0/24.
Вместо использования этого параметра более целесообразно включить RIPv2 с помощью опции ripv2_out. - ripv2
- Включить RIPv2. Эта опция эквивалентна no_ripv1_in и no_ripv1_out.
- ripv2_out
- Включить вывод RIPv2 и, когда возможно, осуществлять многоадресную передачу объявлений RIPv2.
- send_solicit
- Определить необходимость обязательной передачи запросов обнаружения маршрутизаторов даже по каналам связи "точка-точка", в которых по умолчанию осуществляется только прослушивание сообщений обнаружения маршрутизаторов.
- subnet=имя_сети[/маска][,метрика]
- Объявить маршрут к сети имя_сети с маской маска и указанной метрикой (значение по умолчанию – 1). Этот параметр должен быть указан как отдельный элемент в отдельной строке. Номер сети должен представлять собой полное 32-разрядное значение, например 192.0.2.0, а не 192.0.2.
Так же эту опцию можно использовать для заполнения "пустот" между выделенными бесклассовыми адресами, однако эта возможность является потенциально опасной и не должна использоваться без необходимости. - trust_gateway=имя_маршрутизатора[|сеть1/маска1|сеть2/маска2|...]
- Принимать пакеты RIP от данного маршрутизатора и других маршрутизаторов, указанных в других ключевых словах trust_gateway, и игнорировать пакеты от прочих маршрутизаторов. Если заданы сети, то будут игнорироваться маршруты от данного маршрутизатора к другим сетям.
Базовые подсистемы ЗОСРВ «Нейтрино»
routed, rtquery
Предыдущий раздел: Конфигурационные файлы