Коммутаторы : Коммутаторы Cisco Catalyst серии 6500

Многоадресная рассылка не функционирует внутри VLAN в коммутаторах Catalyst

11 августа 2008 - Перевод, выполненный профессиональным переводчиком
Другие версии: PDF-версия:pdf | Машинный перевод (28 июля 2013) | Английский (16 ноября 2006) | Отзыв

Содержание

Введение
Предварительные условия
     Требования
     Используемые компоненты
     Соответствующие продукты
     Условные обозначения
Проблема
Повторный обзор некоторых ключевых принципов многоадресной рассылки
     Протокол IGMP
     Функция отслеживания IGMP
     Порт Mrouter
     Многоадресная рассылка на L2
Общие сведения о проблеме и ее решения
Решения
     Решение 1: Включить PIM на уровне 3 маршрутизатора/интерфейса VLAN
     Решение 2: Включить функцию опроса IGMP на коммутаторе Catalyst уровня 2
     Решение 3: Настроить статический порт Mrouter на коммутаторе
     Решение 4: Настроить статические многоадресные MAC-записи на всех коммутаторах
     Решение 5: Отключить функцию отслеживания IGMP на всех коммутаторах
Связанные обсуждения сообщества поддержки Cisco
Дополнительные сведения

Введение

В данном документе описана общая проблема, которая возникает при первом развертывании многоадресного приложения в сети коммутатора Cisco Catalyst, когда происходит сбой в работе многоадресной рассылки. Кроме того, если не настроить коммутаторы соответствующим образом, в работе некоторых серверов/приложений, которые используют многоадресные пакеты для работы в кластере/с высокой доступностью, происходит сбой. В этом документе рассмотрена и эта проблема.

Предварительные условия

Требования

Для данного документа нет особых требований.

Используемые компоненты

Сведения, содержащиеся в данном документе, касаются следующих версий программного и аппаратного обеспечения:

  • Catalyst 6500 с модулем управления Supervisor Engine 720 с ПО Cisco IOS® версии 12.2(18)SXD5

  • Catalyst 3750 с образом ПО Cisco IOS версии 12.2(25)SEB2

Данные для документа были получены в специально созданных лабораторных условиях. Все устройства, используемые в этом документе, были запущены с чистой (заданной по умолчанию) конфигурацией. Если ваша сеть работает в реальных условиях, убедитесь, что вы понимаете потенциальное воздействие каждой команды.

Соответствующие продукты

Этот документ может также использоваться со следующими версиями оборудования и программного обеспечения:

Условные обозначения

Подробные сведения о применяемых в документе обозначениях см. в разделе Условные обозначения, используемые в технической документации Cisco.

Проблема

Многоадресный трафик не проходит через коммутаторы Catalyst, даже внутри одной VLAN. На Рис.1 изображен типичный сценарий:

Рис. 1. Настройка сети с многоадресным источником и получателями

cat_multicast_prob.gif

Многоадресный источник подключается к коммутатору 1, который является коммутатором Catalyst 6500 с модулем управления Supervisor Engine 720 с ПО Cisco IOS. Получатель 1 подключается к коммутатору 1, а получатель 2 подключается к коммутатору 2. Коммутатор 2 – это коммутатор Catalyst 3750. Между коммутатором 1 и коммутатором 2 существует соединение уровня 2, доступ или магистраль.

В данной настройке можно заметить, что получатель 1, который находится на одном коммутаторе с источником, получает многоадресный поток без затруднений. Однако получатель 2 не получает многоадресного трафика. Цель данного документа – устранить данную проблему.

Повторный обзор некоторый ключевых принципов многоадресной рассылки

До получения различных вариантов решения данной проблемы, вы должны четко представлять себе определенные принципы многоадресной рассылки уровня 2. В данном разделе описаны эти принципы.

Примечание. В данном разделе приведено простое и четкое объяснение, касающееся данной конкретной проблемы. Подробное объяснение этих терминов см. в разделе Дополнительные сведения данного документа.

Протокол IGMP

IGMP – это протокол, который обязывает конечные хосты (получатели) сообщить многоадресному маршрутизатору (опросчику IGMP) о намерении конечного хоста получать определенный многоадресный трафик. То есть, это протокол, использующийся между маршрутизатором и конечными хостами и позволяющий:

  • Маршрутизаторам запрашивать конечные хосты о потребности в определенном многоадресном потоке (запрос IGMP)

  • Конечным хостам сообщать и отвечать маршрутизатору о потребности в определенном многоадресном потоке (отчеты IGMP)

Функция отслеживания IGMP

Функция отслеживания IGMP – это механизм посылки многоадресного трафика только на те порты, к которым подключены получатели. Данный механизм увеличивает эффективность, так как он позволяет коммутатору уровня 2 избирательно рассылать многоадресные пакеты только на те порты, которые в них нуждаются. Без функции отслеживания IGMP маршрутизатор отправляет пакеты на каждый порт. Коммутатор следит за обменом сообщениями IGMP между маршрутизатором и конечными хостами. В данном случае коммутатор создает таблицу отслеживания IGMP, в которой присутствует список всех портов, которые запросили определенную группу многоадресной передачи.

Порт Mrouter

Порт mrouter – это порт с точки зрения коммутатора, который подключается к многоадресному маршрутизатору. Необходимо присутствие, по крайней мере, одного порта mrouter для работы коммутаторов по отслеживанию IGMP. Это требование подробно описано в разделе Общие сведения о проблеме и ее решения данного документа.

Многоадресная рассылка на L2

Любой IP-трафик версии 4 (IPv4) с IP-адресом назначения в диапазоне от 224.0.0.0 до 239.255.255.255 является многоадресным потоком. Все многоадресные пакеты IPv4 соответствуют предварительно определенному MAC-адресу IEEE с форматом 01.00.5e.xx.xx.xx.

Примечание. Функция отслеживания IGMP действует в случае, если MAC-адреса многоадресной рассылки соответствуют IEEE-совместимому MAC-диапазону. Согласно разработке данной функции, отслеживание некоторых зарезервированных диапазонов многоадресной рассылки не предполагается. Если не соответствующий критериям многоадресный пакет исходит из коммутируемой сети, он отправляется через эту VLAN, где расценивается как широковещательный трафик.

Общие сведения о проблеме и ее решения

В коммутаторах Catalyst функция отслеживания IGMP включена по умолчанию. С помощью данной функции коммутатор отслеживает (или слушает) сообщения IGMP на всех портах. В коммутаторе создается таблица отслеживания IGMP, в которой группа многоадресной рассылки сопоставляется всем портам коммутатора, которые ее запросили.

Предположим, что, безо всякой предварительной настройки, получатель 1 и получатель 2 сообщили о своем намерении получать многоадресный поток для 239.239.239.239, который соответствует MAC-адресу многоадресной рассылки на L2 01.00.5e.6f.ef.ef. Коммутатор 1 и коммутатор 2 создают единую запись в таблице отслеживания для данных получателей в ответ на отчеты IGMP, которые генерируют получатели. Коммутатор 1 входит на порт Gigabit Ethernet 2/48 в своей таблице, а коммутатор 2 входит на порт Fast Ethernet 1/0/47 в своей таблице.

Примечание. На данном этапе источник многоадресной рассылки еще не начал передачу, и ни один из коммутаторов не знает о порте mrouter коммутатора.

Если источник на коммутаторе 1 начинает пересылать многоадресный трафик, коммутатор 1 "видит" отчет IGMP от получателя 1. В результате, коммутатор 1 отправляет многоадресную рассылку из порта Gigabit Ethernet 2/48. Так как коммутатор 2 "поглотил" отчет IGMP от получателя 2 в результате процесса отслеживания IGMP, коммутатор 1 не "видит" отчет IGMP (многоадресный запрос) на порте Gigabit Ethernet 2/46. В результате, коммутатор 1 не отправляет трафик многоадресной рассылки на коммутатор 2. Таким образом, получатель 2 никогда не получит трафик многоадресной рассылки, даже если получатель 2 находится в той же сети VLAN, только на другом коммутаторе в отличие от источника многоадресной рассылки.

Причина данной проблемы состоит в том, что функция отслеживания IGMP не поддерживается на платформах Catalyst без mrouter. Механизм "ломается" при отсутствии порта mrouter. Чтобы данное решение заработало, коммутаторам необходимо как-то получить сведения о порте mrouter. В разделе Решения данного документа объясняется эта процедура. Как присутствие порта mrouter на коммутаторах исправит данную ситуацию?

В основном, если данные о порте mrouter внесены в коммутатор, происходит следующее:

  • Коммутатор направляет отчеты IGMP от получателей к порту mrouter. Это означает, что отчеты IGMP отправляются на многоадресный маршрутизатор. Коммутатор не отправляет все отчеты IGMP. Вместо этого коммутатор отправляет только несколько отчетов на mrouter. Количество отчетов в данном случае неважно. Для многоадресного маршрутизатора только необходимы сведения об одном получателе, для которого необходим многоадресный нисходящий поток. Для определения этого, многоадресный маршрутизатор получает периодические отчеты IGMP в ответ на свои запросы IGMP.

  • В сценарии, предназначенном только для многоадресного источника, к которому еще не "присоединились" получатели, коммутатор отправляет многоадресный поток только через свой порт mrouter.

Если коммутаторы получают сведения о порте mrouter, коммутатор 2 пересылает отчет IGMP, который он получил от получателя 2, на свой порт mrouter. Это порт Fast Ethernet 1/0/33. Коммутатор 1 получает отчет IGMP на порт коммутатора Gigabit Ethernet 2/46. С позиции коммутатора 1 он просто получил еще один отчет IGMP. Коммутатор добавляет этот порт в таблицу отслеживания IGMP и начинает отправлять многоадресный трафик и на этот порт. На данном этапе оба коммутатора получают запрошенный многоадресный трафик, и приложение работает должным образом.

Как же коммутаторы определяют порт mrouter так, чтобы функция отслеживания IGMP работала также, как и в простой среде? В разделе Решения содержится несколько ответов.

Решения

Используйте следующие решения, чтобы устранить данную проблемы.

Решение 1: Включить PIM на уровне 3 маршрутизатора/интерфейса VLAN

На всех платформах Catalyst есть возможность динамически получать сведения о порте mrouter. Коммутаторы слушают либо приветствия не зависящей от протокола многоaдресной рассылки (PIM), либо сообщения с запросами IGMP, которые многоадресный маршрутизатор периодически рассылает.

В данном примере приведен пример конфигурации коммутируемого виртуального интерфейса (SVI) VLAN 1 на коммутаторе Catalyst 6500 с помощью ip pim sparse-dense-mode.

Switch1#show run interface vlan 1
!
interface Vlan1
 ip address 1.1.1.1 255.255.255.0
 ip pim sparse-dense-mode
end

Switch 1 now reflects itself (Actually the internal router port) as an Mrouter port. 

Switch1#show ip igmp snooping mrouter 
vlan            ports
-----+----------------------------------------
   1  Router

Switch 2 receives the same PIM hellos on its Fa 1/0/33 interface. So it assigns that 
port as its Mrouter port.

Switch2#show ip igmp snooping mrouter 
Vlan    ports
----    -----
   1    Fa1/0/33(dynamic)

Решение 2: Включить функцию опроса IGMP на коммутаторе Catalyst уровня 2

Опрос IGMP – это относительно новая функция на коммутаторах уровня 2. Если в сети/VLAN нет маршрутизатора, который выступает в роли многоадресного маршрутизатора и позволяет коммутаторам обнаружить порт mrouter, можно включить функцию опроса IGMP. Данная функция позволяет коммутатору уровня 2 работать вместо многоадресного маршрутизатора и рассылать периодические запросы IGMP в сеть. С помощью данного действия коммутатор рассматривает себя как порт mrouter. Оставшиеся коммутаторы в сети определяют свои соответствующие порты mrouter на основание интерфейса, на который они получили данный запрос IGMP.

Switch2(config)#ip igmp snooping querier

Switch2#show ip igmp snooping querier 
Vlan      IP Address     IGMP Version   Port               
-------------------------------------------------------------
1         1.1.1.2        v2             Switch

Сейчас коммутатор 1 "видит" порт Gig 2/46, связанный с коммутатором Switch 2, в качестве порта mrouter.

Switch1#show ip igmp snooping mrouter 
vlan            ports
-----+----------------------------------------
   1  Gi2/46

Если источник на коммутаторе 1 начинает пересылать многоадресный трафик, коммутатор 1 направляет его получателю 1, найденному с помощью функции отслеживания IGMP (напр., из порта Gig 2/48), а также на порт mrouter (напр., из порта Gig 2/46).

Решение 3: Настроить статический порт мrouter на коммутаторе

Внутри VLAN уровня 2 происходит сбой многоадресного трафика из-за отсутствия порта mrouter на коммутаторах, как описано в разделе Общие сведения о проблеме и ее решения. Если статически настроить порт mrouter на всех коммутаторах, отчеты IGMP в этой VLAN можно направить на все коммутаторы. В результате процесс многоадресной рассылки возможен. Поэтому в данном примере необходимо статически настроить коммутатор Catalyst 3750 с Fast Ethernet 1/0/33 в качестве порта mrouter.

В этом примере статический порт mrouter необходим только на коммутаторе 2:

Switch2(config)#ip igmp snooping vlan 1 mrouter interface fastethernet 1/0/33

Switch2#show ip igmp snooping mrouter
Vlan    ports
----    -----
   1    Fa1/0/33(static)

Решение 4: Настроить статические многоадресные MAC-записи на всех коммутаторах

Можно сделать статическую запись контекстно-адресуемой памяти (CAM) для MAC-адреса многоадресной рассылки на всех коммутаторах для всех портов получателей и нисходящих портах коммутаторов. Коммутатор подчиняется правилам статической записи CAM и отправляет пакет на все интерфейсы, указанные в таблице CAM. Это наиболее трудоемкое решение для среды с большим количеством многоадресных приложений.

Switch1(config)#mac-address-table static 0100.5e6f.efef vlan 1 interface 
gigabitethernet 2/46 gigabitethernet 2/48
!--- Примечание. Эта команда должна быть записана в одну строчку.

Switch1#show mac-address-table multicast vlan 1

 vlan   mac address     type   learn qos             ports
-----+---------------+--------+-----+---+--------------------------------
   1  0100.5e6f.efef    static  Yes          -   Gi2/46,Gi2/48


Switch2(config)#mac-address-table static 0100.5e6f.efef vlan 1 interface 
fastethernet 1/0/47
!--- Примечание. Эта команда должна быть записана в одну строчку.

Switch2#show mac-address-table multicast vlan 1
Vlan    Mac Address       Type       Ports
----    -----------       ----       -----
   1    0100.5e6f.efef    USER        Fa1/0/47

Решение 5: Отключить функцию отслеживания IGMP на всех коммутаторах

Если отключить функцию отслеживания IGMP, все коммутаторы будут рассматривать многоадресный трафик в качестве широковещательного трафика. Это приведет к лавинной пересылке трафика на все порты в данной VLAN вне зависимости от того, есть ли на портах получатели, интересующиеся данным многоадресным потоком.

Switch1(config)#no ip igmp snooping

Switch2(config)#no ip igmp snooping

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 68131