Содержание
И так, чтобы раскрыть тему IGMP Proxy, PIM и мультикаста полностью – давайте начнём с самого начала. Вы, наверное, уже знаете, как передаётся эфирное телевидение. То есть у нас есть телевизионная вышка, которая путём радиоволн передаёт закодированный сигнал. А клиент в свою очередь принимает этот сигнал с антенны и видит картинку на телевизоре. Аналогично все происходит и путём кабельного ТВ. Только разница в том, что в кабельном идёт сигнал непосредственно по проложенному проводу к каждому приёмнику.
Но общее все же есть – сигнал одновременно поступает к всем клиентам. Когда вы включите телевизор, то вы увидите сигнал, который отправляется всем. Но если вы включите, например тот же самый YouTube, то там все по-другому. Каждому пользователю предоставляется свой пакет трафика.
И вот мы подошли к вопросу – что же такое мультикаст? Это технология, которая объединяет два этих подхода передачи трафикав. На первом уровне, пакет отправляется только в одном экземпляре, но только тому клиенту, который сделал на него запрос. Приёмников на самом деле может быть несколько.
Самый яркий пример мультикаста — это использования IPTV. Не все провайдеры предоставляют данную возможность, но щас она набирает обороты и возможно, кто-то уже пользуется этой услугой. Представим, что у нас есть два пользователя: Вася и Петя, который подключены к одному провайдеру. Так вот сервер IPTV, отправляет сигналы не всем пользователям, а только тем, кто в данный момент подключен.
Но самое главное, что Вася и Петя будут получать сигнал и пакеты только того канала, который в данный момент включен. Например, Вася смотрит «Первый канал», а Петя «СТС». Сервер четко отправляет пакеты информации только по тому каналу, который активен. Ещё один пример — это онлайн конференция, которой часто пользуются крупные компании. Ведь нет смысла раскидываться трафиком и отправлять всем, можно просто от одного разливать информацию к каждому клиенту.
Содержание
Реализация
А теперь встаём следующая проблема – как это организовать. Представьте себе, что в сети у провайдера очень много узлов, коммутаторов, маршутизаторов, серверов и есть центральный сервер того же IPTV. Задача сервера отправить трафик таким образом, чтобы он максимально быстро через минимальное количество узлов дошёл до пользователя.
При этом нужно это сделать так, чтобы не образовалось кольцо – когда трафик начинает ходить по кругу и бесконечно. Поэтому путь пакетов будет выглядеть как дерево, да и топология будет использоваться подобная. То есть выходя пакет от сервера он подходит к одному из узлов. Дальше узел должен определить куда дальше отправлять пакет.
А теперь мы подобрались к протоколу IGMP (Internet Group Management Protocol) — это такой протокол, который позволяет быстро подключаться клиенту к ближайшему маршрутизатору. Он сообщает ему, что нужен трафик по тому или иному каналу. Если же запроса к маршрутизатору нет, то он просто простаивает и тем самым высвобождает ресурсы сети.
Также используется PIM (Protocol Independent Multicast) протокол – эта такая система, которая выстраивает адрес от сервера к конечному получателю через одну ветвь дерева. При этом система постоянно мониторит путь, чтобы менять его, если какой-то сегмент выключен или был перемещён.
Проще говоря, сервер транслирует только один сигнал каждого телевизионного канала. И пользователи получают только сигнал того канала, который запросили. Одновременно один сигнал могут получать и несколько приёмников. Именно для этого и нужен протокол IGMP.
Куда идёт пакет
Рассмотрим на примере. Вообще данная технология использует IP адреса 224.0.0.0-239.255.255.255 диапазона. Например, сервер отправляет один канал с адресом 224.2.2.4. Это канал «СТС». IGMP протокол, использующийся только в отрезке между клиентом и ближайшим маршрутизатором, который к нему подключен.
- Так вот, пользовательская программа отправляет запрос на просмотр канала 224.2.2.4 ближайшему маршрутизатору.
- Если в маршрутизаторе уже есть поток и через него идёт дерево канала, который запросил клиент – то пакеты сразу же отправляются пользователю, и он видит изображение.
- Как только клиент выключит программу на маршрутизатор отправляется сигнал, о выходе из группы и сигнал более туда не идёт.
- Но также маршрутизатор постоянно отправляет сигнал на ближайших включенных клиентов, чтобы удостовериться, что они ещё принимают трафик. Происходит это каждые 60 секунд. Клиент, который получил такой запрос, обязан отправить ответ или его отключат. Все это происходит в автономном режиме.
Как включить на роутере
В роутере данная функция чаще всего нужна для нормального просмотра IPTV. По умолчанию эта функция уже включена, но можно проверить. Теперь я покажу как включить эту функцию на примере модели TP-Link.
Заходим в «Сеть» – «IPTV» и включаем «IGMP Прокси». Также не забываем поставить галочку «IGMP Snooping» – функция, исключающая получение трафика от группы, к которой не принадлежит клиент. На новых прошивках данный пункт находится там же, только изначально надо нажать на вкладку «Дополнительные настройки». Обязательно нажмите на кнопку «Сохранить» в само конце.
Блог Traffic Inspector Next Generation Team30.11.20201510
Протокол IGMP (Internet Group Management Protocol) — это межсетевой протокол управления группами, который играет ключевую роль при организации мультикастовой передачи данных. Он входит в состав стандартного пакета TCP/IP и используется для осуществления многоадресной динамической рассылки. Учитывая широкое применение таких рассылок, для построения и обслуживания сетей важно иметь общее представление об IGMP протоколе: что это, и как он работает. Для этого важно не только осветить сам межсетевой протокол, но и дать понятие многоадресной рассылки и динамической многоадресной рассылке.
Что такое многоадресная рассылка?
Многоадресная рассылка, или Multicast — это способ передачи данных по сетям IPv4, который обеспечивает доставку единого потока информации одновременно тысячам частных или корпоративных пользователей. Работа в режиме Multicast предусматривает, что отправитель передает пакеты данных выбранной группе адресатов. При этом допускается подключение этих адресатов к разным подсетям.
Протокол IPv4 предполагает организацию отправки пакетов тремя способами:
- адресация определенному устройству;
- широковещательная рассылка;
- многоадресная рассылка.
В первом случае трафик передается только на конкретный компьютер. Этот способ позволяет пользователю выполнять значительную часть действий в интернете. Однако передача конкретному устройству потокового видео или других массивных объемов данных приведет к повышенной нагрузке на сеть. Поэтому для решения таких задач целесообразно использовать способы, позволяющие единожды передавать потоки, которые смогут получать многочисленные пользователи.
Широковещательная рассылка предполагает передачу данным от отправителя все подключенным к конкретной сети хостам. Сегодня этот метод используется редко, поскольку создает помехи для передачи других видов трафика.
Оптимальным решением становится многоадресная рассылка, при которой пакеты доставляются каждому подключенному к сети с определенным адресом хосту. Это дает значительную экономию полосы пропускания и снижает нагрузку на сеть.
При многоадресной рассылке сообщения отправляются на адрес группы Multicast, не имеющей географических и физических ограничений — то есть узлы могут быть расположены в разных странах и регионах. Главное, чтобы они были подписаны на рассылку (присоединены к группе). Для присоединения к группе Multicast и используется протокол IGMP.
Динамическая многоадресная рассылка
Чтобы обеспечить создание корректной конфигурации динамической многоадресной рассылки, необходим маршрутизатор или коммутатор, поддерживающий уровень 3. Коммутатор 3 уровня способен выполнять обработку многоадресных групп. Он использует межсетевой протокол IGMP для получения от клиентов сообщений присоединение (join) и исключения (leave). Эти сообщения используются для формирования многоадресных групп — добавления и удаления из них клиентов.
Кроме этого, в сетях, поддерживающих многоадресную рассылку, могут использоваться коммутаторов 2 уровня. Такие коммутаторы поддерживают IGMP Snooping. Благодаря этому обеспечивается возможность «считывать» IGMP трафик, проходящий между маршрутизаторами (запросчиками) и хостами. В результате коммутатор может контролировать присоединение портов к многоадресным группам и исключение их из многоадресных групп, обеспечивать динамическое перенаправление трафика только на те порты, которые входят в состав группы.
Запросчик IGMP регулярно отправляет сообщения IGMP Membership Query (запросы принадлежности IGMP) на адрес многоадресной рассылки 224.0.0.1. Эти запросы с определенным интервалом поступают всем поддерживающим многоадресную рассылку хостам. В результате коммутатор 3 уровня может отслеживать относящиеся к многоадресной группе порты.
Принципы работы IGMP
Функция протокола заключается в поддержании работы многоадресных групп. При отсутствии клиентов передача мультикастового трафика в соответствующий сегмент сети не требуется. Если появляется клиент, который хочет получать мультикастовый трафик, то он уведомляет об этом маршруты именно с помощью протокола IGMP.
Рассмотрим, как работает IGMP по порядку
При запуске клиента и задании на нем группы 224.2.2.4 в сеть направляется запрос IGMP Membership Report, которым узел сообщает о желании получать мультикастовый трафик. Запрос отправляется на адрес группы и указывается в пакете данных. Такие запросы маршрутизаторами никуда не пересылаются и действуют только в пределах своего сегмента.
После получения IGMP Membership Report маршрутизатор определяет наличие клиентов за соответствующим интерфейсом и заносит данные в таблицу.
Мультикастовый трафик передается клиенту. Чтобы не выполнять вещание впустую, маршрутизатор периодически проверяет наличие получателей. Такая проверка выполняется путем отправки запроса IGMP Query во все нисходящие интерфейсы. Запросы IGMP Query направляются на IP 224.0.0.1 с интервалом по умолчанию 60 секунд. После получения запроса IGMP Query, подключенный к группе хост отправляет в ответ сообщение IGMP Report, как и при подключении.
В случае если в ответ на запрос Query поступает хотя бы один Report, значит, в группе еще есть клиенты. Поэтому маршрутизатор продолжает вещание мультикастового трафика в соответствующий интерфейс. Если же интерфейс не отвечает на запросы 3 раза подряд, он удаляется из таблицы многоадресной маршрутизации и перестает получать трафик. Как правило, клиент отправляет Report по своей инициативе только при подключении, а в дальнейшем только отвечает на запросы маршрутизатора.
Принцип работы протокола динамической маршрутизации IGMP предусматривает использование механизма Report Suppression, в соответствии с которым при получении Query клиент не отправляет Report, а берет определенный интервал. Его продолжительность может составлять от 0 до времени Max Response Time, которое указывается в Query. Это необходимо для того, чтобы избежать перегрузки сети многочисленными ответами от клиентов. Кроме того, поскольку Report отправляется на адрес группы, его получают и все клиенты, находящиеся в пределах соответствующего сегмента. При получении Report от другого клиента группы узел не отправляет свой ответ. Благодаря этому Report обычно отправляет только один клиент, чего достаточно маршрутизатору для продолжения вещания на узел.
Когда клиент выходит из группы, например, при отключении пользователем плеера потокового видео, он направляет на адрес группы сообщение IGMP Leave. После получения Leave не может отключить конкретного клиента, поскольку не различает их. Он работает с нисходящим интерфейсом, в котором может находиться несколько клиентов. Поэтому после получения Leave маршрутизатор некоторое время продолжает вещание. При этом он отправляет на адрес группы, из которой поступил Leave, запрос IGMP Query.
Такой запрос называют Group Specific Query, и отвечают на него только клиенты, подключенные к данной группе. Запросы этого типа посылаются дважды. Один из них — обязательный, второй — контрольный. Если в ответ на Group Specific Query приходит Report, маршрутизатор продолжает вещание на группу. Если ответ не поступает, то он удаляет ее из таблицы маршрутизации и прекращает вещание.
При наличии в клиентском сегменте двух или нескольких маршрутизаторов применяется более сложная схема работы протокола IGMP. Это необходимо, чтобы исключить дублирование мультикастового трафика, поскольку при стандартной схеме каждый маршрутизатор будет получать от клиентов Report. Чтобы предотвратить такое дублирование, применяется механизм выбора опрашивателя Querier, в качестве которого назначается один из маршрутизаторов. Именно он реагирует на сообщения Report и Leave, а также транслирует мультикастовый трафик. Остальные маршрутизаторы в сегменте только слушают Report и находятся в резерве.
Предоставлено SendPulseНазадДалее
Те, кто хоть раз заходил в настройки своего Wi-Fi роутера наверняка мог обратить внимание на наличие опции под названием igmp proxy. У кого-то она включена, а у кого – то выключена.
В данной статье вы узнаете для чего нужна данная настройка и когда ее нужно включать.
За что отвечает igmp proxy?
Наверняка многие используют или хотя бы слышали о IPTV. Это технология просмотра телевидения через интернет на компьютере и других устройствах.
Вот так выглядит просмотр IPTV
Принцип ее работы заключается в передаче данных через широковещательные запросы в компьютерной сети. Программа, установленная на компьютере, принимает эти данные, собирает их и отображает как потоковое видео.
Так вот опция igmp proxy разрешает или запрещает роутеру пропускать пакеты данных IPTV. Говоря более простыми словами, включает или отключает работу IPTV для устройств, подключенных к данному роутеру.
Включать или нет?
Если вы не используете IPTV на компьютере или на телевизоре через приставку, то igmp proxy можно оставить в положении “Отключено” (Disabled).
Пример опции в настройках роутера TP-Link
В противном случае отключение данной опции сделает просмотр телевидения IPTV через интернет невозможным.
Используемые источники:
- https://wifigid.ru/sovety-po-nastrojke-routerov/igmp-proxy
- https://www.smart-soft.ru/blog/mezhsetevoj_protokol_upravlenija_gruppami_igmp/
- https://helpadmins.ru/igmp-proxy-v-routere-chto-yeto/