
На настройки одной из них в сетях Ethernet-провайдера и посмотрим.
О теории мультикастового траффика, а IPTV есть ничто иное, как мультикаст, было хорошо рассказано пользователем lena_sakhno в топике Multicast routing для IPTV, там шел разговор в основном о ядре сети и о PIM-маршрутизации. Но каким образом можно пользователю предоставить телевидение как услугу, причем дополнительную к интернету и локальной сети?
Провайдер всей своей душой хочет разнести все свои сервисы по различным IP-подсетям, вланам и прочая, чтобы было удобно тарифицировать, управлять услугами, изменять качество обслуживания, в конце концов. Т.е. подавать в одном VLAN пользователю все услуги мы не имеем морального плана. Выдавать пользователю транковое соединение? Да за такое
У производителей коммуникационного оборудования есть технология, позволяющая нам красиво жить: у Cisco она называется MVR, у D-Link — ISM vlan.
Так сложилось, что на уровне доступа в основном используются коммутаторы фирм D-Link (повсеместно) и Edge-Core (как минимум, у нас :)), на их примере и рассмотрим настройку.

Суть этой технологии заключается в том, что пользователю мы подаем отдельный влан с локальной сетью (или изолированный влан, у кого какая схема подключения), внутри которого будет бегать локальный траффик (как вариант, DC++, eMule, Shareman и т.д.). Выход в интернет будет осуществляться посредством PPTP\L2TP, всё как обычно. Для IPTV траффика заведен отдельный влан, посредством которого коммутатор будет накапливать все IGMP-сообщения о вступлении в группу на этом нем и от своего лица отправлять отчеты опрашивающему устройству IGMP. Таким образом, для каждого канала будет передаваться только одна копия многоадресного потока. Затем ISM VLAN будет перенаправлять поток соответствующим зарегистрированным подписчикам в VLAN-ах.
Итак, у нас есть пользовательские вланы 10, 20, и ISM vlan 601. Запросы от подписчиков приходят до свитча в пользовательских вланах, дальше свитч от своего имени перенаправляет запрос на вышестоящий коммутатор, который является PIM-маршрутизатором. От него поток будет приходить в 601 влане, дальше свитч перенаправляет этот трафик в соответствующий пользовательский влан.
ОК, что касается непосредственно настройки, пример для D-Link 3526:
create vlan user1 tag 10
create vlan user2 tag 20
config vlan default delete 1-26
config vlan user1 add untagged 1
config vlan user1 add tagged 25,26
config vlan user2 add untagged 2
config vlan user2 add tagged 25,26
create igmp_snooping multicast_vlan IPTV 601
config igmp_snooping multicast_vlan IPTV member_port 1-2 source_port 25-26 replace_source_ip 10.21.255.2 state enable
enable igmp_snooping
Порты 1,2 коммутатора идут соответственно к пользователям, порты 25-26 — аплник.
Командой create igmp_snooping multicast_vlan IPTV 601 мы создаем ISM vlan с именем IPTV, находящийся в VLAN 601.
Командой config igmp_snooping multicast_vlan IPTV member_port 1-2 настраиваем потры 1,2 в качестве получателей услуги, source_port 25-26 — порты источника, replace_source_ip 10.21.255.2 — подменять IP адреса пользователей в IGMP-запросах на данный адрес.
Следующий пример для Edge-core ES3528. У него немного урезанная версия MVR, насколько я понял, и поддерживает он только схему, когда и пользователь 1, и пользователь 2 находятся в одном влане, например, в vlan 10.
vlan database
vlan 10 media ethernet state active
vlan 20 media ethernet state active
vlan 601 name IPTV media ethernet state active
!
mvr
mvr vlan 601
mvr receiver-vlan 10
!
interface ethernet 1/1
ip source-guard sip-mac
ip source-guard max-binding 3
switchport allowed vlan add 10 untagged
switchport native vlan 10
switchport allowed vlan remove 1
spanning-tree root-guard
spanning-tree bpdu-guard
mvr type receiver
mvr immediate
!
interface ethernet 1/25
ip dhcp snooping trust
switchport allowed vlan add 601,10 tagged
mvr type source
Здесь мы создаем влан в vlan database, включаем mvr, командой mvr type receiver
на пользовательском порту говорим, что это порт получателя, командой mvr type source
на аплинк порту настраиваем порт источника.
С помощью нехитрых протоколов и настроек мы можем предоставить пользователям такую замечательную вещь, как телевидение :)