Начиная с прошивки 1.9.2.7-7g роутер может выступать в роли IGMP Proxy, т.е. пропускать мультикастный трафик через себя.
Для его включения необходимо на странице IP Config | Route выбрать Yes для Enable Multicast routing. В общем-то, на этом настройка закончена и всё должно заработать в простейшем случае, когда, например, у Вас уже прописаны все маршруты для "локалки" провайдера или источник мультикаста находятся непосредственно в Вашей сети. Дополнение: начиная с версии 1.9.2.7-8 никаких маршрутов больше прописывать НЕ нужно.
Единственное, что стоит ещё сделать - задать скорость мультикаста в WiFi сети (это нужно, если Вы будете смотреть ТВ через WiFi или обнаружите, что во время работы ТВ беспроводная сеть работает с задержками). Для этого идём на страничку Wireless | Advanced и изменяем значение в поле Multicast Rate. Нас интересуют значения от 24 до 54 MBps, чем ниже - тем стабильнее связь, но тем уже канал. В общем ищите компромис, между скоростью и качеством картинки.
Всё что ниже относится к версиям до 1.9.2.7-8 и в более поздних выполнять не требуется
Что делать, если ничего не работает и настроек для Вашей сети Вы не нашли?
- Сначала нужно убедиться, что ТВ работает при прямом подключении;
- В случае, если у Вас используется PPPoE нужно убедиться, что провайдер выдаёт Вам адрес для MAN интерфейса (читать отсюда http://wl500g.info/showthread.php?t=7012&page=17) (В случае PPTP, DHCP, Static IP это автоматом так, иначе бы не работала "локалка" или интернет);
- Определить адрес источника мультикаста (читать ниже) и добавить маршрут к нему;
- Если работает, но через некоторое время картинка останавливается, то определить адрес IGMP роутера провайдера и добавть маршрут к нему.
По маршрутам: если у Вас в сети есть "локалка", то как правило, провайдер распространяет .bat файлы со списком маршрутов. Их нужно вбить в табличку маршрутов для сети MAN с метрикой 0. После того, как Вы из добавите, возможно всё заработает само.
Как определить адрес источника мультикаста. Самый простой способ - спросить у провайдера. Сразу хочу сказать, что адреса 224.x.x.x - 239.x.x.x - это не источник, а адрес мультикаст группы. Добавлять маршрут к ней НЕ нужно. Если Вам хочется определить самому адрес источника, то делается это так:
Предположим, что вещание какого-то канала ТВ осуществляется в мультикаст группе 233.32.210.1 по протоколу UDP, порт 5500.
Заходите на роутер с помощью telnet или ssh (telnet 192.168.1.1) и выполняете команду
Code:
tcpdump -i $(nvram get wan_ifname) -n -p udp port 5500 and host 233.32.210.1
Дальше запускаете ТВ, включаете этот канал и смотрите на вывод роутера. Должны "полететь" однотипные пакеты примерно такого содержания:
Code:
00:20:07.717562 IP 85.21.91.195.32770 > 233.32.210.1.5050: UDP, length: 1316
В левой части - адрес источника (85.21.91.195). Далее, Вы должны проделать тоже самое для других каналов. Как правило, выясняется, что либо источник один, либо они все в одной сети - в данном случае 85.21.91.0/255.255.255.0 (это Корбина).
Теперь применяете свои новые знания на странице IP Config | Route. Добавляете запись вида
Code:
85.21.91.0 255.255.255.0 0.0.0.0 0 MAN
в таблицу. 0.0.0.0 - адрес дефолтного гейтвея при использовании PPTP+DHCP, L2TP+DHCP, PPPoE+DHCP, DHCP.
Сохраняете, делаете Finish, роутер перегружается, пробуете ещё раз.
Теперь оно либо окончательно работает, либо в какой-то момент трансляция останавливается. Причина - не хватает маршрута до IGMP роутера, следящего за подписками клиентов (например, такая ситуация со СтримТВ).
Как определить адрес следящего IGMP роутера.
Запускаем на роутере:
Code:
tcpdump -i $(nvram get wan_ifname) -p igmp -n
Смотрим телевизор. И наблюдаем за выводом. Нас интересует, кто делает igmp query:
Code:
22:28:56.543469 IP 93.61.0.38 > 239.255.0.100: igmp v2 report 239.255.0.100
22:28:57.173465 IP 93.61.0.38 > 239.255.255.250: igmp v2 report 239.255.255.250
22:30:56.616203 IP 10.39.36.10 > 224.0.0.1: igmp query v2
93.61.0.38 - мой роутер. igmp report - это он подписывается на трафик.
У меня только 10.39.36.10 делает query. Для этого адреса прописываем маршрут:
Code:
10.39.36.10 255.255.255.255 0.0.0.0 0 MAN
Запускаем ещё раз. Видим, что после получения от этой машины запроса роутер, с задержкой "переподписывается" на вещание.
Всё, бинго! Работает.
Что если не работает? Читаем эту ветку http://wl500g.info/showthread.php?t=7012 начиная, примерно, с 9й страницы.