ноября 22 2009 02:15 пп
Просмотр IPTV из сети за сервером NAT
Многие интернет провайдеры на сегодняшний день предоставляют услугу 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 и добавить демона в автозагрузку.
Popularity: 11%
13 Комментариев »
Обсудить на форуме
13 Responses to “Просмотр IPTV из сети за сервером NAT”
Leave a Reply
You must be logged in to post a comment.



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
Сеть шарю так
REROUTING ACCEPT [2178:242732]
OSTROUTING ACCEPT [519:25849]
*nat
: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
список каналов тут может кто подскажет как настроить
В корбине Спб не во всех районах работает айпи-тв, так же попробуйте с выключенным впн, и кто выдает ошибку указанную в начале комментария?
моя подсеть подключена, если на прямую то работает без нареканий. Ошибку выдаёт igmpproxy при попытке просмотра.
Не стартует прокси?
/usr/local/sbin/igmpproxy /usr/local/sbin/igmpproxy.conf если так запускать то просто висит и всё
/usr/local/sbin/igmpproxy -d /usr/local/sbin/igmpproxy.conf так пишет ошибку
Она не должна ничего писать, просто запускаете командой
/usr/local/sbin/igmpproxy /usr/local/sbin/igmpproxy.conf &
стартует но эфекта 0, думаю в режиме дебага не просто так ошибки выврдит. Можеш у себя с ключём -d запустить? Глянуть что оно говорит когда правильно работает. Тут ещё непонял route -n(Linux) и route print(win) разные, оно так и должно быть или нет?
В моем районе не работает iptv корбины, смотрел на работе через офисный шлюз на линуксе, все гуд.
Проверь фаервол у себя, и еще может 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
ясно, буду ковыряться, ещё вопрос
altnet 10.0.0.0/8 ето твоя подсеть? уж больно на корбину похоже.
в смысле, локалка внутренняя или корбина
У меня корбина и еще один пров, у него тоже 10.0.0.0/8, есть и 192.168.0.0, ну и дома тоже 10я подсеть. Лучше пропиши в альтнет все локалки, как показано у меня.
Разобрался, проблема была в маршрутах, если прописать маршрут 233.32.0.0 или до самого канала, то он отваливается. Причём после удаления правила также небудет работать, помогло /etc/init.d/network restart и всё заработало. Вот только пока с поднятым VPN IpTv смотреть нелзя. Кстате определит сети которые необходимо прописать проще при помощи дэбаг режима(igmpproxy -d), igmpproxy их выводит.