Перейти к содержанию

Маршрутизация многоадресных передач#

Многоадресные передачи#

Понятие многоадресной передачи#

При одноадресной передаче сетевой трафик передается в единственную точку назначения. Если сетевой трафик необходимо передать в группу точек назначения, то используется многоадресная передача. Многоадресный трафик может быть принят только членами группы точек назначения, прослушивающими многоадресный трафик, т.е. группой многоадресной передачи. Все остальные узлы игнорируют многоадресный трафик.

Центральным понятием многоадресной передачи по IP является членство в группе. Дейтаграммы многоадресной передачи по IP отправляются группе, и только члены этой группы получают дейтаграммы. Группа определяется одним групповым IP-адресом класса D в диапазоне 224.0.0.0–239.255.255.255 (224.0.0.0/4 в формате CIDR). Адреса класса D из указанного диапазона называются групповыми. Cетевой узел-отправитель отсылает многоадресные дейтаграммы на групповой адрес. Сетевые узлы-получатели, на которых настроена многоадресная передача, при установлении подключения к сети сообщают локальному маршрутизатору о необходимости присоединиться к группе.

В интрасети, где каждый узел поддерживает многоадресную передачу, любой сетевой узел может посылать дейтаграммы многоадресной передачи на любой групповой адрес и любой узел может получать многоадресные дейтаграммы от любого группового адреса независимо от его расположения. Для установки членства сетевых узлов в группе используется протокол IGMP. Для переадресации данных многоадресной передачи маршрутизаторы используют протоколы многоадресной маршрутизации, в частности протокол DVMRP.

На следующем рисунке показана интрасеть с поддержкой многоадресной передачи.

Схема-стенда

Схема стенда

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

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

Преимущества многоадресной передачи IP#

Многоадресная передача обеспечивает эффективную поддержку высокоскоростных сетевых приложений для передачи данных с одного адреса на несколько адресов.

  • Многоадресная передача может значительно сократить объем сетевого трафика, так как происходит отправка единичной копии данных.
  • Узлы можно настроить для многоадресной передачи без обновления оборудования.
  • Поскольку современные модели маршрутизаторов поддерживают многоадресную переадресацию и протоколы многоадресной маршрутизации без дополнительной модернизации, использование многоадресной передачи в сети — это практичное и экономичное решение.

Многоадресная передача используется во многих типах приложений для передачи данных с одного адреса на несколько адресов, например следующих.

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

Протокол DVMRP и его настройка#

Маршрутизация многоадресных передач IP в Numa Edge осуществляется службой mrouted с помощью протокола DVMRP (Distance Vector Multicast Routing Protocol), который служит для транспортировки пакетов многоадресных передач IP между сетями. В протоколе DVMRP сочетаются многие возможности протокола RIP и алгоритма урезанного вещания по обратному пути (Truncated Reverse Path Broadcasting, TRPB). Протокол DVMRP является "протоколом внутреннего шлюза"; он предназначен для применения внутри одной автономной системы, но не между различными автономными системами.

Смысл алгоритма TRPB можно кратко сформулировать следующим образом. Во-первых, в качестве маршрута от узла к точке назначения выбирается кратчайший изо всех маршрутов, по которым дейтаграммы из точки назначения пришли в данный узел (алгоритм вещания по обратному пути, или RPB). Во-вторых, вводится понятие группы многоадресной передачи, после чего из дерева передачи для данной группы исключаются поддеревья, не содержащие узлов из этой группы ("обрезка" дерева и буква T в аббревиатуре).

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

Пакет DVMRP состоит из небольшого заголовка IGMP фиксированной длины и потока тегированных данных. Элементы потока называются командами.

Для отправки дейтаграмм через шлюзы, не поддерживающие многоадресные передачи, используются туннели. Туннель строится на основе обычных дейтаграмм многоадресных передач в слабой инкапсуляции, в которой используется специальный двухэлементный слабый маршрут IP от отправителя (добавление полного заголовка IP не выполняется). Для передачи информации узлу-отправителю используется сообщение об ошибке ICMP, в данном протоколе служащее для передачи информации не об ошибках.

Алгоритм TRPB передает дейтаграммы многоадресных передач путем вычисления дерева кратчайших (обратных) путей от (физической) сети отправителя до всех возможных получателей дейтаграммы. Каждый маршрутизатор с поддержкой многоадресных передач должен определить свое место в дереве относительно конкретного отправителя и затем определить, какие из его виртуальных интерфейсов находятся в дереве кратчайших путей. Этот процесс исключения виртуальных интерфейсов, не находящихся в дереве кратчайших путей, называется "отсечением", а исключаемая виртуальная сеть называется "листом".

Листья определяются примерно следующим образом: если какой-нибудь соседний маршрутизатор считает данную виртуальную сеть частью пути до данного получателя, то виртуальная сеть не является листом. В противном случае она является листом. Это функция, определяемая голосованием.

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

Маршрутные сообщения DVMRP могут использоваться для трех основных целей: для периодической передачи всей маршрутной информации, для корректной передачи маршрутной информации о недавно изменившихся маршрутах и просто для отправки всех маршрутов в ответ на запрос.

Туннели DVMRP#

Протокол DVMRP позволяет настроить маршрутизацию многоадресных передач в туннельном режиме. Это может быть полезно в тех случаях, когда между двумя маршрутизаторами A и B, поддерживающими маршрутизацию многоадресных передач, находится ещё несколько узлов, относительно которых неизвестно, поддерживают ли все они маршрутизацию многоадресных передач. В этом случае можно создать туннель IPIP между A и B и пропустить через него многоадресный трафик, который будет обертываться в обычные одноадресные дейтаграммы IP на узле A и развертываться на узле B (и наоборот). Таким образом, узлы между A и B будут работать с одноадресной дейтаграммой, которую они гарантированно корректно обработают. Кроме того, настройка туннеля может быть полезна в случае, когда подсети X и Y связаны туннелем VPN, через который описанным выше образом может проходить многоадресный трафик.

Настройка протокола DVMRP#

Дерево настройки маршрутизации многоадресных передач находится под узлом protocols dvmrp. Чтобы включить маршрутизацию многоадресных передач, необходимо ввести следующие команды в режиме настройки

1
2
3
admin@edge# set protocols dvmrp
[edit]
admin@edge# commit
В данном случае система Numa Edge запустит службу mrouted, которая будет работать в настройке по умолчанию. Это значит, что маршрутизация многоадресных передач будет осуществляться через все доступные сетевые интерфейсы, поддерживающие многоадресные передачи. Служба mrouted будет отсылать на них запросы DVMRP для поиска в сети других маршрутизаторов с поддержкой многоадресных передач.

Примечание

Для работы DVMRP multicast маршрутизации требуется минимум 2 работающих multicast интерфейса.

Настройка многоадресных передач на сетевых интерфейсах#

Помимо конфигурации по умолчанию, в системе можно установить параметры маршрутизации многоадресных передач на каждый интерфейс, поддерживающий многоадресную передачу.

Выключение маршрутизации многоадресных передач на интерфейсе#

Можно явно запретить маршрутизацию многоадресных передач на конкретном интерфейсе. Это может быть полезно в тех случаях, когда машина с установленной маршрутизацией многоадресных передач подключена через некоторый интерфейс к Интернету, а администратору нужно, чтобы трафик многоадресных передач не перенаправлялся и не маршрутизировался на этот интерфейс.

Предположим, что это интерфейс eth0. Система позволяет запретить маршрутизацию многоадресных передач на этот интерфейс следующим образом:

[edit]
admin@edge# set protocols dvmrp interface eth0 disable

Настройка метрики и порога для интерфейса#

Для каждого сетевого интерфейса, поддерживающего многоадресную маршрутизацию, можно определить ещё два параметра многоадресной маршрутизации — метрику (metric) и порог (threshold).

Метрика (metric) интерфейса — это своеобразный "вес" или "приоритет" дейтаграмм, отправляемых с интерфейса. Метрика непосредственно влияет на многоадресную маршрутизацию. Чем она ниже, тем выше приоритет дейтаграмм на данном интерфейсе и тем более вероятно, что при маршрутизации будет выбран удалённый маршрут, видимый через интерфейс с наименьшей метрикой. Значение метрики по умолчанию равно 1.

Внимание

Система не обрабатывает маршруты с суммарной метрикой больше 31. Общая рекомендация заключается в том, чтобы метрика была настолько мала, насколько это возможно.

Пример настройки

[edit]
admin@edge# set protocols dvmrp interface eth3 metric 2
Порог (threshold) — это минимальное значение времени жизни (TTL) дейтаграммы многоадресной передачи. Порог может быть использован для ограничения "области видимости" принимаемых дейтаграмм. Так, каждый многоадресный маршрутизатор сравнивает значение TTL входящей дейтаграммы с установленным порогом. Если TTL дейтаграммы меньше порога, маршрутизатор не будет пытаться отправить её дальше. В противном случае он уменьшит TTL дейтаграммы на единицу и отправит её на следующую точку маршрута. Значение порога по умолчанию равно 1.

Пример настройки:

[edit]
admin@edge# set protocols dvmrp interface eth3 threshold 10

Настройка маршрутизации многоадресных передач через туннель#

Система позволяет настроить от 1 до 10 туннелей для многоадресной передачи (mtun0 .. mtun9 соответственно). Каждый туннель для многоадресной передачи принимает 2 основных параметра:

  • Локальный IP-адрес: IP-адрес на данной машине, с которого будет идти трафик многоадресной передачи, оборачиваемый в одноадресную.
  • Удалённый IP-адрес или имя удалённого узла: точка маршрута, на которой многоадресная передача, обернутая в одноадресную, будет разворачиваться обратно в многоадресную.

Например:

1
2
3
4
[edit]
admin@edge# set protocols dvmrp tunnel mtun0 local 192.168.1.77
[edit]
admin@edge# set protocols dvmrp tunnel mtun0 remote 192.168.2.99
Или
1
2
3
4
[edit]
admin@edge# set protocols dvmrp tunnel mtun0 local 10.0.0.1
[edit]
admin@edge# set protocols dvmrp tunnel mtun0 remote myhost.mydomain

Настройка административно ограниченных областей#

Административно ограниченные области, описанные в RFC 2365, дают возможность использовать подсети с многоадресной передачей в диапазоне адресов от 239.0.0.0 до 239.255.255.255 для административных (внутренних) целей, например, для ограничения областей видимости.

Предположим, что адреса 239.0.0.1 и 239.1.1.1 используются в локальной сети с многоадресной маршрутизацией для административных (внутренних) целей. Администратору требуется, чтобы дейтаграммы, принадлежащие группам 239.0.0.1 и 239.1.1.1, не маршрутизировались и не перенаправлялись многоадресным маршрутизатором за пределы локальной сети. Чтобы добиться этого, можно поставить ограничения на туннели и интерфейсы.

Прежде всего системе нужно указать, какие именно подсети считаются административно ограниченными:

1
2
3
4
[edit]
admin@edge# set protocols dvmrp alias address-group-one netmask 239.0.0.0/16
[edit]
admin@edge# set protocols dvmrp alias address-group-two netmask 239.1.0.0/16
Впоследствии псевдонимы address-group-one и address-group-two можно использовать для ограничения областей видимости:
1
2
3
4
5
6
[edit]
admin@edge# set protocols dvmrp interface eth1 bound address-group-one
[edit]
admin@edge# set protocols dvmrp interface eth1 bound address-group-two
[edit]
admin@edge# set protocols dvmrp tunnel mtun0 bound address-group-two
Это значит, что сеть address-group-one видима только через интерфейс eth1, а сеть address-group-two видима через интерфейс eth1 и туннель mtun0. Дейтаграммы с адресов address-group-one и address-group-two не будут перенаправляться на другие интерфейсы.