The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Организация доступа к IPTV через NAT
Инструкция для желающих настроить 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
 
26.11.2009 , Автор: Антон Каукин , Источник: http://www.tonchik.ru/pub/over/Linu...
Ключи: multicast, igmp, iptv, video, proxy
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / NAT, трансляция адресов

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, фноним (?), 13:47, 26/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >   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

    это не надо

     
  • 1.2, ze6ra (ok), 14:01, 26/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    iptables -t filter -A INPUT -d 224.0.0.0/240.0.0.0 -i eth0 -j   ACCEPT
    надо, без этого не заработает.
     
  • 1.3, некто (?), 20:52, 26/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где же здесь NAT???
     
     
  • 2.4, Аноним (-), 21:24, 26/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    ну вообще видимо в eth1 воткнута локалка
    а eth0 смотрит на провайдера, вот и нат
     
     
  • 3.7, Некто (??), 12:19, 27/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    в данном случае NAT для iptv не используется.
     

  • 1.5, Николай (??), 22:48, 26/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У меня на работе уже год igmpproxy стоит, ничего так - но некоторые каналы тормозят, и сетка забивается....
     
  • 1.6, linked (ok), 22:54, 26/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для pf
    http://un.geeig.net/openbsd-vdsl.html#igmp
     
     
  • 2.8, kran (??), 12:50, 27/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, попробую на FreeBSD'овом шлюзе такой набор.
    Без IPTV уже 3 года сижу. Никак pf не хочет пропускать multicast. Выключаешь его pfctl -d и всё работает :)
     
     
  • 3.9, modq (?), 13:45, 27/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    И да, во FreeBSD 8.0 вроде появилась поддержка IGMPv3 из каропки, надо попробовать :)
     
  • 3.10, Allex (?), 23:16, 28/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    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}

     

  • 1.11, f0x3d (?), 14:30, 07/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    udpxy решает :)
    И ненадо париться и возиться с мультикастом внутри локалки.
    Особливо в плане мелких девайсов наподобии тогоже асус роутера 500.
     
  • 1.12, Nike (??), 10:12, 13/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не пойму я что-то. Зачем нам igmpproxy, если мы увеличиваем TTL? Ведь смысл igmpproxy и заключается в том, чтобы получать от пользователя igmp-запросы и пересылать их провайдеру и наоборот, принимать от провайдера и передавать пользователю.
     
  • 1.13, itJunkie (?), 16:13, 01/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Никак не могу понять что мешает 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| ~ ]

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

     
  • 1.14, kgtuman (?), 15:05, 06/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Он сам ругается так MC-Router API already in use; Errno(48): Address already in use

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

     
  • 1.15, Сергей (??), 14:30, 23/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если это дополнение к программному роутеру, то вероятно надо исключить прохождение этого трафика через него. В данном случае запрос наружу пойдёт через NAT роутера.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру