У нас есть следующая топология: 3
маршрутизатора (AR1, AR2 и AR3), между ними мы настроим OSPF. Так же есть хост (192.168.2.10)
и мультикаст сервер (MCS1, 192.168.1.10), который будет транслировать поток на широковещательный
адрес 224.1.1.1.
Передача multicast работает по протоколу PIM (Protocol Independent Multicast). Этот протокол составляет
свою таблицу маршрутизации multicast на основе обычной таблицы маршрутизации. Есть 2 режима работы данного
протокола:
1. dense mode – когда маршрут прокладывается непосредственно от источника до получателя (предложение вещания потоков, зарегистрированных на маршрутизаторе, идет всем, а затем отсекаются те, кому оно не нужно).
2. sparse mode – маршрут прокладывается только до так называемой точки рандеву RP (Rendezvous point). Трансляция потока начинается, только если есть запрос от клиента.
В данном примере рассмотрим dense mode. Перейдем к настройке:
AR1
interface GigabitEthernet 0/0/1
ip address 192.168.1.1 255.255.255.0
interface GigabitEthernet 0/0/0
ip address 1.1.1.1 255.255.255.252
ospf
area 0
network 192.168.1.0 0.0.0.255
network 1.1.1.0 0.0.0.255
AR2
interface GigabitEthernet 0/0/0
ip address 1.1.1.2 255.255.255.252
interface GigabitEthernet 0/0/1
ip address 2.2.2.2 255.255.255.252
ospf
area 0
network 1.1.1.0 0.0.0.255
network 2.2.2.0 0.0.0.255
AR3
interface GigabitEthernet 0/0/1
ip address 2.2.2.1 255.255.255.252
interface GigabitEthernet 0/0/2
ip address 192.168.2.1 255.255.255.0
ospf
area 0
network 2.2.2.0 0.0.0.255
network 192.168.2.0 0.0.0.255
Хотя PIM является протоколом многоадресной маршрутизации внутри домена,RPF проверка всегда выполняется на основе IGP, в нашем случае это OSPF. Поэтому нужно помнить, что любая проблема в OSPF вызывает проблему в многоадресной рассылке.
Далее при помощи следующей команды активируем мультикаст на всех маршрутизаторах:
multicast routing-enable
И наконец, включаем PIM на каждом интерфейсе:
AR1
interface GigabitEthernet 0/0/1
pim dm
igmp enable
interface GigabitEthernet 0/0/0
pim dm
AR2
interface GigabitEthernet 0/0/0
pim dm
interface GigabitEthernet 0/0/1
pim dm
AR3
interface GigabitEthernet 0/0/1
pim dm
interface GigabitEthernet 0/0/2
pim dm
igmp enable
Принадлежность того или иного клиента к определенной группе «вещания» отслеживается протоколомIGMP (Internet Group Management Protocol). Поэтому, кроме протокола PIM DM, нам необходимо настроить IGMP на интерфейсах, которые смотрят в сторону конечных устройств.
На этом настройка dense-mode протокола PIMокончена. Можем переходить к проверке, для примера возьмем маршрутизатор AR1:
[AR1] display pim interface
VPN-Instance: public net
Interface State NbrCnt HelloInt DR-Pri DR-Address
GE0/0/0 up 1 30 1 1.1.1.2
GE0/0/1 up 0 30 1 192.168.1.1 (local)
[AR1] display pim neighbor
VPN-Instance: public net
Total Number of Neighbors = 1
Neighbor Interface Uptime Expires Dr-Priority BFD-Session
1.1.1.2 GE0/0/0 01:16:18 00:01:28 1 N
[AR1] display igmp interface
Interface information of VPN-Instance: public net
GigabitEthernet0/0/1(192.168.1.1):
IGMP is enabled
Current IGMP version is 2
IGMP state: up
IGMP group policy: none
IGMP limit: -
Value of query interval for IGMP (negotiated): -
Value of query interval for IGMP (configured): 60 s
Value of other querier timeout for IGMP: 0 s
Value of maximum query response time for IGMP: 10 s
Querier for IGMP: 192.168.1.1 (this router)
А теперь запустим широковещательный поток с MCS1 на адрес 224.1.1.1 и проверим широковещательную таблицу маршрутизации:
[AR1] display pim routing-table
VPN-Instance: public net
Total 0 (*, G) entry; 1 (S, G) entry
(192.168.1.10, 224.1.1.1)
Protocol: pim-dm, Flag: LOC ACT
UpTime: 00:01:55
Upstream interface: GigabitEthernet0/0/1
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet0/0/0
Protocol: pim-dm, UpTime: 00:00:40, Expires: never
[AR2] display pim routing-table
VPN-Instance: public net
Total 0 (*, G) entry; 1 (S, G) entry
(192.168.1.10, 224.1.1.1)
Protocol: pim-dm, Flag: ACT
UpTime: 00:01:27
Upstream interface: GigabitEthernet0/0/0
Upstream neighbor: 1.1.1.1
RPF prime neighbor: 1.1.1.1
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet0/0/1
Protocol: pim-dm, UpTime: 00:00:20, Expires: never
[AR3] display pim routing-table
VPN-Instance: public net
Total 1 (*, G) entry; 1 (S, G) entry
(*, 224.1.1.1)
Protocol: pim-dm, Flag: WC
UpTime: 00:00:31
Upstream interface: NULL
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet0/0/2
Protocol: igmp, UpTime: 00:00:31, Expires: never
(192.168.1.10, 224.1.1.1)
Protocol: pim-dm, Flag: ACT
UpTime: 00:01:38
Upstream interface: GigabitEthernet0/0/1
Upstream neighbor: 2.2.2.2
RPF prime neighbor: 2.2.2.2
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet0/0/2
Protocol: pim-dm, UpTime: 00:00:31, Expires: -
Когда широковещательные пакеты рассылаются на группу, источник (в нашем случае MCS1) формирует SPT (shortest-path tree) и на маршрутизаторах, которые попадают в этот маршрут, появляются (S,G) записи. Когда получатель (PC1) присоединяется к группе, на маршрутизаторах появляются (*,G) записи.