ноября 22 2009 02:15 пп

Просмотр IPTV из сети за сервером NAT

television-icon.jpg

Многие интернет провайдеры на сегодняшний день предоставляют услугу IPTV, кторая позволяет смотреть телевизор по локальной сети, качество картинки лучше чем у аналоговых антенн, которые стоят везде. Но если у вас дома стоит роутер на базе Linux или FreeBSD, за которым живет ваша домашняя сеть, со своей адресацией и трансляцией адресов (NAT) то просмотр IPTV работать не будет, но это легко решается при помощи небольшого демона для роутинга Multicast, называется который igmp proxy.

Установка и конфигурация демона занимает минимум времени, в стандартных репозиториях я не нашел этой программы, поэтому собирал ее из исходных текстов.

Скачайте и распакуйте программу

Код:


wget http://downloads.sourceforge.net/project/igmpproxy/igmpproxy/0.1/igmpproxy-0.1.tar.gz?use_mirror=sunet
tar zxf igmpproxy-0.1.tar.gz
cd igmpproxy-0.1

Затем скомпилируйте и установите программу

Код:

./configure && make && make install

Теперь надо создать и отредактировать конфигурационный файл для программы, пример ниже

Код:

touch /etc/igmpproxy.conf
vim /etc/igmpproxy.conf

Содержимое конфигурационого файла

Код:


##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
## Эту строчку раскомментируют только в том случае,
## если внути всего лишь один клиент IP TV
##------------------------------------------------------
#quickleave

##------------------------------------------------------
## Configuration for eth0 (Upstream Interface)
## Здесь указаны параметры для публичного интерфейса,
## на который придет поток от провайдера
## и указаны сети, с которых возможно будут подключаться клиенты
##------------------------------------------------------
phyint eth0 upstream ratelimit 0 threshold 1
altnet 10.0.0.0/8
altnet 172.20.20.0/24
altnet 192.168.0.0/24

##------------------------------------------------------
## Configuration for eth1 (Downstream Interface)
## Типовая конфигурация для внутреннего интерфейса
## смотрящего в домашнюю сеть
##------------------------------------------------------
phyint eth1 downstream ratelimit 0 threshold 1

После создания конфига запускаем демона командой

Код:

/usr/local/sbin/igmpproxy /etc/igmpproxy.conf

На этом настройка завершена, можете проверить работу IPTV и добавить демона в автозагрузку.




13 комментариев »


13 комментариев to “Просмотр IPTV из сети за сервером NAT”

  1. Gryph0N on 02 Дек 2009 at 02:09 #

    у меня невышло
    пишет MRT_ADD_MEMBERSHIP failed; Errno(98): Address already in use

    phyint eth0 upstream ratelimit 0 threshold 1 //смотрит в сеть провайдера
    altnet 192.168.0.0/24 //мои домашние
    phyint eth1 downstream ratelimit 0 threshold 1 //смотрит домой


    route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    85.21.88.130 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    83.102.255.226 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    195.14.50.16 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    83.102.254.200 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    83.102.254.200 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    83.102.146.96 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    85.21.52.254 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    85.21.138.208 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    195.14.50.21 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    195.14.50.26 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    89.179.135.67 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    195.14.50.93 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    78.107.69.98 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    83.102.254.197 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    83.102.254.197 10.23.24.1 255.255.255.255 UGH 0 0 0 eth0
    192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
    85.21.90.0 10.23.24.1 255.255.255.0 UG 0 0 0 eth0
    85.21.79.0 10.23.24.1 255.255.255.0 UG 0 0 0 eth0
    10.23.24.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
    233.32.0.0 10.23.24.1 255.254.0.0 UG 0 0 0 eth0
    10.0.0.0 10.23.24.1 255.0.0.0 UG 0 0 0 eth0
    0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0

    Сеть шарю так

    *nat
    :PREROUTING ACCEPT [2178:242732]
    :POSTROUTING ACCEPT [519:25849]
    :OUTPUT ACCEPT [20:2709]
    -A PREROUTING -i ppp0 -p tcp -m tcp --dport 47835 -j DNAT --to-destination 192.1 68.0.11:47835
    -A PREROUTING -i ppp0 -p tcp -m tcp --dport 26795 -j DNAT --to-destination 192.1 68.0.11:26795
    -A PREROUTING -i ppp0 -p tcp -m tcp --dport 13467 -j DNAT --to-destination 192.1 68.0.11:13467
    -A PREROUTING -i ppp0 -p tcp -m tcp --dport 34921 -j DNAT --to-destination 192.1 68.0.11:34921
    -A PREROUTING -i eth0 -p udp -m udp --dport 1112 -j DNAT --to-destination 192.16 8.0.11:1112
    -A PREROUTING -i eth0 -p tcp -m tcp --dport 19727 -j DNAT --to-destination 192.1 68.0.11:19727
    -A POSTROUTING -o ppp0 -j MASQUERADE
    -A POSTROUTING -o eth0 -j MASQUERADE
    COMMIT
    # Completed on Thu Nov 12 19:43:21 2009
    # Generated by iptables-save v1.4.0 on Thu Nov 12 19:43:21 2009
    *filter
    :INPUT ACCEPT [10099:1909813]
    :FORWARD ACCEPT [11078:2060548]
    :OUTPUT ACCEPT [8141:1022838]
    -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    COMMIT

    список каналов тут http://dc.spb.corbina.net/iptv/ может кто подскажет как настроить

  2. Stepanoff on 02 Дек 2009 at 09:24 #

    В корбине Спб не во всех районах работает айпи-тв, так же попробуйте с выключенным впн, и кто выдает ошибку указанную в начале комментария?

  3. Gryph0N on 02 Дек 2009 at 11:20 #

    моя подсеть подключена, если на прямую то работает без нареканий. Ошибку выдаёт igmpproxy при попытке просмотра.

  4. Stepanoff on 02 Дек 2009 at 11:21 #

    Не стартует прокси?

  5. Gryph0N on 02 Дек 2009 at 12:08 #

    /usr/local/sbin/igmpproxy /usr/local/sbin/igmpproxy.conf если так запускать то просто висит и всё
    /usr/local/sbin/igmpproxy -d /usr/local/sbin/igmpproxy.conf так пишет ошибку

  6. Stepanoff on 02 Дек 2009 at 12:11 #

    Она не должна ничего писать, просто запускаете командой
    /usr/local/sbin/igmpproxy /usr/local/sbin/igmpproxy.conf &

  7. Gryph0N on 02 Дек 2009 at 12:20 #

    стартует но эфекта 0, думаю в режиме дебага не просто так ошибки выврдит. Можеш у себя с ключём -d запустить? Глянуть что оно говорит когда правильно работает. Тут ещё непонял route -n(Linux) и route print(win) разные, оно так и должно быть или нет?

  8. Stepanoff on 02 Дек 2009 at 12:24 #

    В моем районе не работает iptv корбины, смотрел на работе через офисный шлюз на линуксе, все гуд.

  9. Stepanoff on 02 Дек 2009 at 12:26 #

    Проверь фаервол у себя, и еще может TTL надо добавить, иногда помогает.
    Вот правила
    modprobe ipt_TTL
    iptables -t filter -A INPUT -d 224.0.0.0/240.0.0.0 -j ACCEPT
    iptables -t filter -A INPUT -s 224.0.0.0/240.0.0.0 -j ACCEPT
    iptables -t filter -A FORWARD -d 224.0.0.0/240.0.0.0 -j ACCEPT
    iptables -t filter -A FORWARD -s 224.0.0.0/240.0.0.0 -j ACCEPT
    iptables -t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL —ttl-inc 1

  10. Gryph0N on 02 Дек 2009 at 12:29 #

    ясно, буду ковыряться, ещё вопрос
    altnet 10.0.0.0/8 ето твоя подсеть? уж больно на корбину похоже.

  11. Gryph0N on 02 Дек 2009 at 12:30 #

    в смысле, локалка внутренняя или корбина

  12. Stepanoff on 02 Дек 2009 at 12:33 #

    У меня корбина и еще один пров, у него тоже 10.0.0.0/8, есть и 192.168.0.0, ну и дома тоже 10я подсеть. Лучше пропиши в альтнет все локалки, как показано у меня.

  13. Gryph0N on 03 Дек 2009 at 00:30 #

    Разобрался, проблема была в маршрутах, если прописать маршрут 233.32.0.0 или до самого канала, то он отваливается. Причём после удаления правила также небудет работать, помогло /etc/init.d/network restart и всё заработало. Вот только пока с поднятым VPN IpTv смотреть нелзя. Кстате определит сети которые необходимо прописать проще при помощи дэбаг режима(igmpproxy -d), igmpproxy их выводит.

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


« | »



Server load average: 0.05, 0.03, 0.00
Server uptime: 20 days, 5:52
Your IP is: 54.225.57.89.