В статье "Настройка IGMP в локальной сети для контроля широковещательных IPTV потоков" были рассмотрены основные принципы работы IGMP snooping в случае когда коммутатор и IGMP querier разнесены на разные устройства. В этой статье будет описана схема с использованием одного устройства Cisco Catalyst 3550-12T [1], которое совмещает в себе функции и коммутатора, и IGMP querier. Коммутатор Catalyst 3550-12T имеет на борту 10 портов Gigabit Ethernet (витая пара), а так же два порта под модули GBIC. Пиковая производительность составляет 17 млн. пакетов в секунду, что позволяет передавать данные на скорости 24 Гбит/сек.
На коммутаторе необходимо иметь сконфигурированный IP-адрес на интерфейсе Vlan 1:
! interface Vlan1 ip address 10.1.2.247 255.255.0.0 !
Включение функции IGMP snooping производится командой (в режиме глобального конфигурирования):
ip igmp snooping
Включение функции IGMP querier производится командой (в режиме глобального конфигурирования):
ip igmp snooping querier
Специалистами компании НетАП подготовлен стенд на базе Cisco Catalyst 3550-12T ( C3550-IPSERVICESK9-M, Version 12.2(40)SE ) и NetUP DVB-IP стримера [2]. Общая схема сети представлена на рисунке 1. В качестве абонентского оборудования выступали персональный компьютер с медипроигрывателем vlc, а так же телевизионная приставка Aminet 130.

На коммутаторе были включены функции IGMP snooping и IGMP querier как описано выше. Для проверки можно выполнить следующие команды (команды приведены с выводом):
c3550#show ip igmp snooping querier Vlan IP Address IGMP Version Port ---------------------------------------------------------------- 1 10.1.2.247 v2 Switch c3550#show ip igmp snooping groups Vlan Group Version Port List ------------------------------------------------------------
Как видно коммутатор выполняет функции IGMP querier. В списке групп (groups) нет ни одной группы т.к. ни один из абонентов не запросил широковещательный поток. В этом случае средняя скорость передачи данных на порту абонента будет равна 0 Мбит/сек. Для проверки можно выполнить команду:
c3550#show interfaces GigabitEthernet 0/2 | include 5 minute 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec
При этом на порту NetUP DVB-IP стримера мы видим передающиеся данные на скорости порядка 110-120 Мбит/сек (настроено полное открытие 4х транспондеров, что составляет примерно 50 ТВ каналов):
c3550#show interfaces GigabitEthernet 0/1 | include 5 minute 5 minute input rate 125753000 bits/sec, 11558 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec
Именно благодаря работе IGMP snooping в абонентский порт не поступают широковещательные пакеты. В случае если абонент запросит какой-либо ТВ канал в его порт будут копироваться только те широковщательные пакеты, которые относятся к этому ТВ каналу. Для проверки выполним запрос ТВ канала на абонентском устройстве:
vlc udp://@226.2.0.5:1234
На экране абонентского устройства будет отображаться запрошенный ТВ канал. При этом на коммутаторе в списке групп мы увидим новую запись:
c3550#show ip igmp snooping groups Vlan Group Version Port List ------------------------------------------------------------ 1 226.2.0.5 v2 Gi0/2
Как видно из этой записи коммутатор производит копирование широковещательных пакетов для группы 226.2.0.5 в абонентский порт (Gi0/2). Для проверки можно посмотреть скорость передачи данных в абонентский порт:
c3550#show interfaces GigabitEthernet 0/2 | include 5 minute 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 3300000 bits/sec, 304 packets/sec
Как видно в абонентский порт передается только один ТВ канал со скоростью примерно 3 Мбит/сек. Благодаря такому поведению коммутатора мы избегаем перегрузки абонентского устройства нежелательными широковещательными пакетами.
При этом стоит отметить практически нулевую загрузку CPU на коммутаторе. Скорее всего работа с широковещательными пакетами производится на аппаратном уровне.
c3550#show processes cpu history
1111111111122222111111111111111111111111111111111111111111
100
90
80
70
60
50
40
30
20
10
0....5....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5
CPU% per second (last 60 seconds)
Важно! Согласно документу "IPv4 Multicast Unusable Group And Source Addresses" [3,4] не рекомендуется использовать определенные диапазоны широковещательных IPv4 адресов. Например, таким диапазоном является подсеть 226.0.0.0 - 226.0.0.255. Коммутатор Cisco Catalyst 3550-12T производит рассылку таких пакетов во все порты не зависимо от того, запрашивал получатель их или нет.
Все права защищены (c) 2001-2009 NetUP (www.netup.tv)
Перепечатка материалов разрешается только с предварительного разрешения
компании NetUP (info@netup.tv)