Добрый день!
Имеется такая проблема.
У нас в сети пока мы пока в тестовом режиме решили настроить ip-tv. Вещание идёт по 6-ти мультикастовым адресам: 225.1.75.1, 225.1.75.2, 225.1.75.3, 225.1.75.4, 225.1.75.5 и 225.1.75.6. С сервера потоки идут непрерывно, постоянно просматриваю процессы.
Сеть построена по такому принципу:
1. Основные агрегирующие узлы - DGS3627G (прошивки могут быть разные, но все более-менее последние).
2. Топология типа звезда, правда в некоторых районах есть кольца для подстраховки.
3. От АГ идут коммутаторы в большинстве своем DES-3026 или DES-3028, либо zyxel, но не в них суть.
Покажу один из районов, усложненный кольцом. Схема примерно такая:
core - коммутатор ядра, к нему подсоединен ip-tv server. Прошивка 2.40.B75.
ag01, ag02, ag03 и ag04 - агрегирующие узлы. Прошивки: 2.40-B46, 2.40-B72.
Для настройки мультикаст-вещания использовали, как тогда сказали, один из самых простых вариантов. Вот часть конфига ag01, у остальных аналогично:
Код:
# IGMP
config igmp ipif System version 3 query_interval 125 max_response_time 10 robustness_variable 2 state disable
config igmp ipif System last_member_query_interval 1
config igmp ipif if10ip1 version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif if10ip1 last_member_query_interval 1
config igmp ipif if11ip1 version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif if11ip1 last_member_query_interval 1
config igmp ipif if12ip1 version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif if12ip1 last_member_query_interval 1
config igmp ipif if13ip1 version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif if13ip1 last_member_query_interval 1
config igmp ipif if164ip1 version 3 query_interval 125 max_response_time 10 robustness_variable 2 state disable
config igmp ipif if164ip1 last_member_query_interval 1
config igmp ipif if23ip1 version 3 query_interval 125 max_response_time 10 robustness_variable 2 state disable
config igmp ipif if23ip1 last_member_query_interval 1
config igmp ipif if25ip1 version 3 query_interval 125 max_response_time 10 robustness_variable 2 state disable
config igmp ipif if25ip1 last_member_query_interval 1
config igmp ipif if26 version 3 query_interval 125 max_response_time 10 robustness_variable 2 state disable
config igmp ipif if26 last_member_query_interval 1
# PIMSM
enable pim
config pim cbsr hash_masklen 30
config pim cbsr bootstrap_period 60
config pim register_suppression_time 60
config pim register_probe_time 5
config pim last_hop_spt_switchover never
config pim crp holdtime 150 priority 192
config pim crp wildcard_prefix_cnt 0
config pim ipif System state disable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif System priority -1
config pim ipif if10ip1 state enable hello 30 jp_interval 60 mode sm-dm dr_priority 1
config pim cbsr ipif if10ip1 priority -1
config pim ipif if11ip1 state enable hello 30 jp_interval 60 mode sm-dm dr_priority 1
config pim cbsr ipif if11ip1 priority -1
config pim ipif if12ip1 state enable hello 30 jp_interval 60 mode sm-dm dr_priority 1
config pim cbsr ipif if12ip1 priority -1
config pim ipif if13ip1 state enable hello 30 jp_interval 60 mode sm-dm dr_priority 1
config pim cbsr ipif if13ip1 priority -1
config pim ipif if164ip1 state disable hello 30 jp_interval 60 mode dm dr_priority 1
config pim cbsr ipif if164ip1 priority -1
config pim ipif if23ip1 state enable hello 30 jp_interval 60 mode sm-dm dr_priority 1
config pim cbsr ipif if23ip1 priority -1
config pim ipif if25ip1 state enable hello 30 jp_interval 60 mode sm-dm dr_priority 1
config pim cbsr ipif if25ip1 priority -1
config pim ipif if26 state enable hello 30 jp_interval 60 mode sm-dm dr_priority 1
config pim cbsr ipif if26 priority -1
ipif ifNip1 соответствует влан с тэгом N.
10, 11, 12, 13 вланы - пользовательские, в них и идёт вещание.
164 влан - управляющий для коммутаторов в домах и, по-моему, роли не играет.
23, 25, 26 - вланы между АГ, которые каждая друг с другом соединены 30-битной сеткой.
Получаем, что
1. PIM в SM-DM включен между АГ и для пользовательских подсетей.
2. IGMP включен для пользовательских подсетей, версия 2.
3. igmp_snooping выключен (он включен на домовых коммутаторах DES-3026 и DES-3028).
4. multicast filtering_mode пробовали все варианты.
После кучи первых настроек всё заработало идеально, первый месяц, потом вдруг начали жаловаться, что частично не показывают каналы.
Получили такую информацию:
show pim neighbor всегда выдавал, что всё чётко и PIM между всеми работает, но
на
COREКод:
DGS-3627G:5#show igmp_snooping forwarding
Command: show igmp_snooping forwarding
VLAN Name : vlan97
Source IP : 10.32.253.1
Multicast Group : 225.1.75.1
Port Member : 26
VLAN Name : vlan97
Source IP : 10.32.253.1
Multicast Group : 225.1.75.2
Port Member : 1-4,6,10,21-22,26
VLAN Name : vlan97
Source IP : 10.32.253.1
Multicast Group : 225.1.75.3
Port Member : 2,21,26
VLAN Name : vlan97
Source IP : 10.32.253.1
Multicast Group : 225.1.75.4
Port Member : 2,21,26
VLAN Name : vlan97
Source IP : 10.32.253.1
Multicast Group : 225.1.75.5
Port Member : 1,21,26
VLAN Name : vlan97
Source IP : 10.32.253.1
Multicast Group : 225.1.75.6
Port Member : 2,10,21-22,26
DGS-3627G:5#show ipmc cache
Command: show ipmc cache
Multicast Source Address/Netmask Upstream Expire Routing
Group Neighbor Time Protocol
--------------- ---------------------- --------------- ------ ---------
225.1.75.1 10.32.253.1/32 10.32.1.241 82 PIM-DM
225.1.75.2 10.32.253.1/32 10.32.1.241 132 PIM-DM
225.1.75.3 10.32.253.1/32 10.32.1.241 194 PIM-DM
225.1.75.4 10.32.253.1/32 10.32.1.241 169 PIM-DM
225.1.75.5 10.32.253.1/32 10.32.1.241 206 PIM-DM
225.1.75.6 10.32.253.1/32 10.32.1.241 203 PIM-DM
на
ag01Код:
DGS-3627G:5#show igmp_snooping forwarding
Command: show igmp_snooping forwarding
VLAN Name : vlan26
Source IP : 10.32.253.1
Multicast Group : 225.1.75.2
Port Member :
VLAN Name : vlan26
Source IP : 10.32.253.1
Multicast Group : 225.1.75.3
Port Member :
VLAN Name : vlan26
Source IP : 10.32.253.1
Multicast Group : 225.1.75.4
Port Member :
DGS-3627G:5#show ipmc cache
Command: show ipmc cache
Multicast Source Address/Netmask Upstream Expire Routing
Group Neighbor Time Protocol
--------------- ---------------------- --------------- ------ ---------
225.1.75.2 10.32.253.1/32 10.32.1.25 76 PIM-DM
225.1.75.3 10.32.253.1/32 10.32.1.25 101 PIM-DM
225.1.75.4 10.32.253.1/32 10.32.1.25 106 PIM-DM
Получается, что 3 потока не дошли. После долгих мучений, логичных и совсем нелогичных, и перепробывания уже не самой простой конфигурации, выяснилось, что достаточно просто выключить и включить PIM на ag01. После этого все начинало работать... ещё пару недель.
Вопрос: что мы сделали не так? Может ли на это влиять кольцо? Может, поток где-то начинает крутиться по кругу и умирает постепенно? (к слову на сервере ttl=24) Но в том районе, где есть кольцо только по OSPF, а PIM включен только наверх, в сторону ядра, проблема наблюдается ничуть не реже.
Если нужны целиком конфиги или дополнительная информация по архитектуре, можно добавить.