Итак, господа, реальная схема работы iptv и мультикаста.
Есть несколько иптв-стримеров на базе писюков с двб-картами. Вещаются в общей сложности около 50 каналов - SD mpeg2-ts, с битрейтом около 3-6 мбит каждый
3627 №1 - работает как свич - собирает трафик с серваков, №2 - уже маршрутизатор (в частности и для этих тв-серваков когда они вещают униккастом). 10Гб кольцо используется для резервирования, мультикаст в принципе по нему пока ходит только по одной стороне получается (от №3 к №4 и от него №5)
3627 №5 - это уже типовой узел района, агрегатор, собирает цепочки из 3028/3052 (к которым уже непосредственно подключены клиенты) и маршрутизирует. При этом на каждом порту №5 3627 в сторону 30хх свой ип-интерфейс - т.е. принципиально нет такого, когда на одном порту 3627 навешано несколько виланов, и на каждом вилане есть ип-интерфейс.
Между всеми 3627 в сторону друг друга существует такая связь - один выделенный вилан, на нем пойнт-ту-пойнт сетка, и соответственно оспф посредством этого интерфейса
куски конфигов
#1
Код:
config multicast filtering_mode vlan_tvservers filter_unregistered_groups
enable igmp_snooping
config igmp_snooping vlan vlan_tvservers state enable fast_leave disable
config igmp_snooping querier vlan vlan_tvservers query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
config limited_multicast_addr ports 1-27 state disable
disable pim
#2
Код:
config multicast filtering_mode vlan_tvservers filter_unregistered_groups
config multicast filtering_mode OSPF-#2-#3-CORE filter_unregistered_groups
enable igmp_snooping
config igmp_snooping vlan vlan_tvservers state enable fast_leave disable
config igmp_snooping querier vlan vlan_tvservers query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
config igmp_snooping vlan OSPF-#2-#3-CORE state enable fast_leave disable
config igmp_snooping querier vlan OSPF-#2-#3-CORE query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
config igmp ipif IF_TVSERVERS version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif IF_TVSERVERS last_member_query_interval 1
config igmp ipif OSPF-#2-#3-CORE version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif OSPF-#2-#3-CORE last_member_query_interval 1
enable pim
config pim ipif IF_TVSERVERS state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif IF_TVSERVERS priority 1
config pim ipif OSPF-#2-#3-CORE state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif OSPF-#2-#3-CORE priority -1
disable dvmrp
#3
Код:
config multicast filtering_mode OSPF-#3-#4-CORE filter_unregistered_groups
config multicast filtering_mode OSPF-#2-#3-CORE filter_unregistered_groups
enable igmp_snooping
config igmp_snooping vlan OSPF-#3-#4-CORE state enable fast_leave disable
config igmp_snooping querier vlan OSPF-#3-#4-CORE query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
config igmp_snooping vlan OSPF-#2-#3-CORE state enable fast_leave disable
config igmp_snooping querier vlan OSPF-#2-#3-CORE query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
config igmp ipif OSPF-#3-#4-CORE version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif OSPF-#3-#4-CORE last_member_query_interval 1
config igmp ipif OSPF-#2-#3-CORE version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif OSPF-#2-#3-CORE last_member_query_interval 1
enable pim
config pim ipif OSPF-#3-#4-CORE state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif OSPF-#3-#4-CORE priority -1
config pim ipif OSPF-#2-#3-CORE state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif OSPF-#2-#3-CORE priority -1
disable dvmrp
#4
Код:
config multicast filtering_mode OSPF-#3-#4-CORE filter_unregistered_groups
config multicast filtering_mode OSPF-#4-#5-AREA filter_unregistered_groups
enable igmp_snooping
enable igmp_snooping forward_mcrouter_only
config igmp_snooping vlan OSPF-#3-#4-CORE host_timeout 260 router_timeout 260 leave_timer 2 state enable fast_leave disable
config igmp_snooping querier vlan OSPF-#3-#4-CORE query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable
config igmp_snooping vlan OSPF-#4-#5-AREA host_timeout 260 router_timeout 260 leave_timer 2 state enable fast_leave disable
config igmp_snooping querier vlan OSPF-#4-#5-AREA query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable
config igmp ipif OSPF-#3-#4-CORE version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif OSPF-#3-#4-CORE last_member_query_interval 1
config igmp ipif OSPF-#4-#5-AREA version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif OSPF-#4-#5-AREA last_member_query_interval 1
enable pim
config pim ipif OSPF-#3-#4-CORE state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif OSPF-#3-#4-CORE priority -1
config pim ipif OSPF-#4-#5-AREA state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif OSPF-#4-#5-AREA priority -1
disable dvmrp
#5
Код:
config multicast filtering_mode OSPF-#4-#5-AREA filter_unregistered_groups
config multicast filtering_mode AREA#5-HOME#1 filter_unregistered_groups
config multicast filtering_mode AREA#5-HOME#2 filter_unregistered_groups
...
config multicast filtering_mode AREA#5-HOME#20 filter_unregistered_groups
enable igmp_snooping
enable igmp_snooping forward_mcrouter_only
config igmp_snooping vlan OSPF-#4-#5-AREA state enable fast_leave disable
config igmp_snooping querier vlan OSPF-#4-#5-AREA query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
config igmp_snooping vlan AREA#5-HOME#1 state enable fast_leave disable
config igmp_snooping querier vlan AREA#5-HOME#1 query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
config igmp_snooping vlan AREA#5-HOME#2 state enable fast_leave disable
config igmp_snooping querier vlan AREA#5-HOME#2 query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
...
config igmp_snooping vlan AREA#5-HOME#20 state enable fast_leave disable
config igmp_snooping querier vlan AREA#5-HOME#20 query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable version 3
config igmp ipif OSPF-#4-#5-AREA version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif OSPF-#4-#5-AREA last_member_query_interval 1
config igmp ipif IF-HOME#1 version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif IF-HOME#1 last_member_query_interval 1
config igmp ipif IF-HOME#2 version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif IF-HOME#2 last_member_query_interval 1
...
config igmp ipif IF-HOME#20 version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif IF-HOME#20 last_member_query_interval 1
enable pim
config pim ipif OSPF-#4-#5-AREA state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif OSPF-#4-#5-AREA priority -1
config pim ipif IF-HOME#1 state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif IF-HOME#1 priority -1
config pim ipif IF-HOME#2 state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif IF-HOME#2 priority -1
...
config pim ipif IF-HOME#20 state enable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif IF-HOME#20 priority -1
disable dvmrp
и настройки типового 3028/3052 допустим для HOME#1 (все клиенты антегированы виланом AREA#5-HOME#1)
Код:
create mcast_filter_profile profile_id 1 profile_name IPTV
config max_mcast_group port 1 max_group 256
...
config max_mcast_group port 28 max_group 256
config mcast_filter_profile profile_id 1 add 239.250.0.0-239.250.0.100
config mcast_filter_profile profile_id 1 add 224.2.127.254
config mcast_filter_profile profile_id 1 add 239.251.0.1-239.251.0.50
config limited_multicast_addr ports 1 add profile_id 1
...
config limited_multicast_addr ports 24 add profile_id 1
config limited_multicast_addr ports 25 delete profile_id 1
config limited_multicast_addr ports 26 delete profile_id 1
config limited_multicast_addr ports 27 delete profile_id 1
config limited_multicast_addr ports 28 delete profile_id 1
enable igmp_snooping forward_mcrouter_only
config igmp_snooping data_driven_learning max_learned_entry 56
config igmp_snooping querier all query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state disable
config igmp_snooping vlan_name AREA#5-HOME#1 host_timeout 260 router_timeout 260 leave_timer 2 state enable fast_leave disable
config igmp_snooping data_driven_learning vlan_name AREA#5-HOME#1 aged_out disable
config igmp_snooping querier vlan_name AREA#5-HOME#1 query_interval 125 max_response_time 10 robustness_variable 2 last_member_query_interval 1 state enable
config igmp access_authentication port 1 state disable
...
config igmp access_authentication port 28 state disable
Подозреваю несмотря на то что все вроде бы работает - подозреваю что мог в чем то ошибится и быть неправым - пните пожалуйста по почкам...
По крайней мере вылезла такая проблема - при вещании 20 каналов - вроде бы все нормально, но как только начинается вещание всех каналов в мультикасте - почему то начинаются терятся пинги именно на 3627 #3 (в принципе сама сеть вроде не тормозит, но от греха подальше долго наблюдать за этим не стали просто оставили только 20 каналов). Железка то в принципе конечно нагружена, но 100мбит мультикаста как то на фоне по крайней мере 3-х десяточек загруженных по 2-3-5гбит - вроде кажутся не сильной добавкой.... хотя конечно это мультикаст... - может железка посерьезней типа 72хх помочь? Или это все-тки глюки этой схемы и сделано в корне неправильно?
И еще вопрос ко всезнающим гуру - вот захочу я зарезервировать пару каналов (типа ОРТ, РТР, СТС, ТНТ и т.д.) - можно мне будет просто на другом сервере вещать в ту же мультикаст группу, например 239.250.0.1 - это же 3627 #2 будет решать от какого сервера брать трафик?