воскресенье, 15 апреля 2012 г.

Настройка igmpproxy на OpenWRT

Командой
tcpdump -ni eth0.2 igmp
отслеживаем к каким адресам обращается iptv-плеер. Например:
00:42:33.348324 IP 172.16.58.50 > 238.39.40.67: igmp v2 report 238.39.40.67
00:42:34.289359 IP 192.168.189.2 > 224.0.0.1: igmp query v2 [max resp time 10] [gaddr 238.39.40.122]
00:42:34.388925 IP 192.168.176.2 > 224.0.0.1: igmp query v2 [max resp time 10] [gaddr 238.39.40.122]
Также обращаем внимание какая версия igmp используется.
Файл настроек /etc/igmpproxy.conf:
# (Se example...)

#
# The "quickleave" should be used to avoid saturation
# of the upstream link. The option should only
# be used if it's absolutely nessecary to
# accurately imitate just one Client.
#
########################################################


##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave

##------------------------------------------------------
## Configuration for eth0 (Upstream Interface)
##------------------------------------------------------
phyint eth0.2 upstream ratelimit 0 threshold 1
altnet 79.135.195.62
altnet 192.168.176.2
altnet 192.168.189.2
altnet 192.168.172.1
altnet 192.168.0.125
altnet 172.16.53.245
altnet 192.168.0.125
altnet 172.16.44.91
altnet 16.16.16.16
altnet 172.16.46.88
altnet 172.16.54.197
altnet 172.16.57.255

##------------------------------------------------------
## Configuration for eth1 (Downstream Interface)
##------------------------------------------------------
phyint br-lan downstream ratelimit 0 threshold 1

В /etc/config/firewall прописываем:

config 'zone'
option 'name' 'wan1'
option 'network' 'wan1'
option 'input' 'REJECT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
option 'masq' '1'
option 'mtu_fix' '1'

config 'forwarding'
option 'src' 'lan'
option 'dest' 'wan1'

config 'rule'
option 'src' 'wan1' #wan1 used for iptv
option 'proto' 'igmp'
option 'src_ip' '0.0.0.0/0'
option 'target' 'ACCEPT'

config 'rule'
option 'src' 'wan1'
option 'proto' 'udp'
option 'dest' 'lan'
option 'dest_ip' '224.0.0.0/4'
option 'target' 'ACCEPT'
option 'src_ip' '0.0.0.0/0'

В /etc/config/network добавляем интерфейс wan1 для работы с iptv:

config 'interface' 'wan1' # wan1 used for iptv
option 'ifname' 'eth0.2'
option 'macaddr' 'f4:ec:38:c7:b3:ad'
option 'proto' 'dhcp'

В файле
/etc/sysctl.conf указываем какую версию igmp надо использовать:


net.ipv4.conf.eth0.2.force_igmp_version=2
net.ipv4.conf.br-lan.force_igmp_version=2

Не забываем перезапустить все это командами:

/etc/init.d/network restart
/etc/init.d/firewall restart

Запускаем igmpproxy:

igmpproxy -d /etc/igmpproxy.conf

Проверяем работу с помощью какого-нибудь плеера. Перезагружаем роутер для проверки, что все в порядке.
На самом деле после перезагрузки автоматически поднялся только wan1, поэтому для запуска wan и wan1 вместе, пришлось перезапустить network.

Комментариев нет:

Отправить комментарий