Настройка IGMP snooping на Cisco

Приведу пример настройки IGMP snooping на Cisco, под рукой был коммутатор Cisco WS-C2960-24TT-L.

Первым делом переключимся в режим конфигурации:

enable
configure t

Читать далее Настройка IGMP snooping на Cisco

Настройка PIM на MikroTik

Приведу пример настройки PIM на двух маршрутизаторах MikroTik:

Настроим первый MikroTik.
Добавим pim интерфейс и проверим:

routing pim interface add
routing pim interface p

Добавим IP-адрес RP (этого MikroTik):

routing pim rp add address=IP-АДРЕС

Укажем с каких IP разрешен multicast трафик:

routing pim interface set alternative-subnets=238.0.0.0/24,239.0.0.0/24

Настроим второй MikroTik.
Добавим pim интерфейс на входящий WAN порт, у меня ether1:

routing pim interface add interface=ether1
routing pim interface p

Добавим IP-адрес RP (первого MikroTik):

routing pim rp add address=IP-АДРЕС

Укажем маршрут multicast источника: (первого MikroTik):

ip route add 239.0.0.0/24 via IP-АДРЕС

Все.

Настройка PIM на коммутаторах D-Link

На примере будет использоваться коммутатор D-Link DGS-3612G
Создадим vlan по которым будет приниматься и передаваться multicast трафик и обязательно назначим им интерфейсы с ip-адресом.

Далее включим pim и активируем его на интерфейсах через которые должен ходить мультикаст (на примере интерфейс pim по которому приходит мультикаст с cisco и pim-local который смотрит в сеть пользователей):

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 pim state enable hello 30 jp_interval 60 mode sm dr_priority 1
config pim cbsr ipif pim priority -1
config pim ipif pim-local state enable hello 30 jp_interval 60 mode sm dr_priority 1
config pim cbsr ipif pim-local priority -1

Добавим статический адрес RP, на D-Link DGS-3612G пришлось добавить два раза, так как с одним multicast хотел передаваться (вероятно баг прошивки коммутатора).

create pim static_rp group 239.0.0.0/8 rp 10.0.11.200
create pim static_rp group 239.0.0.0/16 rp 10.0.11.200

Пропишем статические маршруты к источнику мультикаста:

create iproute 10.0.11.200/255.255.255.255 192.168.24.157 1 primary
create ipmroute 10.0.11.200/32 rpf_address 192.168.24.157

Включим и настроим IGMP только на интерфейсе который смотрит к пользователям:

config igmp ipif pim-local version 2 query_interval 125 max_response_time 10 robustness_variable 2 state enable
config igmp ipif pim-local last_member_query_interval 1
config igmp check_subscriber_source_network ipif pim-local disable

На этом настройка завершена. На пользовательских коммутаторах можно настроить ISM VLAN и смотреть IPTV через VLC плеер.

Блокировка multicast ip адресов на коммутаторах D-Link

Для блокировки multicast ip адресов буду использовать ACL. На примере мультикастом вещается IPTV через D-Link DGS-3612G и допустим что некоторые каналы необходимо заблокировать, для этого создадим следующие ACL правила:

create access_profile profile_id 1 ip destination_ip_mask 255.255.255.255 udp dst_port_mask 0x0
config access_profile profile_id 1 add access_id auto_assign ip destination_ip 239.0.0.164 udp dst_port 4000  port 1-12 deny
config access_profile profile_id 1 add access_id auto_assign ip destination_ip 239.0.0.130 udp dst_port 4000  port 1-12 deny
config access_profile profile_id 1 add access_id auto_assign ip destination_ip 239.0.0.59 udp dst_port 4000  port 1-12 deny
config access_profile profile_id 1 add access_id auto_assign ip destination_ip 239.0.0.223 udp dst_port 4000  port 1-12 deny

На других моделях коммутаторов D-Link правила пишутся аналогичным образом.

Настройка PIM на коммутаторе HP A5800

Сначала сделаем копию конфигурационного файла на tftp сервер:

backup startup-configuration to 192.168.1.100

Для настройки PIM на коммутаторе HP A5800 подключимся к коммутатору через telnet и введем следующие команды:

1) Включим multicast маршрутизацию коммутаторе и pim-sm во vlan 963 который приходит от провайдера.

system-view
multicast routing-enable
interface Vlan-interface 963
ip address 172.24.24.158 255.255.255.252
pim sm
quit

2) Включим pim-sm и igmp во vlan 964 по которому будет транслироваться IPTV в локальную сеть.

interface Vlan-interface 964
ip address 172.25.25.25 255.255.192.0
pim sm
igmp enable
quit

3) Пропишем статический ip с которого вещается multicast.

pim
static-rp 10.0.200.200
quit

4) Добавим маршрут к ip с которого вещается multicast.

ip route-static 10.0.200.200 255.255.255.255 Vlan-interface963 172.24.24.157

5) Допустим что принимаем multicast по vlan 963 тегом.

interface Bridge-Aggregation1
port hybrid vlan 963 tagged

6) Настроим любой свободный порт для проверки iptv и подключим к нему компьютер например с запущенным плейлистом каналов в VLC плеере.

interface GigabitEthernet1/0/5
port access vlan 964

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

display pim interface
display pim interface verbose
display pim rp-info
display pim bsr-info
display pim neighbor
display pim routing-table
display igmp interface
display pim control-message counters
display pim claimed-route

Настройка IPTV на MikroTik

Изначально маршрутизаторы MikroTik идут без пакета multicast, поэтому его необходимо установить.
Скачиваем архив «All packages» с официального сайта http://www.mikrotik.com/download
Извлекаем из него файл multicast, он может называться например так «multicast-6.20-mipsbe.npk».
Подключаемся к маршрутизатору именно через winbox, слева в меню выбираем «Files» и ранее скачанный файл multicast мышкой перетаскиваем в открывшееся окно.
Далее с лева в меню выбираем «System» -> «Reboot». Маршрутизатор перегрузится и пакет multicast будет установлен.

После перезагрузки в меню должна появится новая опция «Routing» -> «IGMP Proxy», по ней и нажимаем.
В открывшемся окне добавим интерфейсы нажав «+» или «Add».
Первый откуда будет приниматься мультикаст трафик:
Interface: входящий wan порт от провайдера, например (ether1-gateway)
Threshold: 1
Alternative Subnets: диапазон IPTV каналов, например 238.1.1.0/24 или 0.0.0.0/0 для всех
И поставим галочку напротив «Upstream»
Второй куда будет транслироваться мультиткаст:
Interface: порт к IPTV приставке или компьютеру на котором будет воспроизводится IPTV, либо можно указать все порты в бридже, например (bridge-local)
Threshold: 1
Alternative Subnets: 0.0.0.0/0
Через командную строке это выглядит следующим образом:

routing igmp-proxy interface add alternative-subnets=0.0.0.0/0 comment="Upstream" disabled=no interface=ether1-gateway threshold=1 upstream=yes
routing igmp-proxy interface add alternative-subnets="" comment="Downstream" disabled=no interface=bridge-local threshold=1 upstream=no
routing igmp-proxy set quick-leave=yes

Последним штрихом будет добавление правил в фаервол:
Первое:
Chain: input
Protocol: igmp
Action: accept
Второе:
Chain: input
Protocol: udp
Dst.Port: порт c которого вещается iptv, если неизвестен, необходимо спросить у провайдера или посмотреть в плейлисте каналов
Action: accept
Правила обязательно должны быть выше запрещающих!
Через командную строке это выглядит следующим образом:

ip firewall filter add chain="input" action="accept" protocol="igmp" in-interface=ether1-gateway comment="Allow IGMP"
ip firewall filter add chain="input" action="accept" protocol="udp" in-interface=bridge-local

На этом все, IPTV должно работать, на компьютере его можно смотреть например через программу VLC, единственное необходимо иметь плейлист каналов или их multicast ip адреса.

Настройка коммутатора Foxgate S6224-S2

Приведу пример команд конфигурации коммутатора Foxgate-6224-S2, для других коммутаторов команды почти аналогичны.

Вход в режим конфигурации:

enable
config

hostname имя
sysLocation UA
sysContact admin@example.com

Шифруем все пароли:

service password-encryption

Включаем/выключаем доступ по telnet:

telnet-server enable
no telnet-server enable

Устанавливаем параметры вреени:

sntp polltime 14400
sntp server x.x.x.x
clock timezone Kiev add 2 0

Настроим snmp сервер:

snmp-server enable
snmp-server securityip 192.168.0.5
snmp-server securityip 172.16.99.99
snmp-server community ro 0 public

Настройка защиты от петель:

loopback-detection interval-time 5 3
loopback-detection control-recovery timeout 300
interface ethernet 1/1-24
loopback-detection control shutdown/block
exit
interface ethernet 1/26
loopback-detection control shutdown/block
exit
show loopback-detection
debug loopback-detection
no debug loopback-detection

Устанавиливаем пароль коммутатора:

enable password 0 пароль
Устанавливаем пароль пользователя:
username admin privilege 15 password 0 пароль
authentication line vty login local

Пример удаления пользователя:

no username имя

Включение веб-сервера:

ip http server 
authentication line web login local

Создаем отдельный vlan для управления:

vlan 5
name Core
!

Назначаем коммутатору IP в управляемом влане:

interface Vlan5
ip address 192.168.1.5 255.255.255.0
!

Указываем стандартный шлюз:

ip default-gateway 192.168.0.1

Удаление стандартного ip (обычно это 192.168.1.1) во vlan1:

interface Vlan1
no ip address
!
no interface vlan 1

Создаем vlan сети пользователей:

vlan 4
name Local
!

Создаем мультикаст vlan:

vlan 229
!

Настройка igmp snooping в качестве IPTV querier:

show ip igmp snooping

Включаем контроль мультикаст-потока:

multicast destination-control

Включаем igmp snooping:

ip igmp snooping

Указываем что vlan 229 является мультикастовым:

ip igmp snooping vlan 229

Включаем функцию querier:

ip igmp snooping vlan 229 l2-general-querier

Указываем что querier и есть наш коммутатор:

ip igmp snooping vlan 229 l2-general-querier-source 192.168.1.5

Включаем функцию immediately-leave:

ip igmp snooping vlan 229 immediately-leave

Указываем версию querier, 2 наиболее поддерживаемая, особенно клиентскими роутерами:

ip igmp snooping vlan 229 L2-general-querier-version 2
no ip igmp snooping vlan 229 limit
config t
ip igmp snooping vlan 229 limit group 300 source 200
ip igmp snooping vlan 229 query-interval 130
ip igmp snooping vlan 229 query-mrsp 18
ip igmp snooping vlan 229 query-robustness 3
ip igmp snooping vlan 229 report source-address 10.1.1.1
ip igmp snooping vlan 229 suppression-query-time 270

sh ip igmp snooping vlan 229 groups

Настройки портов:

Interface Ethernet0/0/1
storm-control broadcast 63
switchport access vlan 4
loopback-detection control shutdown
!
Interface Ethernet0/0/24
storm-control broadcast 63
switchport access vlan 229
loopback-detection control shutdown
!

Чтобы отключить или изменить режим скорости порта:

Interface Ethernet0/0/1
spped-duplex
!

25 порт делаем транковым так как он будет магистральным и по нему будет ходить несколько vlan:

Interface Ethernet0/0/25
switchport mode trunk
!

Выходим из режима config и сохраняем конфигурацию:

exit
write

Пример просмотра логов:

show logging buffered level warnings

Пример копирования конфигурации на tftp сервер:

copy startup.cfg tftp://192.168.1.1/foxgate_startup.cfg

Смотрите также:
Блокировка DHCP серверов на коммутаторах FoxGate
Как ловить широковещательный флуд на коммутаторах FoxGate