Logo

EcoRouter

EcoNAT

EcoQOE

EcoBypass

English

  • Release Notes
  • Мультикаст EcoRouter Documentation / Мультикаст

    Без мультикастового вещания для успешной передачи данных различным пользователям трафик в сети должен дублироваться на каждом узловом участке. Такое дублирование приводит к неэффективному использованию ресурсов сети. Multicast-приложения являются гораздо более эффективными, так как передают только один экземпляр трафика. Его дублирование обычно происходит только в L3-устройствах, расположенных ближе к потребителям. Для решения задач доставки/приема мультикастовых данных EcoRouterOS поддерживает работу следующих протоколов:

    • IGMPv1/v2/v3,
    • PIM-SM,
    • PIM-SSM. 

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

    • IGMP SSM Mapping для возможности доставки/приема мультикастовых потоков с определенного сервера при IGMPv2;
    • IGMP proxy для создания IGMP домена между L2/L3 устройствами и работы маршрутизатора в качестве клиента мультикастовой группы;
    • PIM-DM поддержка более раннего протокола мультикастовой маршрутизации;
    • PIM-SDM смешанный режим работы. 

    Описание по настройке этих расширений можно найти в соответствующих главах.

    IGMP

    IGMP (Internet Group Management Protocol) — протокол управления групповой передачей данных в IP-сетях. IGMP используется клиентским компьютером и локальным маршрутизатором, осуществляющим групповую передачу. В EcoRouter поддерживаются 1-3 версии протокола.

    Список команд, использующихся для настройки протокола IGMP в EcoRouter, представлен в таблице ниже.

    Команда

    Режим

    Описание

    ip igmp access-group <номер списка доступа>
    (config-if)#

    Фильтрация доступа к определенным мультикаст-группам с помощью списков доступа

    ip igmp immediate-leave group-list <номер списка фильтров>
    (config-if)#

    Команда сокращения времени отписки последнего клиента от группы/групп, заданных в списке фильтрации

    ip igmp join-group <ip-адрес>
    (config-if)#

    Команда добавления интерфейса маршрутизатора в мультикаст-группу

    ip igmp last-member-query-count <2-7> 
    (config-if)#

    Настройка количества IGMP query сообщений, отправляемых в ответ на сообщение типа leave. По умолчанию 2

    ip igmp last-member-query-interval <1000-25500>
    (config-if)#

    Настройка интервала отправки IGMP query сообщений. По умолчанию 1000 мс

    ip igmp limit <1-2097152>
    (config)#

    Настройка ограничений количества мультикаст-маршрутов

    ip igmp mroute-proxy <имя интерфейса>
    (config-if)#

    Включение проксирования для мультикаст маршрутов на другой интерфейс

    ip igmp proxy unsolicited-report-interval <1000-25500>
    (config-if)#

    Задание значения задержки между двумя IGMP join сообщениями. По умолчанию 1000 мс

    ip igmp proxy-service
    (config-if)#

    Включение режима IGMP proxy

    ip igmp querier-timeout <60-300>
    (config-if)#

    Задание времени до перевыборов querier маршрутизатора в сегменте в секундах

    ip igmp query-interval <1-18000>
    (config-if)#

    Задание частоты отправки General Query. По умолчанию 125 с

    ip igmp query-max-response-time <1-240>
    (config-if)#

    Задание максимального значения времени ответа на IGMP query в секундах. По умолчанию 10 с

    ip igmp robustness-variable <2-7>
    (config-if)#

    Задание числа для тонкой настройки IGMP сообщений. По умолчанию 2

    ip igmp startup-query-count <2-10>
    (config-if)#

    Задание количества query сообщений. По умолчанию 2

    ip igmp startup-query-interval <1-18000>
    (config-if)#

    Настройка интервала отправки IGMP query сообщений. По умолчанию 31 с

    ip igmp static-group <ip-адрес>
    (config-if)#

    Назначение интерфейса устройства на прослушивания определенной мультикаст-группы

    ip igmp version <1-3>
    (config-if)#

    Выставление версии IGMP

    ip igmp ssm-map {enable | static <номер списка доступа>}
    (config)#

    Включение SSM-маппирования. Задание статического SSM с помощью списка доступа

    ip igmp tos-check
    (config)#

    Проверка значения поля TOS. Включена по умолчанию

    ip igmp vrf <имя виртуального маршрутизатора> {limit <1-2097152> | ssm-map enable | ssm-map static <номер списка доступа>}
    (config)#

    Команды настройки для выполнения в виртуальном маршрутизаторе

    ip igmp ra-option 
    (config-if)#

    Включает проверку опции во входящих IGMP-пакетах

    Настройка IGMP в сегменте с настроенным PIM сводится к включению IGMP на интерфейсе маршрутизатора, ближайшего к пользователю. Включение осуществляется с помощью команды на настроенном нисходящем интерфейсе ip igmp version <1-3>.

             

    Шаг 1. Включение глобальной поддержки мультикаста.

    ecorouter(config)#ip multicast-routing

    Шаг 2. Настройка интерфейсов устройства.

    ecorouter(config)#interface e10
    ecorouter(config-if)#ip address 10.10.10.1/24
    ecorouter(config)#port te0
    ecorouter(config-port)#service-instance 10
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e10

    Шаг 3. Включение IGMP на нисходящем интерфейсе.

    ecorouter(config-if)#ip igmp version 2 
      

    При включении PIM на интерфейсе IGMPv3 включается автоматически.

    Шаг 4. Настройка таймеров протокола: частоты рассылки запросов устройством и времени ожидания ответов.

           ecorouter(config-if)#ip igmp query-interval 100 
          ecorouter(config-if)#
        
    ip igmp query-max-response-time 20

    Шаг 5. Для корректной работы со всем спектром ОС необходимо отключать проверку значения поля ToS в сообщениях IGMP report.

    ecorouter(config)#no ip igmp tos-check 

    IGMP SSM Mapping

    Для поддержки SSM необходима функциональность IGMPv3, однако не все оборудование в сети поддерживает все версии этого протокола. EcoRouterOS позволяет выполнить маршрутизацию мультикастового трафика от специфичного источника до клиентов, которые поддерживают только вторую версию IGMP протокола. Ниже приведен пример настройки:

    Шаг 1. Настройка портов, интерфейсов и сервисных интерфейсов.

    ecorouter(config)#interface e1
    ecorouter(config-if)#ip address 10.12.0.2/16
    ecorouter(config)#interface e2
    ecorouter(config-if)#ip address 10.23.0.2/16
    ecorouter(config)#port ge1
    ecorouter(config-port)#service-instance ge1/e1
    ecorouter(config-service-instance)#connect ip interface e1
    ecorouter(config)#port ge2
    ecorouter(config-port)#service-instance ge2/e2
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e2
    ecorouter(config)#port ge2
    ecorouter(config-port)#service-instance ge2/e2
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e2
     

    Шаг 2. Задание policy-filter-list для определенной группы.

    ecorouter(config)#policy-filter-list 2 permit 235.7.7.7
     

    Шаг 3. Включение SSM-mapping для определенной группы.

    ecorouter(config)#ip igmp ssm-map enable
    ecorouter(config)#ip igmp ssm-map static 2 1.1.1.1
    ecorouter(config)#ip pim ssm default
     

    Шаг 4. Настройка PIM-SM.

    ecorouter(config)#ip pim rp-address 10.12.0.2
    ecorouter(config)#interface e1
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config-if)#interface e2
    ecorouter(config-if)#ip pim sparse-mode 
     

    На интерфейсе fa0/0 другого маршрутизатора настроен IP адрес 10.12.0.1/16. Теперь если клиент запросит группу 235.7.7.7 одновременно с отправкой мультикастового трафика с сервера и с маршрутизатора на эту группу, то на маршрутизаторе можно наблюдать следующую картину:

    Ecorouter#show ip mroute 
    IP Multicast Routing Table
    Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed   
    B - BIDIR
    Timers: Uptime/Stat Expiry Interface State: Interface (TTL)
    
    (1.1.1.1, 235.7.7.7), uptime 00:04:24, stat expires 00:03:29
    Owner PIM, Flags: TF
      Incoming interface: e1
      Outgoing interface list:
        e2 (1)
    
    (10.12.0.1, 235.7.7.7), uptime 00:04:24, stat expires 00:00:09
    Owner PIM, Flags: TF
     
    Incoming interface: e1
      Outgoing interface list:
     

    Как видно, интерфейсов в списке outgoing для сервера 10.12.0.1 нет. При включении на интерфейсе протокола PIM командой ip pim sparse-mode, IGMPv3 включается по умолчанию. Можно было просто включить IGMPv3 отдельно от PIM командой ip igmp version 3. Полезная команда для просмотра информации по статическому маппингу show ip igmp ssm-map <ip-адрес>:

     

    ecorouter#show ip igmp ssm-map 235.7.7.7
    Group address: 235.7.7.7
    Database     : Static
    Source list  : 1.1.1.1 

    Proxy-IGMP

    Использование этой технологии позволит избежать зависимости от используемого протокола мультикастовой маршрутизации и уменьшить размер служебного трафика в сети. Маршрутизатор выступает в роли клиента и передает информацию в виде сообщений IGMP Report в сторону PIM-домена. PIM-соседи в таком случае не нужны. Устройство хранит информацию о запрошенных группах, полученную через нисходящие интерфейсы, в базе данных. Сам прокси-сервис работает на восходящих интерфейсах, передавая запросы от клиентов. Ниже приведен пример топологии и конфигурирования IGMP Proxy сервиса в EcoRouterOS.

    Настройка

    Шаг 1. Задание имени устройства и включение мультикастовой маршрутизации.

    (config)#hostname ECO-2
    (config)#ip multicast-routing

    Шаг 2. Настройка портов, интерфейсов и сервисных интерфейсов.

    (config)#interface e1
    (config-if)#ip address 10.23.0.2/16
    (config-if)#ip igmp version 2
    (config)#interface e2
    (config-if)#ip address 10.24.0.2/16
    (config-if)#ip igmp version 2
    (config)#port ge1
    (config-port)#service-instance ge1/e1
    (config-service-instance)#encapsulation untagged
    (config-service-instance)#connect ip interface e1
    (config)#port ge2
    (config-port)#service-instance ge2/e2
    (config-service-instance)#encapsulation untagged
    (config-service-instance)#connect ip interface e2

    Шаг 3. Включение IGMP Proxy.

    (config)#interface e2
    (config-if)#ip igmp proxy-service
    (config)#interface e1
    (config-if)#ip igmp mrouter-proxy e2

    Прокси-сервис работает с любой версией IGMP. Для проверки статуса сервиса и просмотра запрошенных групп используются команды show ip igmp proxy и show ip igmp proxy groups. Если сервис запущен и работает, то статус группы должен быть «Active».

    PIM-SM/SSM

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

    Шаг 1. Включение мультикастовой маршрутизации командой конфигурационного режима ip multicast-routing

    Шаг 2. Включение протокола мультикастовой маршрутизации на нужных интерфейсах контекстной командой ip pim sparse-mode. При введении этой команды на интерфейсе автоматически включается протокол IGMPv3. 

    Шаг 3. Статическое задание точки встречи деревьев от источника и клиентов (Rendezvous Point, далее – RP) командой ip pim rp-address <IP> [<POLICY-FILTER-LIST>] [override]. Здесь с помощью номера <POLICY-FILTER-LIST> можно привязать RP к определенной мультикастовой группе, а параметр override повышает приоритет статической записи о RP по сравнению с полученной динамическим путем. Динамический путь описан ниже. 

    Шаг 4. Добавление возможности переключения на более короткий маршрут до источника при помощи команды ip pim spt-treshold [group-list <POLICY-FILTER-LIST>], где номер policy-filter-list указывает конкретные мультикастные группы.

    Этих шагов достаточно для успешной доставки мультикаст-трафика от сервера до клиентов, однако при выходе из строя RP все клиенты перестанут получать запрашиваемые данные.

    Поэтому предпочтение отдается протоколу bootstrap, который динамически информирует участников мультикастового домена о RP. 

    Таким образом, на 4 шаге для информирования PIM-соседей о RP необходимо сконфигурировать кандидата на эту роль командой конфигурационного режима ip pim rp-candidate <название интерфейса> [priority <0-255>] [group-list <POLICY-FILTER-LIST>] [interval <1-16383>]. Параметры команды описаны в таблице ниже.

    ПараметрОписание
    <название интерфейса>
    Интерфейс, назначаемый кандидатом. Интерфейс должен быть предварительно создан в системе
    priority
    Приоритет,  при задании нескольких кандидатов. Чем меньше значение данного параметра, тем выше приоритет кандидата. Допустимые значения от 0 до 255. Значение по умолчанию 192
    group-list <POLICY-FILTER-LIST>
    Группы, которым рассылается реклама о кандидате
    interval
    Интервал рассылки сообщений в секундах. Допустимые значения от 1 до 16383

    Далее необходимо сконфигурировать рекламных агентов, которые будут рассылать информацию о RP, так называемых BSR, командой конфигурационного режима ip pim bsr-candidate <название интерфейса> [<0-32>][<0-255>]. Параметры команды описаны в таблице ниже.

    ПараметрОписание
    <название интерфейса>
    Интерфейс, назначаемый рекламным агентом (BSR). Интерфейс должен быть предварительно создан в системе
    <0-32>
    Длина хэш-маски для расчета хэш-значения RP. Допустимые значения от 0 до 32. Значение по умолчанию 10
    <0-255>
    Приоритет BSR,  при наличии нескольких агентов в сети. Чем больше значение данного параметра, тем выше приоритет кандидата. Допустимые значения от 0 до 255. Значение по умолчанию 64

     

    Ниже приведен пример схемы и конфигурирования маршрутизаторов. При мультикаст-вещании со стороны сервера Multicast-1 маршрут протекания трафика будет ECO-3 – ECO-2 – ECO-4 – PC1, а после того, как ближайший к клиенту маршрутизатор получит информацию о сервере, произойдет SPT switchover – маршрут поменяется на ECO-3 – ECO-4 – PC1.

     

     

     

    Шаг 1. Задание имени устройства и включение мультикастовой маршрутизации.
    ecorouter(config)#hostname ECO-2
    ecorouter(config)#ip multicast-routing

    Шаг 2. Настройка портов, интерфейсов и сервисных интерфейсов.
    ecorouter(config)#interface e3
    ecorouter(config-if)#ip address 10.23.0.3/16
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config)#interface e4
    ecorouter(config-if)#ip address 10.24.0.2/16
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config)#port ge3
    ecorouter(config-port)#service-instance ge3/e3
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e3
    ecorouter(config)#port ge4
    ecorouter(config-port)#service-instance ge4/e4
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e4

    Шаг 3. Включение маршрутизации.
    ecorouter(config)#router isis
    ecorouter(config-router)#net 49.0001.0000.0000.0003.00
    ecorouter(config-router)#exit
    ecorouter(config)#interface e3
    ecorouter(config-int)#ip router isis
    ecorouter(config-int)#interface e4
    ecorouter(config-int)#ip router isis
    ecorouter(config-int)#exit

    Шаг 4. Задание информации о RP и включение возможности SPT-switchover.
    ecorouter(config)#ip pim bsr-candidate e3
    ecorouter(config)#ip pim rp-candidate e3 priority 20
    ecorouter(config)#ip pim spt-treshold

    Конфигурация оставшихся маршрутизаторов будет аналогичной.   
    ecorouter(config)#hostname ECO-3
    ecorouter(config)#ip multicast-routing
    ecorouter(config)#interface e1
    ecorouter(config-if)#ip address 10.13.0.3/16
    ecorouter(config-if)#ip router isis
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config)#interface e2
    ecorouter(config-if)#ip address 10.23.0.3/16
    ecorouter(config-if)#ip router isis
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config)#interface e4
    ecorouter(config-if)#ip address 10.34.0.3/16
    ecorouter(config-if)#ip router isis
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config)#port ge1
    ecorouter(config-port)#service-instance ge1/e1
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e1
    ecorouter(config)#port ge2
    ecorouter(config-port)#service-instance ge2/e2
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e2
    ecorouter(config)#port ge4
    ecorouter(config-port)#service-instance ge4/e4
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e4
    ecorouter(config)#router isis
    ecorouter(config-router)#net 49.0001.0000.0000.0003.00
     
    ecorouter(config)#hostname ECO-4
    ecorouter(config)#ip multicast-routing
    ecorouter(config)#ip pim spt-treshold
    ecorouter(config)#ip pim bsr-candidate e3
    ecorouter(config)#ip pim rp-candidate e3 priority 40
    ecorouter(config)#interface e1
    ecorouter(config-if)#ip address 10.14.0.4/16
    ecorouter(config-if)#ip router isis
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config-if)#ip igmp version 2
    ecorouter(config)#interface e2
    ecorouter(config-if)#ip address 10.24.0.4/16
    ecorouter(config-if)#ip router isis
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config)#interface e3
    ecorouter(config-if)#ip address 10.34.0.4/16
    ecorouter(config-if)#ip router isis
    ecorouter(config-if)#ip pim sparse-mode
    ecorouter(config)#port ge2
    ecorouter(config-port)#service-instance ge2/e2
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e2
    ecorouter(config)#port ge4
    ecorouter(config-port)#service-instance ge4/e4
    ecorouter(config-service-instance)#encapsulation untagged
    ecorouter(config-service-instance)#connect ip interface e4
    ecorouter(config)#router isis
    ecorouter(config-router)#net 49.0001.0000.0000.0003.00

    Подробнее о IGMP можно прочитать в соответствующем разделе.

    Для включения Source-Specific-Multicast требуется ввести дополнительную команду ip pim ssm {default | range} <номер policy-filter-list>, где default означает применить ко всем группам, а range и номер policy-filter-list позволяют выделить конкретные группы, для которых будет использоваться SSM. Подробнее о настройке SSM-mapping и policy-filter-list читайте в соответствующих разделах.

    Дополнительные команды конфигурирования

    Команда

    Режим

    Описание

    ip pim accept-register <policy-filter-list>
    (conf)#

    Указывает RP принимать Register сообщения от определенных источников

    ip pim cisco-register-checksum
    (conf)#

    Опция для расчета checksum в Register сообщениях. Для совместимости с более старыми версиями Cisco IOS

    ip pim ignore-rp-set-priority
    (conf)#

    Используется для игнорирования приоритета RP, чтобы полагаться только на хеш-алгоритм

    ip pim jp-timer <1-65535>
    (conf)#

    Тайминг для отправки сообщений Join и Prune

    ip pim register-rate-limit <1-65535>
    (conf)#

    Управление количеством отправляемых Register сообщений

    ip pim register-rp-reachability
    (conf)#

    Включение проверки RP доступности на маршрутизаторе (по умолчанию в конфигурации)

    ip pim register-source <адрес>
    (conf)#

    Задание адреса в Register сообщениях

    ip pim register-suppression <1-65535>
    (conf)#

    Изменение RP-keepalive-timer, если команда ip pim rp-register-kat не задана

    ip pim rp-register-kat <1-65535>
    (conf)#

    Изменение таймеров для мониторинга Register сообщений

    ip pim dr-priority
    (conf-int)#

    Приоритет маршрутизатора для выбора DR

    ip pim bsr-border
    (conf-int)#

    Пометить интерфейс как пограничный, для отмены передачи/приема bootstrap

    ip pim exclude-genid
    (conf-int)#

    Исключение опции generated ID

    ip pim hello-holdtime <1-65535>
    (conf-int)#

    Установка таймера holdtime для сообщений hello

    ip pim hello-interval <1-18724>
    (conf-int)#

    Установка таймера interval для сообщений hello

    ip pim neighbor-filter <policy-filter-list>
    (conf-int)#

    Установка соседств с конкретными маршрутизаторами

    ip pim propagation-delay <1000-5000>
    (conf-int)#

    Установка задержки распространения сообщений

    ip pim unicast-bsm
    (conf-int)#

    Включение unicast bootstrap сообщений. Для совместимости с более старыми версиями Cisco IOS

    ip pim sparse-mode passive
    (conf-int)#

    Включение пассивного режима

    ip multicast ttl-threshold <1-255>
    (conf-int)#

    Включение TTL-scope мультикастового домена

    ip mroute <адрес подсети > <rpf сосед>
    (conf)#
    Статическая запись о подсети, в которой находится источник мультикаста

    Команды просмотра

    Команда

    Описание

    show ip mroute

    Таблица мультикастовой маршрутизации

    show ip mvif

    Информация о созданных виртуальных интерфейсах, которые поддерживают мультикаст

    show ip rpf <адрес источника>

    Отображение RPF информации о источнике

    show ip pim bsr-router

    Информация о BSR маршрутизаторах в домене

    show ip pim interface

    Информация об интерфейсах, на которых включена мультикастовая маршрутизация

    show ip pim local-members

    Локальная информация о запрошенных группах

    show ip pim mroute [detail]

    Детальная информация по мультикастовой маршрутизации

    show ip pim neighbor

    Информация о соседских отношениях

    show ip pim nexthop

    Информация о RP, источниках многоадресной рассылки, интерфейсах через которые получены данные

    show ip pim rp mapping

    Информация о RP в домене

    show ip pim rp-hash <адрес группы>

    Информация о RP для конкретной группы

    show ip mroute count
    Вывод статистической информации

    Команды сброса данных

    clear ip mroute statistics <*/адрес группы>
    clear ip mroute <*/адрес группы>
    clear ip pim sparse-mode bsr rp-set *

    PIM-DM and mixed Sparse-Dense mode

    EcoRouterOS поддерживает более ранний протокол мультикастовой маршрутизации PIM-DM. Механизм его работы подразумевает излишнее заполнение домена мультикастовым трафиком, поэтому сетевым инженерам необходимо тщательно продумать пути протекания пакетов по сети. Возможно, потребуется отделить домены юникастовой маршрутизации от мультикастовой. В данном случае следует воспользоваться статической записью о маршруте до источника. Для включения функционала на маршрутизаторе достаточно одной команды в режиме конфигурирования интерфейсов - ip pim dense-mod

    В EcoRouterOS существует расширение, которое позволяет задать смешанный Sparse-Dense режим на интерфейсе. В этом режиме трафик для группы, идущий по Dense-режиму, будет обработан по правилам PIM-DM, a трафик для группы, идущий по Sparse-режиму, будет обработан по правилам PIM-SM. Для того чтобы включить смешанный режим работы, необходимо в режиме конфигурирования интерфейсов ввести команду ip pim sparse-dense-mode

    Для определенных групп можно настроить обработку трафика исключительно PIM-DM логикой. Для этого используется команда ip pim dense-group <адрес группы>.