28. Мультикаст маршрутизация¶
Мультикаст-маршрутизация (далее по тексту – многоадресная маршрутизация, мультикаст, multicast) — технология, позволяющая экономить полосу пропускания посредством снижения трафика за счёт одновременной доставки единого потока информации множеству получателей.
Мультикаст является неотъемлемой технологией для передачи данных в реальном времени и потоковой передачи мультимедиа (используется в различных приложениях, таких как IPTV, дистанционное обучение, видеоконференции и т.д.).
Существуют несколько схем передачи сетевого трафика:
одноадресная рассылка (unicast) — присутствует один отправитель и один получатель;
широковещательная рассылка (broadcast) — присутствует один отправитель, получателями являются все устройства в широковещательном сегменте сети;
произвольная рассылка (аnycast) — одноадресная рассылка ближайшему узлу;
многоадресная рассылка (multicast) — присутствует один отправитель, получателями являются некоторые устройства.
Подмножество принимающих устройств в мультикаст называется группой многоадресной рассылки, узлы, принадлежащие к группе многоадресной рассылки, – членами группы. Многоадресная рассылка ПАК “Фортикс” основана на данной групповой концепции. Группа многоадресной рассылки — это произвольное число получателей, присоединившихся к группе для получения потока данных от отправителя. Получатели (члены группы) могут располагаться в любой частной объединённой сети. Для получения данных от источника узлы присоединяются к соответствующей группе. Для отправки пакетов в группу не обязательно являться членом данной группы, при этом получать отправленные в группу пакеты могут только участники группы.
Для идентификации группы используется групповой адрес, по которому доставляются пакеты многоадресной рассылки. При одноадресной рассылке адрес получателя однозначно идентифицирует один хост. При многоадресной рассылке IP-адреса получателей не идентифицируют определённый хост. Для получения данных, отправленных на адрес многоадресной рассылки, хост присоединяется к группе, которую идентифицирует данный адрес: данные отправляются на адрес многоадресной рассылки и принимаются всеми хостами, присоединившимися к группе. Адрес группы многоадресной рассылки назначается на источнике, при этом назначаемые адреса должны соответствовать диапазону адресов многоадресной рассылки. Для многоадресной рассылки зарезервированы IP адреса от 224.0.0.0 до 239.255.255.255.
ПАК “Фортикс” поддерживает следующие механизмы мультикаст-маршрутизации:
статическая маршрутизация – используется для создания статических маршрутов в сети (позволяет определять правила, по которым маршрутизатор направляет пакеты в сеть; имеет ряд преимуществ, таких как простота настройки и отсутствие необходимости в обновлении маршрутов, при этом не может автоматически адаптироваться к изменениям в сети, что может привести к проблемам с производительностью);
протокол IGMP – используется для управления группами мультикаст (позволяет узлам сообщать маршрутизатору об их необходимости присоединения к некоторой группе мультикаст; обеспечивает взаимодействие между узлами и маршрутизаторами);
протокол PIM-SM (Protocol Independent Multicast) – используется для определения оптимального пути для мультикаст-трафика и координации обмена информацией между маршрутизаторами в сети (является одним из основных протоколов для мультикаст-маршрутизации).
28.1. Статическая мультикаст маршрутизация¶
Для добавления статического IPv4-мультикаст-маршрута применяется команда:
# set router multicast ipv4 from <from-interface-name> group <group-address> source <source-address> to <to-interface-name>
где
<from-interface-name>– имя существующего интерфейса для входящего мультикаст-трафика;<group-address>– IPv4-адрес группы;<source-address>– IPv4-адрес источника;<to-interface-name>– имя существующего интерфейса для исходящего мультикаст-трафика.
Для добавления статического IPv6-мультикаст-маршрута:
# set router multicast ipv6 from <from-interface-name> group <group-address> source <source-address> to <to-interface-name>
где
<from-interface-name>– имя существующего интерфейса для входящего мультикаст-трафика;<group-address>– IPv6-адрес группы;<source-address>– IPv6-адрес источника;<to-interface-name>– имя существующего интерфейса для исходящего мультикаст-трафика.
28.2. Настройка IGMP¶
ПАК “Фортикс” допускает работу в режиме проксирования мультикаст-данных, пересылая данные с входящего интерфейса на один или несколько исходящих. Для использования данного режима настраиваются входящий и исходящий интерфейсы. При наличии входящего и хотя бы одного исходящего интерфейса работа маршрутизатора активируется.
Настройка интерфейсов IGMP-маршрутизатора осуществляется на следующем уровне конфигурации:
[edit router igmp]
Для определения входящего (upstream) интерфейса применяется команда:
[edit router igmp]
# set input interface <interface-name>
где <interface-name> – имя существующего интерфейса.
Для определения исходящего (downstream) интерфейса применяется команда:
[edit router igmp]
# set output interface <interface-name>
где <interface-name> – имя существюущего интерфейса.
Доступно определение нескольких исходящих интерфейсов.
Для управления объёмом информации, заносимой в журнал, применяется команда:
[edit router igmp]
# set log low|high
где
low– параметр, при указании которого информация в журнал заносится менее подробно;high– параметр, при указании которого информация в журнал заносится более подробно.
Для использования функции быстрого выхода из группы применяется команда:
[edit router igmp]
# set quickleave
При нахождении источника мультикаст-данных в сети, отличной от сети входящего интерфейса, для корректной работы указывается адрес сети источника для входящего интерфейса с помощью команды:
[edit router igmp]
# set input interface <interface-name> subnet <subnet-address>
где
<interface-name>– имя существующего входящего (upstream) интерфейса;<subnet-address>– IPv4-адрес в форматеA.B.C.D/mask.
Для определения минимального значение TTL на указанном интерфейсе применяется команда:
[edit router igmp]
# set input|output interface <interface-name> threshold <threshold-value>
где
input|output– тип интерфейса;<interface-name>– имя существующего интерфейса;<threshold-value>– число от 1 до 255.
Пакеты с более низким значением TTL отбрасываются.
28.3. Настройка PIM¶
Настройка PIM-маршрутизатора осуществляется на следующем уровне конфигурации:
# edit router pim ipv4
Включение PIM-маршрутизатора осуществляется автоматически при наличии необходимых для его работы настроек, отдельной команды для включения маршрутизатора не предусмотрено.
Административное расстояние одноадресной маршрутизации и метрика маршрутов настраиваются статически на каждом PIM-маршрутизаторе, так как автоматически данные параметры маршрутизаторами не определяются.
Для определения значения административного расстояния применяется команда:
[edit router pim ipv4]
# set default route distance <distance-value>
где <distance-value> – число от 1 до 255, по умолчанию – 101.
Для определения значения метрики применяется команда:
[edit router pim ipv4]
# set default route metric <metric-value>
где <metric-value> – число от 1 до 1024, по умолчанию – 1024.
Для обеспечения работы PIM-маршрутизатора необходимо указать интерфейсы, на которых он запускается, с помощью команды:
[edit router pim ipv4]
# set interface <interface-name> [priority <priority-value>] [scoped <scoped-address>] [threshold <threshold-value>] [subnet <subnet-address>]
где
<interface-name>– имя существующего интерфейса;<priority-value>– значение приоритета DR от 1 до 4294967294;<threshold-value>– минимальное значение TTL на интерфейсе от 1 до 255, по умолчанию – 1;<subnet-address>– IPv4-адрес сети источника мультикаст-данных, который указывается при нахождении источника мультикаст-данных вне сети входящего интерфейса, в форматеA.B.C.D/mask;<scoped-address>– IPv4-адрес группы, исключённой из мультикаст-передачи, в форматеA.B.C.D/mask.
Приоритет DR (Designated router – выделенный маршрутизатор) отправляется во всех сообщениях PIM Hello и используется вместо IP-адреса при всех выборах DR, если его объявляют все маршрутизаторы PIM в локальной сети. Чем меньше значение приоритета, тем маршрутизатор приоритетнее как DR.
Особенностью работы PIM-маршрутизатора является распространение многоадресной рассылки из точек встречи (RP/Rendezvous Points). Каждая RP обрабатывает распространение одной или нескольких групп многоадресной рассылки. Возможна настройка маршрутизатора для объявления его в качестве кандидата на RP (CRP) или запроса статического RP-адреса для одной или нескольких групп многоадресной рассылки.
Для настройки статического адреса RP применяется команда:
[edit router pim ipv4]
# set rp static address <pr-address> group <group-address>
где
<pr-address>– IPv4-адрес в форматеA.B.C.D;<group-address>– IPv4-адрес мультикаст-группы в форматеA.B.C.D/mask.
Для настройки СRP применяется команда:
[edit router pim ipv4]
# set rp candidate address <pr-address> group <group-address> [priority <priority-value>] [interval <interval-value>]
где
<pr-address>– IPv4-адрес RP в форматеA.B.C.D/mask;<group-address>– IPv4-адрес мультикаст-группы в форматеA.B.C.D/mask;<priority-value>– значение приоритета кандидата от 0 до 255, по умолчанию – 0;<interval-value>– интервал объявления CRP в секундах от 10 до 16383, по умолчанию – 60.
Приоритет кандидата демонстрирует, насколько важен данный CRP по сравнению с другими. Чем ниже значение приоритета, тем важнее CRP.
Для отслеживания всех RP предусмотрена функция Bootstrap Router (BSR). Выбранный BSR периодически объявляет набор RP в сообщениях Bootstrap. Для использования данной функции настраивается кандидат BSR (CBSR) с помощью команды:
[edit router pim ipv4]
# set bsr candidate [address <candidate-address>] [priority <priority>]
где
<priority-value>– значение приоритета кандидата от 0 до 255, по умолчанию – 0;<candidate-address>– IPv4-адрес кандидата в форматеA.B.C.D/mask.
Конфигурация маршрутизатора-кандидата (CBSR) схожа с конфигурацией CRP. Если адрес не указан, маршрутизатор использует самый высокий активный IP-адрес. Если приоритет не указан, значение приоритета маршрутизатора считается равным 0.
В домене маршрутизации возможно наличие нескольких путей от назначенного маршрутизатора (DR) отправителя многоадресной рассылки до получателя. При присоединении получателей к группам многоадресной рассылки все данные принимаются через общее дерево (RPT) от каждой точки встречи (RP). Так как в большинстве случаев маршрут через общее дерево не оптимален, при превышении объёма настраиваемого порога на маршрутизаторе последнего перехода или на самом RP, осуществляется попытка переключения на дерево кратчайшего пути (SPT) от источника многоадресной рассылки к получателю.
Для настройки значения порога скорости трафика применяется команда:
[edit router pim ipv4]
# set spt-threshold rate <rate-value>
где <rate-value> – число битрейтов от 0 до 4294967295.
Для настройки значения порога количества пакетов применяется команда:
[edit router pim ipv4]
# set spt-threshold packets <packets-value>
где <packets-value> – число от 0 до 4294967295.
Для определения интервала осуществления сопоставления значений с пороговыми применяется команда:
[edit router pim ipv4]
# set spt-threshold interval <interval-value>
где <interval-value> – число секунд от 5 до 1000000.
28.4. Диагностика¶
Для просмотра таблицы мультикаст маршрутизации применяется команда:
> show router multicast ipv4|ipv6 [groups|vifs]
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;groups– параметр, при указании которого отображаются присоединенные группы;vifs– паоаметр, при указании которого отображаются виртуальные интерфейсы.
Для просмотра информации о мультикаст-группах применяется команда:
> show router multicast ipv4 groups
Для просмотра информации о виртуальных интерфейсах (vif) применяется команда:
> show router multicast ipv4 vifs
Для просмотра информации о работе PIM-маршрутизатора применяется команда:
> show router pim ipv4 [compat|crp|igmp|interfaces|mrt|rp|status]
где
compat– параметр, при указании которого отображается статус PIM в режиме compat;crp– параметр, при указании которого отображается набор CRP;igmp– параметр, при указании которого отображается статус интерфейса IGMP и членство в группах;interfaces– параметр, при указании которого отображается таблица интерфейсов PIM;mrt– параметр, при указании которого отображается таблица многоадресной маршрутизации;rp– параметр, при указании которого отображается установленная RP;status– параметр, при указании которого отображается статус PIM.