Message Types
We have talked about how IGMP snooping sends traffic to interested parties, but how does it filter these parties out? Multicast routers can use IGMP for queries as well; in which case it can send out certain types of messages as queries, depending on the purpose.
General queries are used to find out if any host is listening to any multicast group. Group-specific queries check is any hosts are listening to a specific multicast group, and group-and-source-specific queries check if any hosts are listening to group traffic from a specific multicast source.
Hosts that are listening to multicast groups are the interested parties. Such hosts can send out membership or leave reports as messages (indicating that they want to join or leave an existing multicast group). Group-specific and group-and-source-specific queries are usually sent out in response to leave reports so that new listening hosts can be identified to replace the ones leaving.
Мультикаст на канальном уровне
Итак, позади долгая трудовая неделя с недосыпами, переработками, тестами — вы успешно внедрили мультикаст и удовлетворили клиентов, директора и отдел продаж.
Пятница — не самый плохой день, чтобы обозреть творение и позволить себе приятный отдых.
Но ваш послеобеденный сон вдруг потревожил звонок техподдержки, потом ещё один и ещё — ничего не работает, всё сломалось. Проверяете — идут потери, разрывы. Всё сходится на одном сегменте из нескольких коммутаторов.
Расчехлили SSH, проверили CPU, проверили утилизацию интерфейсов и волосы дыбом — загрузка почти под 100% на всех интерфейсах одного VLAN’а. Петля! Но откуда ей взяться, если никаких работ не проводилось? Минут 10 проверки и вы заметили, что на восходящем интерфейсе к ядру у вас много входящего трафика, а на всех нисходящих к клиентам — исходящего. Для петли это тоже характерно, но как-то подозрительно: внедрили мультикаст, никаких работ по переключению не делали и скачок только в одном направлении.
Проверили список мультикастовых групп на маршрутизаторе — а там подписка на все возможные каналы и все на один порт — естественно, тот, который ведёт в этот сегмент.
Дотошное расследование показало, что компьютер клиента заражён и рассылает IGMP Query на все мультикастовые адреса подряд.
Потери пакетов начались, потому что коммутаторам пришлось пропускать через себя огромный объём трафика. Это вызвало переполнение буферов интерфейсов.
Главный вопрос — почему трафик одного клиента начал копироваться во все порты?
Причина этого кроется в природе мультикастовых MAC-адресов. Дело в том, пространство мультикастовых IP-адресов специальным образом отображается в пространство мультикастовых MAC-адресов. И загвоздка в том, что они никогда не будут использоваться в качестве MAC-адреса источника, а следовательно, не будут изучены коммутатором и занесены в таблицу MAC-адресов. А как поступает коммутатор с кадрами, адрес назначения которых не изучен? Он их рассылает во все порты. Что и произошло.
Это действие по умолчанию.
Multicast Flooding
Соображения по конфигурациям IGMP Snooping
Основные функции IGMP Snooping позволяют устройству создавать и поддерживать таблицу многоадресной пересылки уровня 2 и осуществлять многоадресную передачу данных по требованию на канальном уровне. Перед настройкой функций IGMP Snooping вы должны рассмотреть следующие элементы.
IGMP Snooping Querier
Для включения IGMP Snooping, многоадресный маршрутизатор должен быть развернут в топологии сети для генерации запросов IGMP. Без запроса отчеты о членстве в IGMP и таблицы членства в группах не могут регулярно извлекаться и обновляться, что приводит к нестабильной работе IGMP Snooping. Когда IGMP Snooping Querier настроен, он отправляет запросы IGMP через определенный интервал времени, чтобы генерировать сообщения отчетов IGMP от сетевого коммутатора с многоадресным членством. И IGMP Snooping прослушивает эти отчеты IGMP для установления соответствующей переадресации.
IGMP Snooping Proxy
IGMP Snooping proxy — расширенная функция. При включении коммутатора IGMP Snooping начинает работать так же, как и IGMP Snooping, а затем, когда коммутатор получает запрос IGMP от маршрутизатора, он незамедлительно отвечает в соответствии со своим состоянием. Если этот параметр отключен, запросы IGMP в VLAN и отчеты с узлов затопляются. Таким образом, прокси-сервер IGMP Snooping предотвращает внезапный всплеск трафика отчетов IGMP в ответ на запросы и уменьшает количество запросов IGMP, необходимых для обработки. Однако задержка вводится при распространении состояния IGMP через VLAN.
Версия IGMP Snooping
IGMP имеет три версии протокола: V1, V2 и V3. Соответственно, вы можете выбрать версию IGMP Snooping на устройстве уровня 2 для обработки сообщений IGMP в разных версиях. Обычно IGMPv1 идентифицирует запрашиваемый маршрутизатор на основе протокола многоадресной маршрутизации. IGMPv2 добавляет возможность групповых запросов, позволяя запрашивающему отправлять сообщения хостам в многоадресной группе. IGMPv3 приносит больше улучшений для поддержки фильтрации определенных источников
Basic IGMP snooping configuration
The first example consists only of a single IGMP snooping bridge, a single multicast source device, and a couple of multicast client devices. See a network scheme below.
First, create a bridge interface with enabled IGMP snooping. In this example, there is no active IGMP querier (no multicast router or proxy), so a local IGMP querier must be enabled on the same bridge. This can be done with a setting. If there is no active IGMP querier in the LAN, the unregistered IP multicast will be flooded and multicast entries will always timeout from the multicast database.
/interface bridge add igmp-snooping=yes multicast-querier=yes name=bridge1
Then add necessary interfaces as bridge ports.
/interface bridge port add bridge=bridge1 interface=ether2 add bridge=bridge1 interface=ether3 add bridge=bridge1 interface=ether4 add bridge=bridge1 interface=ether5
1. Назначение
IGMP snooping разработан для предотвращения широковещательной (broadcast) ретрансляции multicast трафика компьютерам-потребителям, которые явно не заявили о своей заинтересованности в нём. Это позволяет коммутаторам исключать такой трафик из потоков, направляемых через порты, к которым не подключено его потребителей, тем самым существенно снижая нагрузку на сеть. Однако при этом нагрузка на сам коммутатор не снижается, а повышается, поскольку такая фильтрация требует затрат памяти, NPU и CPU, в то время как простая ретрансляция по всем портам — операция дешёвая. По умолчанию, без функции IGMP snooping, коммутатор ретранслирует multicast трафик по всем своим портам, принадлежащим к тому же широковещательному домену или VLAN, что не только бесполезно, но и способно вызвать проблемы на некоторых оконечных сетевых устройствах, вынужденных обрабатывать неожиданный для них поток данных. Использование такого поведения по умолчанию злоумышленником может привести к успешной DoS-атаке на всю сеть или некоторые устройства в ней. IGMP snooping способен существенно улучшить работу сети, в которой активно используются приложения, основанные на multicast вещании.
По существу IGMP snooping есть оптимизация реалий канального уровня с учётом фактических потребностей сетевого уровня и не является функциональностью самого IGMP.
Что такое IGMP и зачем он нужен
Когда данные передаются по сети — через глобальную сеть, от провайдера или между устройствами — они следуют четким правилам: протоколам. Каждый протокол определяет, как распознать нули и единицы, как собрать их в пакеты данных, как проверить их «правильность» при получении и как собрать их в изображение на экране. Всего существует семь слоев, от электрических сигналов до браузера.
Протокол управления группами Интернета, первые буквы которого образуют аббревиатуру, является одним из таких протоколов на канальном уровне. Вы бы не знали о его существовании, если бы у вас не было этих «проблем». Как следует из названия, это протокол для управления широковещательными группами. Это означает, что когда сигнал IPTV поступает на ваш маршрутизатор от провайдера, он начинает транслировать его на все ваши устройства. Удобно смотреть одну и ту же программу на смартфоне и телевизоре. Но любое другое устройство — например, компьютер — не «спрашивает», нужен ли ему сигнал. Поэтому он получает его в любом случае, что снижает скорость интернета и расходует интернет-ресурсы.
Snooping — это функция, которая помогает маршрутизатору выяснить, какие устройства нуждаются в потоке данных от онлайн-игр, телевидения или специального сервиса. Проще говоря, он оптимизирует сетевой трафик и делает его более безопасным. Это должно работать автоматически, но иногда приходится настраивать вручную. В этом и заключается суть IGMP в маршрутизаторе.
Виды IGMP snooping
Поддержка вашим маршрутизатором этого протокола уже означает, что у вас не будет проблем с приемом сигналов от IPTV и других сервисов. Но если ваш маршрутизатор или модем более старый, он может не принимать широковещательные сигналы или ему может просто не хватить мощности, и он «зависнет». Но когда все в порядке, IGMP snooping может быть разных типов:
- Пассивный. Это базовая технологическая поддержка, общий снупинг и широковещательная передача данных. Все работает, нагрузка на маршрутизатор минимальна. Однако нагрузка на сеть и устройства в ней возрастает.
- Активный. Этот протокол максимально оптимизирует сеть. Он отсеивает «ненужные» запросы к маршрутизатору, которые ему не нужны, освобождая ресурсы передачи данных. Однако это увеличивает нагрузку на процессор и память устройства. Устройства среднего и высокого класса справляются с этим без проблем. Для более дешевых устройств это зависит от объема данных.
IGMP Snooping
Данная вкладка позволяет настроить параметры IGMP для групп, у которых поддержка IGMP была активирована (у такой группы должен быть отмечен флажок «IGMP» в разделе «Коммутатор».
Рисунок — Настройки IGMP Snooping
IGMP Snooping – механизм сдерживания для multicast-рассылки, работающий на устройствах канального уровня (L2), служит для контроля и управления multicast-группами. Устройство с поддержкой IGMP Snooping прослушивает и анализирует сообщения IGMP, составляя карту соответствия портов с multicast MAC-адресами, на основании которой в последствии производит пересылку multicast-данных.
Для работы функции IGMP Snooping необходимо, чтобы в сети был multicast-маршрутизатор генерирующий IGMP-запросы. Таблицы составляемые для данной функции (соответствие порта участника каждой группе коммутации) должны быть привязаны к multicast-маршрутизатору, без маршрутизатора такие таблицы не будут генерироваться, и IGMP Snooping работать не будет. Кроме того, все коммутаторы участвующие в IGMP Snooping должны безоговорочно пропускать общие IGMP-запросы.
Параметры IGMP Snooping, которые могут быть настроены в разделе «Коммутатор»:
Параметр |
Описание |
---|---|
Router Port Forwarding |
Разрешить/Запретить пересылку на порт маршрутизатора |
Flood IGMP Reports |
Включает/выключает трансляцию пакетов IGMP report во все порты коммутатора, а не только в те, к которым подключен маршрутизатор |
Разрешить Querier с нулевым IP |
Разрешить/Запретить обработку и трансляцию пакетов с исходным IP-адресом 0.0.0.0 |
IP для замещения |
Заменяет IP-адрес источника во всех IGMP уведомлениях/запросах |
Last Member Query Timeout (LMQT) |
Устанавливает максимальное время, в течение которого коммутатор будет ждать ответа от активных подписчиков, перед тем как закрыть доставку multicast-пакетов на данный порт (в секундах) |
Group Membership Interval (GMI) |
Устанавливает максимально возможное время, за которое коммутатор решит, что на данном шлюзе не осталось активных подписчиков (в секундах) |
Multicast Group Limit |
Ограничивает количество адресов активных multicast групп. При превышении указанного лимита, новые IGMP-подписки блокируются |
Включить Querier |
Включает/выключает функцию Querier, назначающую функции multicast-маршрутизатора. В каждом сегменте должен быть только один активный Querier |
VLAN |
Устанавливает VLAN ID для IGMP Querier |
Не участвовать в выборах |
Запрещает/разрешает участвовать в выборах IGMP Querier в данном сегменте |
IP отправителя |
Назначает адрес отправителя IGMP-пакетов, по умолчанию 0.0.0.0 |
Интервал |
Устанавливает интервал отправки пакетов «IGMP Querier» в секундах |
Настройка Firewall
Чтобы фаервол пропускал IPTV, необходимо добавить разрешающие правила. Откройте меню New Terminal.
Выполните в терминале следующие команды:
/ip firewall filter add action=accept chain=input comment=»Allow IGMP» disabled=no in-interface=ether1 protocol=igmp/ip firewall filter add action=accept chain=forward comment=»IPTV UDP forwarding» disabled=no dst-port=1234 protocol=udp
ether1 — это интерфейс, на который приходит IPTV от провайдера. Если ваше имя отличается, укажите необходимое.
После этого откройте меню IP — Firewall и перейдите на вкладку Filter Rules. Созданные правила перетяните кнопкой мыши вверх выше запрещающих.
IGMP snooping configuration with VLANs
The second example adds some complexity. There are two IGMP snooping bridges and we need to isolate the multicast traffic on a different VLAN. See a network scheme below.
First, create a bridge on both devices and add needed interfaces as bridge ports. To change untagged VLAN for a bridge port, use the setting. The Bridge1 will be acting as an IGMP querier. Below are configuration commands for the Bridge1:
/interface bridge add igmp-snooping=yes multicast-querier=yes name=bridge1 /interface bridge port add bridge=bridge1 interface=ether2 pvid=10 add bridge=bridge1 interface=ether3 pvid=10 add bridge=bridge1 interface=ether4 pvid=10 add bridge=bridge1 interface=ether5 pvid=20 add bridge=bridge1 interface=sfp-sfpplus1 pvid=10
And for the Bridge2:
/interface bridge add igmp-snooping=yes name=bridge1 /interface bridge port add bridge=bridge1 interface=ether3 pvid=10 add bridge=bridge1 interface=ether4 pvid=10 add bridge=bridge1 interface=ether5 pvid=20 add bridge=bridge1 interface=sfp-sfpplus1 pvid=10
/interface vlan add interface=bridge1 name=MGMT vlan-id=99 /ip address add address=192.168.99.1/24 interface=MGMT network=192.168.99.0 /interface bridge vlan add bridge=bridge1 tagged=bridge1,sfp-sfpplus1 vlan-ids=99
And for the Bridge2:
/interface vlan add interface=bridge1 name=MGMT vlan-id=99 /ip address add address=192.168.99.2/24 interface=MGMT network=192.168.99.0 /interface bridge vlan add bridge=bridge1 tagged=bridge1,sfp-sfpplus1 vlan-ids=99
Add bridge VLAN entries and specify tagged and untagged ports. The VLAN 99 entry was already created when configuring management access, only VLAN 10 and VLAN 20 should be added now. Below are configuration commands for the Bridge1:
/interface bridge vlan add bridge=bridge1 untagged=ether2,ether3,ether4,sfp-sfpplus1 vlan-ids=10 add bridge=bridge1 tagged=sfp-sfpplus1 untagged=ether5 vlan-ids=20
And for the Bridge2:
/interface bridge vlan add bridge=bridge1 untagged=ether3,ether4,sfp-sfpplus1 vlan-ids=10 add bridge=bridge1 tagged=sfp-sfpplus1 untagged=ether5 vlan-ids=20
Last, enable VLAN filtering. Below is the configuration command for Bridge1 and Bridge2:
/interface bridge set vlan-filtering=yes
At this point, VLANs and IGMP snooping are configured and devices should be able to communicate through ports. However, it is recommended to go even a step further and apply some additional filtering options. Enable and on bridge ports. Below are configuration commands for the Bridge1:
/interface bridge port set ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged set ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged set ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged set ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged set ingress-filtering=yes
And for the Bridge2:
/interface bridge port set ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged set ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged set ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged set ingress-filtering=yes
Как настроить функцию в роутере
Я покажу, как настроить IGMP в маршрутизаторе на примере IPTV. Обычно это включается автоматически. Но если вы читаете эту статью, то, очевидно, что-то пошло не так. Поэтому выполните следующие действия:
- Зайдите в сетевой интерфейс вашего маршрутизатора: Введите 192.168.1.1 или 192.168.0.1 в адресной строке браузера или адрес, который отображается на наклейке внизу.
- Введите свое имя пользователя и пароль — обычно «admin» и «admin», если вы не изменили их вручную. Вы также можете проверить такую же наклейку на своем маршрутизаторе.
Перейдите в раздел «Сеть», «Настройки сети» или аналогичный. На ASUS это называется «Локальная сеть». Вам необходимо найти вкладку «IPTV».
- Опция «прокси» позволяет осуществлять вещание и фактически запускает функцию IPTV. Вот и все, IGMP-прокси на маршрутизаторе. Включите его.
- Не все модели имеют функцию «IGMP Snooping», но если она присутствует, включите и ее. Snooping повысит производительность всех устройств.
- Нажмите «Применить».
- Все готово.
IGMP Snooping Proxy
У пытливого читателя может возникнуть вопрос по тому, как IGMP Snooping узнаёт все клиентские порты, учитывая, что на IGMP Query отвечает только один самый быстрый клиент, как мы говорили выше. А очень просто: IGMP Snooping не позволяет сообщениям Report ходить между клиентами. Они отправляются только в восходящие порты к маршрутизаторам. Не видя Report от других получателей этой группы, клиент обязан ответить на Query в течение Max Response Time, указанном в этом Query.
В итоге в сети на 1000 узлов на один IGMP Query в течение секунд 10 (обычное значение Max Response Time) придёт 1000 Report’ов маршрутизатору. Хотя ему достаточно было бы и одного для каждой группы.
И происходит это каждую минуту.
В этом случае можно настроить проксирование IGMP-запросов. Тогда коммутатор не просто «слушает» проходящие пакеты, он их перехватывает.
Правила работы IGMP Snooping могут отличаться для разных производителей. Поэтому рассмотрим их концептуально:
- Если на коммутатор приходит самый первый запрос Report на группу, он отправляется вверх к маршрутизатору, а интерфейс вносится в список нисходящих. Если же такая группа уже есть, интерфейс просто добавляется в список нисходящих, а Report уничтожается.
- Если на коммутатор приходит самый последний Leave, то есть других клиентов нет, этот Leave будет отправлен на маршрутизатор, а интерфейс удаляется из списка нисходящих. В противном случае просто удаляется интерфейс, Leave уничтожается.
- Если IGMP Query приходит от маршрутизатора, коммутатор перехватывает его, отправляет в ответ IGMP Report для всех групп, которые в данный момент имеют получателей.
А дальше, в зависимости от настроек и производителя, либо этот же самый Query рассылается во все клиентские порты, либо коммутатор блокирует запрос от маршрутизатора и сам выступает в роли Querier, периодически опрашивая всех получателей.
Таким образом снижается и доля лишнего служебного трафика в сети и нагрузка на маршрутизатор.
Что такое поддержка IPTV в маршрутизаторах?
Многим будет полезно узнать, что поддержка IPTV – это такой формат вещания, при котором телесигналы передаются через интернет. Все необходимое для вывода изображения на экране поступает с всемирной паутины. Есть речь идет о технологии в маршрутизаторе, стоит уточнить, что iptv в роутере — это такая технология передачи информации в формате мультикаст.
Сам поток данных поступает отдельно от канала, по которому поступает интернет. Маршрутизатор транслирует данные на телевизор, которые уже готовы для отображения в качестве картинки. Интерактивные возможности технологии позволяют записывать понравившееся видео или создавать закладки с ним. Основными достоинствами технологии можем считать высококачественное изображение и аудио. Недостаток лишь в том, что с IPTV-технологией в роутере могут работать только телевизоры со Smart TV (обычные ТВ не подходят), а также мобильные устройства (смартфоны, планшеты, ноутбуки и т. п).
Activate IGMP snooping
Traffic tracking and analysis is available on managed network switches or switches. This device helps to implement the principles of group broadcasting at the data link layer of the network. To activate IGMP snooping, you must manually enable and configure it on the switch. Unmanaged counterparts do not support traffic analysis mode, because they cannot be configured through the interface.
Before using the device on your network, make sure that the final recipient (for example, smart-tv) supports snooping mode. Typically, devices have a corresponding item in the “Configuring a network connection” section, which greatly simplifies the adjustment of multicast.
Consider the method of connecting a function through the command line using the example of the popular D-Link switches:
- Open the device command line using the CLI interface.
- Enter “enable-igmp-snooping”. This command will enable the function on the switch and all connected addresses.
- Enter “config-igmp-snooping-vlan-default-state-enable” to allow the protocol to be configured in VLAN.
- The command “confog-multicast-vlan-filtering-mode-vlan-default-filter-unregistred-groups” enables the communicator to filter data from several addresses at once.
- Finally, use “config-igmp-snooping-vlan-default-fast-leave-enable” on the VLAN.
The last command includes the IGMP Snooping Fast Leave function, which excludes the port from the network as soon as the user makes a “leave” request. Thanks to Fast Leave, the consumer will not receive unnecessary data and will not process it. This will reduce the load on the network and allow the switch to work more efficiently.
2. Реализации
Cуществуют две реализации IGMP snooping: активный и пассивный.
- Пассивный IGMP snooping просто прослушивает IGMP трафик, никак не фильтруя его, не интерферируя с IGMP никоим образом.
-
Активный IGMP snooping: Хотя snooping подразумевает пассивное прослушивание, некоторые реализации активно фильтруют IGMP-пакеты с целью уменьшить загруженность multicast маршрутизатора. Запросы на подключение и отключение, следующие к маршрутизатору, фильтруются с целью минимизации объемов пересылаемой информации. Коммутатор старается добиться того, чтобы маршрутизатор имел только одну запись подписчика на каждую multicast группу независимо от того, сколько их на самом деле.Например: есть два активных подписчика, и первый из них покидает группу, коммутатор определяет, что маршрутизатору эта информация не нужна, поскольку не влияет на состояние группы с точки зрения последнего. Однако, когда в следующий раз поступит обычный запрос от маршрутизатора, коммутатор пропустит ответ от оставшегося потребителя, чтобы маршрутизатор не счёл, что подписчиков больше нет.
Отсюда следует, что при активном IGMP snooping маршрутизатор знает только о самом последнем участнике, присоединившемся к группе.
Обновление RouterOS (добавление пакета для IPTV)
Обновление необходимо для того, чтобы установить дополнительный пакет для IPTV.
Заходим на сайт Mikrotik , ищем в списках линейку вашей модели и скачиваем последнюю версию прошивки для нее
Обратите внимание, выбираем не прошивку с основными пакетами (main), а с дополнительными (extra):. Открываем WinBox, заходим на роутер (советуем заходить изначально по мак-адресу, это облегчит дальнейший процесс настройки)
Чтобы обновить ПО роутера, идем в меню Files
Открываем WinBox, заходим на роутер (советуем заходить изначально по мак-адресу, это облегчит дальнейший процесс настройки). Чтобы обновить ПО роутера, идем в меню Files.
Открываем его и перетаскиваем в окно Files наш скачанный файл из распакованного архива под названием multicast-x.xx-mipsbe.npk.
Пакет добавлен и после этого мы перезагружаем оборудование в меню System – Reboot .
Роутер перезагрузится и обновит прошивку. Процесс может занять до 5-ти минут. Питание в это время отключать не следует!
После перезагрузки открываем System — Packages и смотрим, появился ли модуль multicast.
Если таковой имеется, значит, вы все сделали правильно.
2.1. Общие сведения о IGMP Snooping
IGMP (Internet Group Management Protocol) — протокол управления групповой (multicast) передачей данных в IP-сетях. IGMP используется маршрутизаторами и хостами для организации присоединения сетевых устройств к группам многоадресной рассылки (multicast). Маршрутизатор использует multicast-адрес 224.0.0.1 для отправки IGMP-сообщения запроса подтверждения членства в группах. Если хост присоединяется к какой либо группе, он должен отправить IGMP-запрос на соответствующий адрес группы.
IGMP Snooping используется для прослушивания IGMP-сообщений и контроля multicast трафика/ На основе IGMP-сообщений коммутатор ведет таблицу переадресации multicast, трафик отправляется только на порты, с которых поступил запрос на многоадресную группу.
Joining/Leaving Existing Multicast Groups
Both join and leave reports work similarly, but provide certain options as well. Join reports can be either in the form of unsolicited IGMP join messages to a multicast router, or by sending this join message in response to a general query from a multicast router.
The forwarding that happens in multicast routers ensures that periodic IGMP queries are always being sent out. A host cannot remain a member of a multicast group if it doesn’t respond to these queries. A host wanting to leave can hence either simple ignore periodic general inquiries for a certain interval of time, or send out a leave report, which is quicker and more straightforward than taking a silent leave.
Как узнать, поддерживает ли роутер IPTV?
Большинство современных роутеров TP-link, D-Link, Zyxel и других производителей обладают встроенной поддержкой технологии IPTV. Однако, порой для нормальной работы маршрутизатора в этом режиме нужна специальная прошивка. В сети существует масса таблиц со списком поддерживаемых роутеров, но информация в них быстро устаревает.
Есть 3 несложных способа:
- Вводим в google «название роутера IPTV». Скорее всего на форумах уже ответили на вопрос, а может даже предложили специфическую инструкцию к конкретной модели.
- Изучаем техническую документацию. Для этого подойдет бумажная инструкция или pdf-документ на сайте производителя.
Ищем необходимую настройку в панели администратора. Необходимая информация размещена на корпусе роутера, в том числе IP или доменный адрес для ввода в браузер, а также стандартный логин и пароль. Искомый параметр – IPTV или IGMP. Если есть поддержка одного из параметров, роутер точно работает с IPTV.
Types of IGMP snooping
Listening and data analysis is divided into two types:
- Passive IGMP snooping . Such a protocol simply tracks data without filtering or analyzing it. In other words, wiretapping works in the background and does not affect the quality of data transfer.
- Active tracking . Not only passively listens for traffic, but also filters it in order to effectively use multicasting on the network. Active IGMP snooping minimizes the exchange of information by filtering requests to the router for connection and disconnection. The ideal state of the switch is the presence of one consumer for each multicast broadcast group, which is what the protocol algorithm strives for.
Snooping with an active algorithm speeds up data transfer and improves network quality, but at the same time creates an additional load on the switch. Filtering requires a certain amount of memory and CPU resources from the device, while simple tracking or relaying is a less demanding procedure. At the same time, active tracking transfers data to the router only about the most recent member of the group so that the device does not determine this as the absence of consumers in the channel and does not exclude the port from the list.
IGMP snooping works well with home networks if you use many IP multicast technologies. By purchasing and configuring a switch with the active tracking function, you will significantly speed up the Internet protocol and protect your home group from hacking and intruders.
Возможные проблемы
Может возникнуть проблема, когда вещание по-прежнему не работает. Это может быть вызвано вашим брандмауэром. Выключите его на несколько минут. Если проблема исчезла, включите его снова и включите протокол для интернет-телевидения, онлайн-игр или других услуг в настройках.
Если вы используете отдельную приставку для IPTV (зачем нужна приставка — тема для отдельного обсуждения), вам может понадобиться включить опцию «Bridge» в настройках маршрутизатора. Он может называться «Выбор порта моста WAN» или «Сеть-мост». — Это зависит от устройства.
Наконец, если сигнал «дрожит», устройство, вероятно, перегружено. Вам придется либо ограничить работу других устройств, либо отключить их. Если ничего не помогает, необходимо заменить маршрутизатор на более эффективный.
В этой статье я постарался как можно понятнее объяснить, что такое IGMP snooping в маршрутизаторе. Надеюсь, вы найдете его полезным и решите свои проблемы. Теперь вы сможете гарантировать, что передача данных будет максимально качественной и точной, а атака на сеть с целью перегрузить все устройства в сети не увенчается успехом.
Forwarding Interfaces and Rules
Forwarding interfaces for IGMP snooping can be of two types. Multicast-router interfaces forward to IGMP query ports or simply to multicast routers. Group-member interfaces forward to hosts that are already members of multicast groups. The relevant device can learn about which interface to use by monitoring IGMP traffic.
These interfaces, when present in a VLAN that has IGMP snooping enabled, receive multicast traffic and then forward it while following certain rules. The rules simply pertain to differentiating between IGMP traffic and regular multicast traffic (which is not IGMP) and sending it to the appropriate destination.
IGMP Snooping
Идея очень простая — коммутатор «слушает» проходящие через него IGMP-пакеты.
Для каждой группы отдельно он ведёт таблицу восходящих и нисходящих портов.
Если с порта пришёл IGMP Report для группы, значит там клиент, коммутатор добавляет его в список нисходящих для этой группы.
Если с порта пришёл IGMP Query для группы, значит там маршрутизатор, коммутатор добавляет его в список восходящих.
Таким образом формируется таблица передачи мультикастового трафика на канальном уровне.
В итоге, когда сверху приходит мультикастовый поток, он копируется только в нисходящие интерфейсы. Если на 16-портовом коммутаторе только два клиента, только им и будет доставлен трафик.
IGMP Snooping
Гениальность этой идеи заканчивается тогда, когда мы задумываемся о её природе. Механизм предполагает, что коммутатор должен прослушивать трафик на 3-м уровне.
Впрочем, IGMP Snooping ни в какое сравнение не идёт с NAT по степени игнорирования принципов сетевого взаимодействия. Тем более, кроме экономии в ресурсах, он несёт в себе массу менее очевидных возможностей. Да и в общем-то в современном мире, коммутатор, который умеет заглядывать внутрь IP — явление не исключительное.
Задача № 3
Сервер 172.16.0.5 передает мультикаст трафик на группы 239.1.1.1, 239.2.2.2 и 239.0.0.x.
Настроить сеть таким образом, чтобы:
- клиент 1 не мог присоединиться к группе 239.2.2.2. Но при этом мог присоединиться к группе 239.0.0.x.
- клиент 2 не мог присоединиться к группе 239.1.1.1. Но при этом мог присоединиться к группе 239.0.0.x.
R1
R2
R3
R4
R5
Сброс настроек точки доступа
Этот пункт необязателен. Если вы настраиваете IPTV на роутере с рабочими настройками, которые вы делали ранее, то выполнять нижеописанные действия не нужно. Не помешает также сделать бекап конфигурации.
Однако иногда, если во время настройки IPTV на МикроТик что-то пошло не так, лучший выход — это «обнулить» конфигурацию и сделать все заново.
Сбросить настройки к заводским можно тремя способами:
Программно — заходим в WinBox, открываем меню System и делаем Reset Configuration.
Механически: зажимаем кнопку Reset на вашем Mikrotik и ждем, пока роутер не перезагрузится. (На большинстве Mikrotik советуем зажимать кнопку ДО включения оборудования, и, не отпуская держать около 10-ти секунд после включения)
Reset Configuration в меню самого роутера (на экране настройки). Актуально только при наличии сенсорного экрана на роутере.
Мультикастовые MAC-адреса
Так какие же MAC-адреса получателей подставляются в заголовок Ethernet таких пакетов? Широковещательные? Нет. Существует специальный диапазон MAC-адресов, в которые отображаются мультикастовые IP-адреса.
Эти специальные адреса начинаются так: 0x01005e и следующий 25-й бит должен быть 0 (попробуйте ответить, почему так). Остальные 23 бита (напомню, всего их в МАС-адресе 48) переносятся из IP-адреса.
Здесь кроется некоторая не очень серьёзная, но проблема. Диапазон мультикастовых адресов определяется маской 224.0.0.0/4, это означает, что первые 4 бита зарезервированы: 1110, а оставшиеся 28 бит могут меняться. То есть у нас 2^28 мультикастовых IP-адресов и только 2^23 MAC-адресов — для отображения 1 в 1 не хватает 5 бит. Поэтому берутся просто последние 23 бита IP-адреса и один в один переносятся в MAC-адрес, остальные 5 отбрасываются.
Multicast MAC Address
Фактически это означает, что в один мультикастовый MAC-адрес будет отображаться 2^5=32 IP-адреса. Например, группы 224.0.0.1, 224.128.0.1, 225.0.0.1 и так до 239.128.0.1 все будут отображаться в один MAC-адрес 0100:5e00:0001.
Если взять в пример дамп потокового видео, то можно увидеть:
Дамп мультикаста
IP адрес — 224.2.2.4, MAC-адрес: 01:00:5E:02:02:04.
Есть также другие мультикастовые MAC-адреса, которые никак не относятся к IPv4-мультикаст (). Все они, кстати, характеризуются тем, что последний бит первого октета равен 1.
Естественно, ни на одной сетевой карте, не может быть настроен такой MAC-адрес, поэтому он никогда не будет в поле Source MAC Ethernet-кадра и никогда не попадёт в таблицу MAC-адресов. Значит такие кадры должны рассылаться как любой Unknown Unicast во все порты VLAN’а.
Всего, что мы рассматривали прежде, вполне достаточно для полноценной передачи любого мультикастового трафика от потокового видео до биржевых котировок. Но неужели мы в своём почти совершенном мире будем мирится с таким безобразием, как широковещательная передача того, что можно было бы передать избранным?
Вовсе нет. Специально для перфекционистов придуман механизм IGMP Snooping.