URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 61386
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Организация доступа к IPTV через NA..."

Отправлено auto_tips , 26-Ноя-09 13:47 
Инструкция для желающих настроить Multicast Routing на Linux шлюзе, обеспечивающем работу клиентов через NAT.
Для переброса IGMP-трафика между подсетями будем использовать демон igmpproxy  (http://sourceforge.net/projects/igmpproxy)

Ставим IGMP Proxy из пакетов используемого дистрибутива или устанавливаем из исходных текстов:

   # tar -zxf igmpproxy-src-0.1.tar.gz
   # cd igmpproxy/
   # less README
   # cd src/
   # make && make install

Правим файл конфигурации /etc/igmpproxy.conf. В представленном примере, интерфейс eth0 смотрит в публичную сеть провайдера Mig Telecom, а eth1 в домашнюю сеть.

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

   #quickleave

   # Configuration for eth0 (Upstream Interface)
   # Здесь указаны параметры для публичного интерфейса,
   # на который придет поток от провайдера

   phyint eth0 upstream ratelimit 0  threshold 1
           altnet 10.20.0.0/16
           altnet 88.210.40.0/24
           altnet 80.240.211.0/22

   # Configuration for eth1 (Downstream Interface)
   # Типовая конфигурация для внутреннего интерфейса

   phyint eth1 downstream ratelimit 0  threshold 1

   # Configuration for eth2 (Disabled Interface)
   # eth2 в системе есть, но не используется никем, отключаем

   phyint eth2 disabled

Запускаем igmpproxy и переходим к небольшой конфигурации IPTables.
Вот этот набор правил понадобился для корректной работы пакетного фильтра, разрешается весь входящий мультикст, разрешается его форвардинг и плюс ко всему добавляем в TTL 1, без этого добавления не работает если пакеты от провайдера приходят с минимально выставленным TTL.

   modprobe ipt_TTL
   iptables -t filter -A INPUT -d 224.0.0.0/240.0.0.0 -i eth0 -j   ACCEPT
   iptables -t filter -A INPUT -s 224.0.0.0/240.0.0.0 -i eth0 -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

URL: http://www.tonchik.ru/pub/over/Linux%20Multicast%2...
Обсуждается: http://www.opennet.me/tips/info/2235.shtml


Содержание

Сообщения в этом обсуждении
"Организация доступа к IPTV через NAT"
Отправлено фноним , 26-Ноя-09 13:47 
>   iptables -t filter -A INPUT -d 224.0.0.0/240.0.0.0 -i eth0 -j   ACCEPT
>   iptables -t filter -A INPUT -s 224.0.0.0/240.0.0.0 -i eth0 -j ACCEPT

это не надо


"Организация доступа к IPTV через NAT"
Отправлено ze6ra , 26-Ноя-09 14:01 
iptables -t filter -A INPUT -d 224.0.0.0/240.0.0.0 -i eth0 -j   ACCEPT
надо, без этого не заработает.

"Организация доступа к IPTV через NAT"
Отправлено некто , 26-Ноя-09 20:52 
Где же здесь NAT???

"Организация доступа к IPTV через NAT"
Отправлено Аноним , 26-Ноя-09 21:24 
ну вообще видимо в eth1 воткнута локалка
а eth0 смотрит на провайдера, вот и нат

"Организация доступа к IPTV через NAT"
Отправлено Некто , 27-Ноя-09 12:19 
в данном случае NAT для iptv не используется.

"Организация доступа к IPTV через NAT"
Отправлено Николай , 26-Ноя-09 22:48 
У меня на работе уже год igmpproxy стоит, ничего так - но некоторые каналы тормозят, и сетка забивается....

"Организация доступа к IPTV через NAT"
Отправлено linked , 26-Ноя-09 22:54 
Для pf
http://un.geeig.net/openbsd-vdsl.html#igmp

"Организация доступа к IPTV через NAT"
Отправлено kran , 27-Ноя-09 12:50 
Спасибо, попробую на FreeBSD'овом шлюзе такой набор.
Без IPTV уже 3 года сижу. Никак pf не хочет пропускать multicast. Выключаешь его pfctl -d и всё работает :)

"Организация доступа к IPTV через NAT"
Отправлено modq , 27-Ноя-09 13:45 
И да, во FreeBSD 8.0 вроде появилась поддержка IGMPv3 из каропки, надо попробовать :)

"Организация доступа к IPTV через NAT"
Отправлено Allex , 28-Ноя-09 23:16 
pass on $ext_if inet proto igmp to any allow-opts
pass in on $ext_if inet proto udp to any port {1234, 9875}

pass on $int_if inet proto igmp to any allow-opts
pass out on $int_if inet proto udp to any port {1234, 9875}


"Организация доступа к IPTV через NAT"
Отправлено f0x3d , 07-Дек-09 14:30 
udpxy решает :)
И ненадо париться и возиться с мультикастом внутри локалки.
Особливо в плане мелких девайсов наподобии тогоже асус роутера 500.

"Организация доступа к IPTV через NAT"
Отправлено Nike , 13-Ноя-10 10:12 
Не пойму я что-то. Зачем нам igmpproxy, если мы увеличиваем TTL? Ведь смысл igmpproxy и заключается в том, чтобы получать от пользователя igmp-запросы и пересылать их провайдеру и наоборот, принимать от провайдера и передавать пользователю.

"Организация доступа к IPTV через NAT"
Отправлено itJunkie , 01-Май-11 16:13 
Никак не могу понять что мешает igmpproxy запуститься. Он сам ругается так MC-Router API already in use; Errno(48): Address already in use

Но других копий igmpproxy не запущено:

[3|root@gw| ~ ] ps ax |grep igmpproxy
30015  p0  R+     0:00,00 grep igmpproxy
[3|root@gw| ~ ]
Так же не занят порт 1234:
[3|root@gw| ~ ] sockstat -4 -l |grep 1234
[3|root@gw| ~ ]

Куда ещё копать? Нифига не понятно даже точно ли на этот порт ругается софтина, поскольку она ничего не пишет про порт и интерфейс.


"Организация доступа к IPTV через NAT"
Отправлено kgtuman , 06-Фев-12 15:05 
Он сам ругается так MC-Router API already in use; Errno(48): Address already in use

выключи другие программы роутинга.....


"Организация доступа к IPTV через NAT"
Отправлено Сергей , 23-Мрт-12 14:30 
Если это дополнение к программному роутеру, то вероятно надо исключить прохождение этого трафика через него. В данном случае запрос наружу пойдёт через NAT роутера.