Jump to content
Калькуляторы

безопасность вещания в multicast как бороться с чужим вещанием на тот же адрес?

Доброго дня!

 

Вот внедряем iptv и по ходу дела возник такой вопрос: что если кто-то из клиентов возьмет и запустит мультикастинг на тот же самый адрес, что и у одного из наших каналов? Причины могут быть разные: от незнания - до желания напакостить. Конечно, узнав о таком случае легко найти левый источник и просто отключить его, но это уже решение проблемы, а хотелось бы ее вообще избежать.

Что посоветуете? Как вообще с этим бороться?

 

Share this post


Link to post
Share on other sites

ACL multicast (например на DES-3526/3550)

Share this post


Link to post
Share on other sites

MVR , на Д-Линке оно зовётся ISM

Share this post


Link to post
Share on other sites

На DES-3526 (25 порт аплинк, работает в версиях начиная с 6.хх.хх):

 

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

create multicast_range 1 from 224.0.0.1 to 224.0.0.2 (Служебный диапазон, требуется для подключения к IGMP группе)

create multicast_range 2 from 234.1.1.1 to 234.1.1.255 (сеть вещания)

create multicast_range 3 from 239.255.0.1 to 239.255.3.255 (сеть вещания)

 

Разрешаем сети на клиентских портах

config limited_multicast_addr ports 1-24 add multicast_range 1

config limited_multicast_addr ports 1-24 add multicast_range 2

config limited_multicast_addr ports 1-24 add multicast_range 3

config limited_multicast_addr ports 1-24 access permit state enable

 

Выключаем фильтеринг на аплинке (на всякий случай)

config limited_multicast_addr ports 25,26 access deny state disable

 

=== Вот на этом месте клиенты еще могут что-то вещать на диапазонах указанных выше

 

Выключаем всю фигню которая может идти от клиентов:

config cpu_filter l3_control_pkt 1-26 rip ospf vrrp pim dvmrp igmp_query state enable

Включаем на аплинке, единственно что из вышеописанной фигни может потребоватся клиентам:

config cpu_filter l3_control_pkt 25 igmp_query state disable

 

=== Вот на этом месте уже не могут, вернее к их группам никто не сможет подписаться.

 

Конфигурим снупинг:

config multicast port_filtering_mode all filter_unregistered_groups

config multicast port_filtering_mode 25 forward_unregistered_groups

 

Включаем снупинг, чтобы мультикаст не валил во все порты подрят

enable igmp_snooping

config igmp_snooping all host_timeout 260 router_timeout 260 leave_timer 2 state enable

config igmp_snooping querier all query_interval 125 max_response_time 10 robustness_variable 2

config igmp_snooping querier all last_member_query_interval 1 state disable

 

Говорим что мультикаст может валить только с 25 порта

config router_ports default add 25

А следовательно запрещаем принудительную отправку мультикаста на клиентские порты если по какой то причине с них пришел пакет которые похож на пакет от мультикаст роутера

config router_ports_forbidden default add 1-24,26

 

Повышаем QOS для мультикаста:

create access_profile ip destination_ip_mask 255.255.0.0 profile_id 1

config access_profile profile_id 1 add access_id 1 ip destination_ip 234.1.1.0 port 25 permit priority 5 replace_dscp_with 48

config access_profile profile_id 1 add access_id 2 ip destination_ip 239.255.0.0 port 25 permit priority 5 replace_dscp_with 48

config access_profile profile_id 1 add access_id 3 ip destination_ip 239.255.1.0 port 25 permit priority 5 replace_dscp_with 48

config access_profile profile_id 1 add access_id 4 ip destination_ip 239.255.2.0 port 25 permit priority 5 replace_dscp_with 48

config access_profile profile_id 1 add access_id 5 ip destination_ip 239.255.3.0 port 25 permit priority 5 replace_dscp_with 48

 

 

Share this post


Link to post
Share on other sites

Ого, какой развернутый ответ. А можно тоже самое только для настройки через snmp? :)

Share this post


Link to post
Share on other sites

Все в ваших руках, оптимальный способ: Запускаем Dview, через него конфигурим устройство, паралельно снифирим SNMP трафик например с помошью WildPackets Etherpeek NX 3.0

Share this post


Link to post
Share on other sites
create multicast_range 1 from 224.0.0.1 to 224.0.0.2 (Служебный диапазон, требуется для подключения к IGMP группе)

 

config limited_multicast_addr ports 1-24 add multicast_range 1

config limited_multicast_addr ports 1-24 access permit state enable

config limited_multicast_addr ports 25,26 access deny state disable

Можно поподробней на счет вот этого диапазона 224.0.0.1 to 224.0.0.2, как он влияет на возможность подключаться к группе?

Share this post


Link to post
Share on other sites
create multicast_range 1 from 224.0.0.1 to 224.0.0.2 (Служебный диапазон, требуется для подключения к IGMP группе)

 

config limited_multicast_addr ports 1-24 add multicast_range 1

config limited_multicast_addr ports 1-24 access permit state enable

config limited_multicast_addr ports 25,26 access deny state disable

Можно поподробней на счет вот этого диапазона 224.0.0.1 to 224.0.0.2, как он влияет на возможность подключаться к группе?

http://athena.vvsu.ru/net/book/mcast.html

Share this post


Link to post
Share on other sites

224.0.0.1 – все узлы в данной сети;

224.0.0.2 – все маршрутизаторы в данной сети;

Вот это и смущает, зачем пользователям иметь доступ к этим группам?

Share this post


Link to post
Share on other sites

Маршрутизатор при своем включении и далее периодически рассылает по адресу 224.0.0.1 общий запрос Membership Query, при этом поле "Group Address" обнулено. Период этих рассылок может меняться администратором; значение по умолчанию – 125 с. Приняв такой запрос, каждый получатель групповых дейтаграмм выжидает случайное время. Если за это время кто-то другой уже ответил сообщением Membership Report, то данный хост не отвечает, иначе он сам посылает такое сообщение. Значение поля "Max Response Time" в Membership Query указывает максимальное время, на которое хост может задержать Membership Report (обычно 10 с). Описанный подход используется, чтобы избежать посылки многочисленных ответов с адресом одной и той же группы: маршрутизатору не нужно знать, сколько именно членов данной группы есть у него в сети, ему требуется лишь сам факт их наличия.

 

Сообщение Membership Report посылается по адресу группы, и этот же адрес помещается в поле "Group Address". Следует отметить, что маршрутизатор является членом всех групп, то есть получает сообщения, направленные на любой групповой адрес.

 

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

 

При подключении хоста к новой группе он самостоятельно отправляет сообщение типа Membership Report, не дожидаясь очередного запроса от маршрутизатора.

 

Для каждой группы, члены которой обнаружились в сети, маршрутизатор ведет отсчет времени неактивности. Если ни одного Membership Report для этой группы не было получено за определенный период (по умолчанию – 260 с), то маршрутизатор считает, что членов этой группы в сети больше нет.

 

Когда хост отсоединяется от группы, он может послать сообщение Leave Group по групповому адресу 224.0.0.2 ("всем маршрутизаторам"); адрес группы содержится в поле "Group Address". Хосту следует сделать это, если на последний запрос Membership Query от имени данной группы отвечал именно этот хост. Получив сообщение Leave Group, маршрутизатор генерирует частный запрос Membership Query для членов только этой группы. Если за время, указанное в поле "Max Response Time" запроса (по умолчанию – 1 с), маршрутизатор не получил ни одного ответа Membership Report, он считает, что членов данной группы в сети больше нет. Для надежности запрос посылается 2 раза.

 

Share this post


Link to post
Share on other sites
Повышаем QOS для мультикаста:

create access_profile ip destination_ip_mask 255.255.0.0 profile_id 1

config access_profile profile_id 1 add access_id 1 ip destination_ip 234.1.1.0 port 25 permit priority 5 replace_dscp_with 48

config access_profile profile_id 1 add access_id 2 ip destination_ip 239.255.0.0 port 25 permit priority 5 replace_dscp_with 48

config access_profile profile_id 1 add access_id 3 ip destination_ip 239.255.1.0 port 25 permit priority 5 replace_dscp_with 48

config access_profile profile_id 1 add access_id 4 ip destination_ip 239.255.2.0 port 25 permit priority 5 replace_dscp_with 48

config access_profile profile_id 1 add access_id 5 ip destination_ip 239.255.3.0 port 25 permit priority 5 replace_dscp_with 48

спасибо за дельный пост

вопрос: зачем красить его на доступе если можно покрасить на входе, а дальше везде доверять prec или cos?

Share this post


Link to post
Share on other sites

Да у меня он везде красится, на всякий случай, если прижмет уберу, вдруг забуду где прописать по дороге :) у меня слава богу на аплинке свободных ACL дофига :)

Share this post


Link to post
Share on other sites

config igmp_snooping querier all query_interval 125 max_response_time 10 robustness_variable 2

config igmp_snooping querier all last_member_query_interval 1 state disable

а зачем настраивать querier и оставлять его выключеным?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this