|
РУС|ENG
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Адрес группы представляет собой широковещательный IP-адрес, на который осуществляется рассылка контента. Например, 224.200.200.205. В IGMPv2 существуют следующие типы сообщений:
Рассмотрим назначение этих сообщений более детально. Общая схема сети
Рассмотрим работу протокола IGMP на тестовом стенде в компании НетАП. Общая схема сети представлена на рисунке 1.
В качестве IP STB была использована модель AmiNET 110 (Рис. 2).
По умолчанию IP STB после загрузки отображает стартовую страницу WEB-браузера и предлагает ввести URL. Для просмотра медиаконтента передаваемого в широковещательной группе 224.200.200.205 (на тестовом стенде это телевизионный канал "Россия") необходимо ввести следующий адрес: igmp://224.200.200.205:1234 При этом IP STB отправит в сеть IGMP -запрос о вступлении в группу 224.200.200.205. Если IGMP корректно функционирует в сети, то абонентское устройство сможет "увидеть" этот поток. При нажатии клавиши "Esc" IP STB прекратит отображать поток. При этом в сеть будет отправлен IGMP-запрос о выходе из группы. С точки зрения протокола IGMP медиапроигрыватель VLC функционирует аналогично IP STB AmiNET 110. Поддерживает перехват и анализ IGMP пакетов. Этот функционал называется "igmp snooping". Именно благодаря анализу проходящих IGMP пакетов, коммутатор узнает к каким портам подключены абоненты и в каких группах они состоят. Для включения этой функции необходимо в настройках коммутатора ввести следующие команды: catalyst2950#configure terminal catalyst2950(config)#ip igmp snooping Для анализа работы "igmp snooping" на коммутаторе можно ввести следующие команды: catalyst2950#debug ip igmp snooping catalyst2950#terminal monitor При этом коммутатор будет выводить на консоль информацию о перехваченных IGMP пакетах, а так же информацию о том какие действия были предприняты. Например, прием IGMP-пакета от клиента о вступлении в группу 224.200.200.205 будет выглядеть следующим образом: 9w3d: IGMPSN: group: Received V2 report for group 224.200.200.205 received on Vlan 1, port Fa0/2 9w3d: IGMPSN: group: Adding client ip 10.1.2.16, port_id Fa0/2, on vlan 1 for proxy reporting 9w3d: IGMPSN: group: Created group 224.200.200.205 9w3d: IGMPSN: group: Added port Fa0/2 to group 224.200.200.205
Как видно из этих отладочных сообщений коммутатор зафиксировал вступление абонента 10.1.2.16, подключенного к порту Fa0/2 в группу 224.200.200.205. Согласно этой информации в порт Fa0/2 теперь будут поступать пакеты для 224.200.200.205. 9w3d: IGMPSN: group: Leave for group 224.200.200.205 received on Vlan 1, port Fa0/2 9w3d: IGMPSN: group: Adding client ip 10.1.2.16, port_id Fa0/2, on vlan 1 for proxy reporting 9w3d: IGMPSN: group: Created leave port on port Fa0/22, for group 224.200.200.205 on Vlan 1 9w3d: IGMPSN: timer: Vlan 1, group 224.200.200.205, port Fa0/2 leave port timer expired 9w3d: IGMPSN: group: Deleting leave port on port Fa0/2, for 224.200.200.205 on Vlan 1 9w3d: IGMPSN: group: Deleting port Fa0/2 from group 224.200.200.205 on Vlan 1 9w3d: IGMPSN: group: Deleting group 224.200.200.205
Как видно из этих сообщений, коммутатор произвел отключение абонента из группы 224.200.200.205, а так же удалил группу т.к. в данной группе больше не осталось активных абонентов. Данное устройство производится компанией НетАП и представляет собой высокопроизводительный IP-стример. В качестве источника мультимедийных данных могут выступать спутниковые каналы (DVB-S), аналоговые видео-входы (RCA-in) с видео-камер, транспортные потоки (ASI-in) и др. На выходе стример имеет два Gigabit Ethernet порта для отправки сформированных транспортных потоков в IP-cеть. Пакеты отправляются в режиме широковещания. Стример построен на базе ОС Linux. В связи с этим имеется возможность установить дополнительно необходимые сервисы. Как упоминалось выше, коммутатор не выполняет функции маршрутизатора широковещательных пакетов (Querier), поэтому данный функционал возложим на стример. Для этого необходимо установить пакет mrouted и запустить его. Конфигурационный файл /etc/mrouted.conf можно оставить со значениями по умолчанию. Стоит отметить, что в системе должны быть активированы два сетевых интерфейса, в противном случае процесс mrouted не запустится. Проконтролировать текущее состояние процесса можно, послав сигнал USR1. Для этого выполните команду: kill -USR1 `cat /var/run/mrouted.pid ` В результате процесс mrouted сбросит текущее состояние в файл /var/tmp/mrouted.dump. Пример содержимого этого файла:
mrouted version 3.9-beta3 up 0:08:30 Sat Jul 7 14:44:07 2007
vifs_with_neighbors = 0
Virtual Interface Table
Vif Name Local-Address M Thr Rate Flags
0 eth2 10.1.11.10 subnet: 10.1/16 1 1 0 querier leaf
group host (time left): 224.200.200.205 10.1.2.16 ( 0:04:15)
224.200.200.150 10.1.4.233 ( 0:03:40)
224.0.0.4 10.1.11.10 ( 0:03:39)
224.0.0.2 10.1.11.10 ( 0:03:39)
IGMP querier: 10.1.11.10 (this system)
Nbr bitmaps: 0x0000000000000000
pkts/bytes in : 2773302/3593651956
pkts/bytes out: 0/0
1 eth3 172.16.16.16 subnet: 172.16.16/24 1 1 0 querier leaf
group host (time left): 224.0.0.4 172.16.16.16 ( 0:03:44)
224.0.0.2 172.16.16.16 ( 0:03:44)
IGMP querier: 172.16.16.16 (this system)
Nbr bitmaps: 0x0000000000000000
pkts/bytes in : 0/0
pkts/bytes out: 0/0
Multicast Routing Table (2 entries)
Origin-Subnet From-Gateway Metric Tmr Fl In-Vif Out-Vifs
172.16.16/24 1 110 .. 1 0*
10.1/16 1 110 .. 0 1*
Как видно из этого файла, на интерфейсе eth2 у нас присутствует широковещательная группа 224.200.200.205, в которую подключен абонент 10.1.2.16. В случае если в сети находятся два или более IGMP querier, то функции на себя берет тот, у которого меньше IP-адрес. Благодаря такой логике возможно дублирование функций между двумя и более широковещательными маршрутизаторами для большей отказоустойчивости. Корректность работы IGMP можно проверить на Ethernet коммутаторе Cisco Catalyst. Для этого необходимо выполнить команды: catalyst2950#show ip igmp snooping querier Vlan IP Address IGMP Version Port --------------------------------------------------- 1 10.1.11.10 v2 Fa0/1 catalyst2950#show ip igmp snooping group Vlan Group Version Port List --------------------------------------------------------- 1 224.200.200.205v2 Fa0/2 Согласно выводу этих команд, коммутатор корректно определил маршрутизатор (Querier) и присутствие в сети группы 224.200.200.205. При этом так же указан абонент, подключенный к этой группе и порт, на котором этот абонент находится. Соответственно только в этот порт направляются пакеты для группы 224.200.200.205. При этом пакеты для других широковещательных групп удаляются на коммутаторе и не направляются ни в один из портов т.к. у нас нет больше активных абонентов. При этом стоит отметить, что стример посылает в сеть все каналы, независимо от количества активных абонентов. Проконтролировать наличие потоков можно, выполнив на стримере команду: /usr/bin/trafshow -ni eth2 port 1234 Вывод будет содержать таблицу текущих широковещательных потоков, с указанием битрейта и переданных байт: From Address To Address Proto Bytes CPS ====================================================================== 10.1.11.10..32795 224.200.200.202..1234 udp 8537028 375494 10.1.11.10..32788 224.200.200.212..1234 udp 7952044 407992 10.1.11.10..32790 224.200.200.209..1234 udp 7094228 279341 10.1.11.10..32787 224.200.200.213..1234 udp 7043440 351231 10.1.11.10..32784 224.200.200.210..1234 udp 7008084 280157 10.1.11.10..32782 224.200.200.215..1234 udp 6508896 314706 10.1.11.10..32785 224.200.200.207..1234 udp 5925792 231584 10.1.11.10..32794 224.200.200.200..1234 udp 5906572 200676 10.1.11.10..32793 224.200.200.211..1234 udp 6047448 326328 10.1.11.10..32796 224.200.200.205..1234 udp 5881424 306071 10.1.11.10..32783 224.200.200.216..1234 udp 5758480 393428 10.1.11.10..32798 224.200.200.201..1234 udp 5570160 321016 10.1.11.10..32797 224.200.200.204..1234 udp 5365592 284411 10.1.11.10..32791 224.200.200.217..1234 udp 5195216 207687 10.1.11.10..32786 224.200.200.206..1234 udp 5297696 296824 10.1.11.10..32799 224.200.200.203..1234 udp 4779076 203542 10.1.11.10..32792 224.200.200.214..1234 udp 3279980 161183 10.1.11.10..32789 224.200.200.208..1234 udp 3144896 131500 10.1.11.10..32800 224.200.200.250..1234 udp 512616 22896 10.1.11.10..32801 224.200.200.251..1234 udp 364532 28590 (eth2) 100217 kb/total 4057 pkts/sec 5250733 bytes/sec Page 1/1 Как видно из этой распечатки, стример постоянно передает в сеть 20 потоков (18 телевизионных каналов и 2 радио станции). При этом, как уже отмечалось выше, количество реально работающих абонентов может сильно варьироваться с течением времени. Благодаря работе протокола IGMP каждый абонент получает именно тот поток, который он запросил. В случае использования маршрутизатора Cisco (на стенде компании НетАП используется модель Cisco 7140-2FE, IOS 12.3), поддержка маршрутизации широковещательных пакетов включается следующими командами: c7140(config)#ip multicast-routing c7140(config)#interface FastEthernet0/0 c7140(config-if)#ip pim sparse-mode c7140(config-if)#ip igmp version 2 Проконтролировать широковещательные группы при этом можно командой: c7140#show ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 224.200.200.150 FastEthernet0/0 00:02:40 00:02:59 10.1.2.37 224.200.200.205 FastEthernet0/0 00:02:41 00:01:53 10.1.4.233 Ссылки на внешние источники
Все права защищены (c) 2001-2008 NetUP (www.netup.tv)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Тел: +7 (495) 543-9220 (многоканальный), E-mail: info@netup.tv |