Менеджер многоадресной IP-маршрутизации
mrouted [-c конфигурационный_файл] [-d [уровень_отладки]] [-p]
/etc/mrouted.conf
).ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Утилита mrouted является реализацией протокола дистанционной векторной групповой многоадресной маршрутизации (Distance- Vector Multicast Routing Protocol; DVMRP), более ранняя версия которого была определена в RFC 1075. Утилита обеспечивает предоставление сведений о топологии по протоколу дистанционно-векторной маршрутизации (аналогично протоколу RIP, описанному в RFC 1058) посредством реализации алгоритма группового перенаправления дейтаграмм, называемого многоадресным перенаправлением по обратному маршруту (Reverse Path Multicasting).
Утилита mrouted выполняет переадресацию групповой (многоадресной) дейтаграммы по кратчайшему (обратному) дереву путей, корень которого лежит в подсети, являющейся источником дейтаграммы. Дерево групповой доставки можно представить себе как дерево широковещательной доставки, от которого отсечены подсети, не содержащие членов группы назначения. Следовательно, дейтаграммы не перенаправляются по ветвям, не содержащим адресатов группы многоадресной передачи. Для ограничения множества направленных дейтаграмм используется предельный срок существования дейтаграммы (Time-To-Live; TTL).
Для обеспечения возможности групповой передачи между подсетями, разделенными маршрутизаторами (одноадресной передачи), которые не поддерживают групповую передачу по IP, утилита mrouted поддерживает "туннели", которые являются виртуальными каналами "точка-точка" между парами сервисов mrouted, расположенными на любых узлах объединённой сети. Для передачи через туннели используется инкапсуляция многоадресных пакетов, которые с точки зрения промежуточных маршрутизаторов и подсетей выглядят как обычные однонаправленные дейтаграммы. Инкапсуляция добавляется на входе в туннель и снимается на выходе из туннеля. По умолчанию инкапсуляция пакетов выполняется по протоколу IP-туннелирования (протокол IP версии 4). Более ранние версии mrouted осуществляют туннелирование с помощью IP-маршрутизации источника, что создает чрезмерную нагрузку на маршрутизаторы некоторых типов.
В этой версии туннелирование с помощью IP-маршрутизации по источнику не поддерживается. |
Механизм туннелирования позволяет mrouted формировать виртуальные объединенные сети, используемые исключительно в целях групповой передачи и независимые от топологии физических сетей; такая виртуальная объединенная сеть может охватывать несколько автономных систем. Данная возможность предназначена исключительно для экспериментальной поддержки групповой передачи в объединённых сетях в течение периода широкого внедрения поддержки групповой передачи обычными (одноадресными) маршрутизаторами. Утилита mrouted подвержена широко известным проблемам с масштабированием, свойственным любому протоколу дистанционной векторной маршрутизации; иерархическая многоадресная маршрутизация на данный момент не поддерживается (однако поддержка планируется в будущем).
Утилита mrouted обрабатывает только групповую переадресацию; использование программного обеспечения одноадресной маршрутизации на одном компьютере с mrouted не допускается. В случае использования туннелей для выполнения группового перенаправления mrouted не требуется доступ к более чем одной физической подсети.
Вызов
Если опция -d не указана, или указан уровень отладки 0, то mrouted отсоединяется от вызывающего терминала. В противном случае она остается присоединенной к вызывающему терминалу и воспринимает поступающие с него сигналы. Если опция -d указана без аргумента, по умолчанию используется уровень отладки 2. Независимо от уровня отладки mrouted всегда направляет предупреждения и сообщения об ошибках менеджеру системного журнала. Результаты установки ненулевых уровней отладки:
При запуске утилита mrouted записывает свой идентификатор процесса pid в файл /var/run/mrouted.pid
.
Конфигурирование mrouted
Утилита mrouted автоматически настраивается на выполнение перенаправления на всех интерфейсах, поддерживающих групповую передачу, т.е. на интерфейсах, для которых установлен флаг IFF_MULTICAST
(исключение составляет "интерфейс" закольцовывания). Также выполняется обнаружение других процессов mrouted, непосредственно доступных через эти интерфейсы. Для переопределения конфигурации по умолчанию или добавления туннельных каналов для связи с другими процессами mrouted можно использовать конфигурационные команды, размещаемые в файле /etc/mrouted.conf
(или в другом файле, указанном опцией -c). Существует пять типов команд конфигурации:
mrouted.conf
обоих маршрутизаторов. Формат файла свободный, пробельные символы (включая символы новой строки) не несут значения.
Опции конфигурационной команды
Опции boundary и altnet можно указывать требуемое количество раз.
Утилита mrouted не инициирует выполнение, если ей назначено менее двух включенных виртуальных интерфейсов (vif), где vif является либо физическим интерфейсом с возможностью групповой передачи, либо туннелем (tunnel). Если все виртуальные интерфейсы (vif) являются туннелями, в журнал записывается предупреждение; такую конфигурацию mrouted рекомендуется заменить более прямыми туннелями (исключить посредничество).
Сигналы
Утилита mrouted реагирует на следующие сигналы:
SIGINT
. /var/tmp/mrouted.dump
. /var/tmp/mrouted.cache
. Для удобства отправки сигналов утилита mrouted при запуске записывает свой идентификатор процесса (pid) в файл /var/run/mrouted.pid
.
Ниже приведен пример конфигурации гипотетического маршрутизатора групповой передачи в крупном учебном заведении.
# Пример файла mrouted.conf # # Присвоение имен границам для упрощения работы. name LOCAL 239.255.0.0/16 name EE 239.254.0.0/16 # le1 – это шлюз сети compsci, локальные группы # не должны перенаправляться в эту сеть. phyint le1 boundary EE # le2 – это интерфейс с сетью classroom, с ним связаны # четыре подсети различной длины. Обратите внимание, что можно использовать # как IP-адрес, так и имя интерфейса. phyint 172.16.12.38 boundary EE altnet 172.16.15.0/26 altnet 172.16.15.128/26 altnet 172.16.48.0/24 # atm0 – интерфейс с ATM, в которой не поддерживается # многоадресная передача. phyint atm0 disable # Это внутренний туннель в другую подсеть EE # Ограничение пропускной способности туннеля, установленное по умолчанию, # снимается, поскольку туннель работает по Ethernet tunnel 192.168.5.4 192.168.55.101 metric 1 threshold 1 rate_limit 0 # Это туннель во внешний мир. # Поосторожнее с границами! tunnel 192.168.5.4 10.11.12.13 metric 1 threshold 32 boundary LOCAL boundary EE
Таблицы маршрутизации
Таблицы маршрутизации выглядят следующим образом:
Virtual Interface Table Vif Local-Address Metric Thresh Flags 0 36.2.0.8 subnet: 36.2 1 1 querier groups: 224.0.2.1 224.0.0.4 pkts in: 3456 pkts out: 2322323 1 36.11.0.1 subnet: 36.11 1 1 querier groups: 224.0.2.1 224.0.1.0 224.0.0.4 pkts in: 345 pkts out: 3456 2 36.2.0.8 tunnel: 36.8.0.77 3 1 peers: 36.8.0.77 (2.2) boundaries: 239.0.1 : 239.1.2 pkts in: 34545433 pkts out: 234342 3 36.2.0.8 tunnel: 36.6.8.23 3 16 Multicast Routing Table (1136 entries) Origin-Subnet From-Gateway Metric Tmr In-Vif Out-Vifs 36.2 1 45 0 1* 2 3* 36.8 36.8.0.77 4 15 2 0* 1* 3* 36.11 1 20 1 0* 2 3* . . .
В этом примере указаны четыре виртуальных интерфейса (Vif) для соединения с двумя подсетями и двумя туннелями. Туннель vif 3 не используется (отсутствует адрес удаленной стороны). Для подсетей виртуальных интерфейсов vif 0 и vif 1 имеется ряд групп; туннели никогда не обладают группами. Данный экземпляр mrouted отвечает за передачу периодических запросов членства в группе на подсети виртуальных интерфейсов vif 0 и vif 1 в соответствии с флагами "querier". В списке границ указываются ограниченные адреса для данного интерфейса. Для каждого интерфейса также выводится суммарное количество входящих и исходящих пакетов.
С каждой подсетью, из которой могут поступать групповые дейтаграммы, связаны адрес маршрутизатора предыдущего перехода (если только подсеть не подключена напрямую); метрика пути обратно к источнику; время, прошедшее с момента получения последнего обновления для этой подсети; виртуальный интерфейс (vif) входящего направления для пакетов групповой передачи из этого источника; наконец, список vif исходящего направления. Символ звездочки (*) означает, что vif исходящего направления соединен с конечным узлом дерева широковещательной передачи с корнем в источнике, и групповая дейтаграмма из этого источника передается на данный vif исходящего направления, только если этот конечный узел дерева содержит члены группы назначения.
Утилита mrouted также ведет копию таблицы кэша перенаправления ядра. Создание и удаление записей выполняется утилитой mrouted.
Таблицы кэша выглядят следующим образом:
Multicast Routing Cache Table (147 entries) Origin Mcast-group CTmr Age Ptmr IVif Forwvifs 13.2.116/22 224.2.127.255 3m 2m - 0 1 >13.2.116.19 >13.2.116.196 138.96.48/21 224.2.127.255 5m 2m - 0 1 >138.96.48.108 128.9.160/20 224.2.127.255 3m 2m - 0 1 >128.9.160.45 198.106.194/24 224.2.135.190 9m 28s 9m 0P >198.106.194.22
Каждая запись характеризуется номером исходной подсети и группой назначения групповой передачи.
SIGUSR1
. SIGUSR2
. Базовые подсистемы ЗОСРВ «Нейтрино»
Основано на RFC 1075.
Предыдущий раздел: Сервисы