Операторы интерфейсов определяют параметры настройки сетевых интерфейсов. Список интерфейсов (interface_list) определяет интерфейсы, на которые распространяется действие параметров настройки. Интерфейсы в списке могут обозначаться именами (к примеру, 1е0), именами узлов, 1Р-адресами либо ключевым словом all.
Ключевое слово all обозначает все интерфейсы системы. Имя интерфейса может относиться к одному интерфейсу или группе интерфейсов. К примеру, имя интерфейса ethO относится к интерфейсу ethO, тогда как имя 1е относится ко всем установленным интерфейсам, имена которых начинаются с 1е (скажем, 1е0, lei и 1е2). Имя узла может использоваться в том случае, если ему соответствует единственный адрес.
Большинство системных администраторов предпочитают использовать IP-адреса для указания интерфейсов. В конце концов, IP-адреса изначально входят в состав TCP/IP, а описываемый файл выполняет настройку маршрутизации TCP/IP.
Кроме того, удаленным системам этот интерфейс известен по его IP-адресу, а не по имени. Наконец, DNS может предоставлять более одного адреса для имени узла, а ОС Unix в будущем сможет допускать использование нескольких адресов для одного интерфейса. IP-адрес - наиболее удачный выбор.
gated поддерживает интерфейсы четырех типов: кольцевой (loopback), широковещательный (broadcast), точка-точка (point-to-point), а также NBMA (nonbroadcast multiple access). Все эти интерфейсы описаны в тексте книги, за исключением NBMA. Последний является интерфейсом параллельного доступа, работающим в сетях, не предоставляющих широковещательного доступа. Примерами таких сетей являются Frame Relay и Х.25.
gated игнорирует любые интерфейсы в списке с некорректными локальными, удаленными или широковещательными адресами либо некорректной маской подсети, gated также игнорирует интерфейсы типа точка-точка, у которых совпадают локальный и удаленный адреса, gated предполагает, что интерфейсы, не отмеченные ядром как функционирующие (UP), не существуют. Синтаксис оператора interfaces:
interfaces { options [strictinterfaces] [scaninterval time] [ aliases-nexthop ( primary | lowestip | keepall ) ]; interface interface_list [preference preference] [down preference preference] [passive] [simplex] [reject] [blackhole] [ AS autonomoussystem ]; define address [broadcast address] | [pointopoint address] [netmask mask] [multicast] ; };
Операторы настройки, предшествующие списку интерфейсов, определяют глобальные параметры:
strictinterfaces - Генерирует критическую ошибку, если интерфейс, упомянутый в файле настройки, не найден gated при сканировании ядра в момент запуска и не упомянут в операторе define. (Описание define приводится ниже в данном разделе.) Стандартное поведение gated в такой ситуации: сгенерировать предупреждение и продолжить работу.
scaninterval time - Указывает частоту сканирования списка интерфейсов ядра на предмет изменений. По умолчанию в большинстве систем сканирование производится каждые 15 секунд и каждые 60 - в системах, передающих изменения в состоянии интерфейсов через сокеты маршрутизации (например, BSD 4.4). Обратите внимание, что gated также сканирует список интерфейсов по сигналу SIGUSR2.
aliases-nexthop ( primary | lowestip | keepall ) - Указывает адрес следующей транзитной точки, который gated устанавливает для маршрутов интерфейса, primary, значение по умолчанию, предписывает использовать адрес основного интерфейса в качестве шлюза для маршрута; lowestip - предписывает использовать наименьший IP-адрес в качестве адреса следующей транзитной точки; keepall сохраняет все маршруты интерфейсов в ядре.
Команда interface определяет список интерфейсов (interface_list) и все параметры, относящиеся к указанным интерфейсам. Для этого оператора доступны следующие параметры:
preference preference - Устанавливает приоритет для данного интерфейса. Значение preference - число из интервала от 0 до 255. gated отдает предпочтение маршрутам, пролегающим через интерфейсы с низкими значениями приоритета. По умолчанию значение приоритета для всех собственных сетевых интерфейсов системы равно 0.
down preference preference - Устанавливает значение приоритета, используемое в случаях, когда gated считает, что интерфейс работает неправильно. По умолчанию - 120.
passive - Запрещает gated снижать приоритет интерфейса, если он работает неправильно. gated предполагает, что интерфейс неработоспособен, если перестает получать информацию маршрутизации через этот интерфейс, gated выполняет такую проверку, только если интерфейс активно участвует в работе протокола маршрутизации.
simplex - Указывает, что gated не должен считать пакеты, сгенерированные системой, подтверждением того, что интерфейс работает нормально. Работоспособность интерфейса определяется только на основании пакетов, поступающих от удаленных систем.
reject | blackhole - Любое из этих ключевых слов определяет интерфейс как «черную дыру» и используется для установки в ядре заблокированных маршрутов. (Более подробная информация о заблокированных маршрутах содержится в разделе, посвященном управляющим операторам.) Возможность доступна только в системах BSD с установленным псевдоинтерфейсом reject/blackhole.
AS autonomoussystem - Указывает номер автономной системы, который должен использоваться gated при создании АС-вектора пути для данного маршрута. Вы, вероятно, помните, что некоторые протоколы, в частности BGP, связывают с маршрутом АС-путь.
Команда define address перечисляет интерфейсы, которые могут отсутствовать на момент сканирования gated списка интерфейсов ядра при запуске. Для указанного интерфейса (address) эта команда имеет приоритет более высокий, чем параметр strictinterfaces. Допустимые параметры команды define:
broadcast address - Определяет широковещательный адрес.
pointopoint address - Определяет локальный адрес для интерфейса точка-точка. (Описание таких интерфейсов содержится в главе 6.) В присутствии данного параметра адрес, указанный оператором define, интерпретируется в качестве адреса удаленного узла, а адрес, следующий за ключевым словом pointopoint, в качестве локального адреса. Не используйте одновременно broadcast и pointopoint в пределах одной команды define.
netmask mask - Определяет маску подсети.
multicast - Указывает, что данный интерфейс поддерживает многоадресную передачу.