Глава 5. PIM-SSM: различия между версиями
м (→Config) |
|||
Строка 26: | Строка 26: | ||
==Как работает== | ==Как работает== | ||
*Получатель знает все источники и группы, к которым он может подписаться ( | *Получатель знает все источники и группы, к которым он может подписаться (может быть заранее полученный список каналов на приставке). | ||
*От получателя subscribe (S,G), используя IGMPv3 (include mode). | *От получателя subscribe (S,G), используя IGMPv3 (include mode). | ||
*DR на сегменте получателя шлет join (S,G) в сторону источника и начинает строить source-based tree. | *DR на сегменте получателя шлет join (S,G) в сторону источника и начинает строить source-based tree. |
Версия 14:46, 23 февраля 2017
ASM
- Нахождение источника - задача сети.
- PIM-DM: флуд от источника всем получателям. Из-за этого хранится много (S,G) => проблемы с масштабируемостью.
- PIM-SM: регистрация источника на RP. Более сложный механизм.
- Междоменный мультикаст: MSDP.
- Поддерживает несколько типов приложений:
- One-to-many
- Many-to-many
- Распределение адресного пространства - адреса групп должны быть уникальными в глобальной сети.
- Выделены блоки SDP/SAP, GLOP, Admin scoped.
SSM
- Нахождение источника - задача приложения у получателя.
- Получатель уже знает о необходимом источнике.
- Получатель подписывает на определенный канал - (S,G). Требуется IGMPv3. При этом для междоменного мультикаста больше не нужно использование MSDP. И RP, кажется, тоже.
- Использует часть PIM-SM функционала:
- Всегда используется (S,G) source-based tree.
- В основном использует 1 тип приложений: One-to-many
- Распределние адресного пространства:
- Выделен блок: 232/8.
- Один и тот же адрес группы может использоваться разными источниками на просторах всего интернета. Из-за этого усложнены DoS атаки.
Как работает
- Получатель знает все источники и группы, к которым он может подписаться (может быть заранее полученный список каналов на приставке).
- От получателя subscribe (S,G), используя IGMPv3 (include mode).
- DR на сегменте получателя шлет join (S,G) в сторону источника и начинает строить source-based tree.
- DR на сегменте источника как только получил join (S,G) - начинает слать трафик по shortest path tree (spt) к получателю.
Разница в терминологии
- Address identifier: (G) vs (S,G)
- Address destination: group vs channel
- Receiver protocol: IGMPv1,2,3 vs IGMPv3
- Receiver Operations: Join,Leave vs Subscribe/Unsubscribe
- Address range: 224/4, exclude 232/8 vs 232/8
Адресное пространство
SSM не работает с shared-tree. SSM не обрабатывает сообщения вида: (*,G).
Junos позволяет назначать другое поведение для адресных блоков:
- Добавлять адресное пространство для использования только SSM.
set routing-options multicast ssm-groups 227.0.0.0/24
- Позволяет ASM использовать SSM блок.
set routing-options multicast asm-override-ssm
IGMPv3 + SSM
ASM использует 1,2,3 версии протокола. Group joins не определяют конкретный источник. 3 версия предусматривает работу именно с (S,G), что не очень то подходит по ASM, поэтому для ASM IGMPv3 работает только в режиме exclude.
SSM использует только 3 версию. При подписке должны быть определены источник и группа. Этот функционал может обеспечить IGMPv3 include mode.
В IGMPv3 включены 2 новых опции:
- include (этот режим обеспечивает определение источника для группы => используется только SSM)
- exclude (этот режим позволяет исключать определенный источник из join сообщения => поддерживается ASM)
IGMPv3 работа получателя
- получатель отправляет membership report на DA = 224.0.0.22
membership report включает в себя 3 основных типа:
- current-state record: MODE_IS_INCLUDE, MODE_IS_EXCLUDE;
- filter-mode-change (когда происходит смена режима): CHANGE_TO_INCLUDE_MODE, CHANGE_TO_EXCLUDE_MODE;
- source-list-change (когда происходит подписка/отписка): ALLOW_NEW_SOURCES, BLOCK_OLD_SOURCES;
Для SSM модели используется только 3 операции:
- подписка: ALLOW_NEW_SOURCES
- поддержание подписки: MODE_IS_INCLUDE
- отписка: BLOCK_OLD_SOURCES
Типы Query
- general query ->224.0.0.1
- group-specific query
- group-source-specific-query (include source address).
PIM-SM + SSM
SSM это упрощенная форма PIM-SM. Используется только часть функционала от PIM-SM.
Блок 232/8 работает только с обменом сообщений для source-based tree. Никаких сообщений для shared-tree.
-Сегмент получателя (receiver DR):
- игнорируются любый (*,G) сообщения
- не должен отправлять (*,G) upstream роутерам
-Сегмент источника (source DR):
- не должен отправлять register сообщения к RP, когда получен трафик от источника.
-RP роутер:
- игнорирует register сообщения от source DR.
- игнорирует SA сообщения от MSDP пиров.
-Другие роутеры:
- игнорируют все (*,G) сообщения от downstream роутеров.
Вообще, PIM-SM позволяет использовать как ASM, так и SSM. В зависимости от получаемых сообщений и сконфигурированных SSM блоков, DR роутер устанавливает либо shared tree к RP, либо source-based tree к источнику.
Config
На интерфейсах к сторону получателей - IGMPv3. При этом на такие интерфейсы буду приходить и запросы от IGMPv1, v2, которые будет использовать для своей работы ASM.
-На сети нужен ASM + SSM: в этом случае конфиг должен быть как для стандартной PIM-SM модели с определенным RP discovery механизмом.
-На сети нужен только SSM: в этом случае нужно просто сконфигурировать все интерфейсы в sparse mode.
Для использования адресного пространства совместно:
set routing-options multicast ssm-groups 227.0.0.0/24 set routing-options multicast asm-override-ssm
Если получатели не поддерживают IGMPv3, SSM maps могут переделать join из (*,G) в (S,G):
1.
set policy-options policy-statement ssm-mapping-policy term 1 from route-filter 232.7.7.7/32 exact set policy-options policy-statement ssm-mapping-policy term 1 then accept
2.
set routing-options multicast ssm-map test policy ssm-mapping-policy set routing-options multicast ssm-map test source 192.168.100.10
3.
set protocols igmp interface ge-0/0/0.0 ssm-map test
result: (*, 232.7.7.7) -> (192.168.100.10, 232.7.7.7)
Для troubleshoting используются все те же команды.