Пользователь
0,0
рейтинг
23 февраля 2012 в 01:04

Администрирование → Настройка IPTV в OpenWRT

*nix*
Хотя я практически не смотрю телевизор, иногда появляется непреодолимое желание посмотреть что сейчас вещают в новостях. Часто это желание возникает когда дочка спит, и телевизор уже вне зоны доступа. Как вы понимаете выход один — IPTV.

По счастливому стечению обстоятельств у меня подключен тарифный план с бесплатным пакетом IPTV и имеется роутер Netgear WNDR-3800. На роутере имеется прошивка OpenWrt Backfire 10.03.1.
Так как в комментариях появились замечания по поводу того что udpxy не такая уж и нужная вещь, стоит отдельно отметить, что я смотрю IPTV исключительно по WiFi, а некоторые устройства не поддерживают 802.11n и при использовании мультикаста картинка на них рассыпается.
На хабре было много статей об OpenWrt, о настройке сети в OpenWrt, настройке IPTV трансляций, и некоторые другие, но к сожалению в них процесс настройки собственно IPTV если и описан, то без каких либо подробностей. И хотя этот процес совсем не сложен, я надеюсь мой топик сократит время на поиск и чтение необходимых мануалов, которых в сети предостаточно. Я произвожу эти настройки не в первый раз, так как иногда в процессе экспериментов с VPN, Wi-Fi и другими плюшками роутер умирал и восстанавливался в аварийном режиме. Посему будьте внимательны и осторожны, что бы не пришлось обращаться к процедуре восстановления.

Все настройки будем производить из консоли, т.к. я с некоторых пор не доверяю LuCI. Предпологается что вы подключены к роутеру по ssh под рутом.

Первым делом устанавливаем udpxy:
opkg update
opkg install udpxy

После успешной установки проверим что udpxy запускается:
/usr/bin/udpxy

Эта команда выведет версию udpxy и ее основные опции. Кстати подробное описание все опций можно найти здесь.

Перейдем собственно к настройке. В папке /etc/init.d создаем файл udpxy:
cd /etc/init.d
vi udpxy

Этот файл — стартовый скрипт udpxy. Подробнее о стартовых скриптах OpenWrt можно узнать здесь.
Содержимое нашего файла будет примерно таким:
#!/bin/sh /etc/rc.common
# Copyright (C) 2010 OpenWrt.org

START=99
STOP=10

IGMP_OPTS="-a br-lan -m eth1 -p 8888 -M 600"
IGMP_BIN="/usr/bin/udpxy"
PID_F="/var/run/udpxy.pid"

start() {
        echo "Starting udpxy"
        start-stop-daemon -S -x $IGMP_BIN -p $PID_F -b -m -- $IGMP_OPTS
}

stop() {
        echo "Stopping udpxy"
        start-stop-daemon -K -x $IGMP_BIN -q
}

Для запуска службы используется start-stop-daemon — утилита для контроля запуска и остановки системных служб. В IGMP_BIN указываем что и откуда запускать, PID_F — куда записать PID что бы в последствии за ним можно было следить, IGMP_OPTS — настройки запускаемой службы.

Прежде чем указывать настройки, советую попробовать запустить udpxy с этими настройками, и только после этого переносить их в конфиг, это поможет вам не стать жертвой опечатки, и возможно сэкономит немного времени.

После того как все настройки завершены, закрываем файл udpxy и запускаем сервис командой
/etc/init.d/udpxy start

Проверить запустилась ли udpxy можно при помощи команды
ps |grep udpxy

Если вы видите в результате только одну строку, возвращайтесь к настройкам и проверяйте что вы сделали не так. В случае если все верно, должно получиться что то вроде
 1637 root       804 S    /usr/bin/udpxy -a br-lan -m eth1 -p 8888 -M 600 
29984 root      1372 S    grep udpxy 

Так же можно открыть в браузере страничку http://192.168.1.1:8888/status для проверки что udpxy работает.
Теперь можно прописать наш стартовый скрипт в автозагрузку. Для этого достаточно выполнить команду:
/etc/init.d/udpxy enable

после этого в папке /etc/rc.d должна появиться символическая ссылка вида S99udpxy. Проверить добавился ли скрипт в автозагрузку можно так же командой
/etc/init.d/udpxy enabled && echo «enabled»

если все нормально вы получите в ответ «enabled».

Дело осталось за малым — создать правила для udp трафика:
config rule
        option src      wan
        option proto    igmp
        option target   ACCEPT
config rule
        option src      wan
        option proto    udp
        option dest_ip  224.0.0.0/4
        option target   ACCEPT

Эти правила необходимо добавить в /etc/config/firewall, и после этого перезапустить службу командой:
/etc/init.d/firewall restart

Так же можно перезагрузить и сам роутер, что бы убедиться что все необходимые службы запускаются, ивсе рабтает именно так как мы задумали.
Теперь берем список каналов у провайдера, и все ссылки преобразуем так как описано в мануале к udpxy:
http://{address}:{port}/{protocol}/{channel_addr}:{channel_port}

то есть если у вас в списке каналов указано
rtp://@111.22.33.44:1234
то на выходе должно получиться
http://192.168.1.1:8888/udp/111.22.33.44:1234


После этого открываем список каналов любым подходящим проигрывателем и наслаждаемся.
Алексей @Silver_Clash
карма
28,5
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (65)

  • –3
    Извините, но ничего нового. О udpxy уже писалось много раз.
    • +1
      Если действительно много раз, дайте ссылку. Когда я первый раз настраивал udpxy пришлось потратить несколько часов на изучение вики OpenWrt и подобных материалов.
      В любом случае теперь у меня есть небольшой мануал, по которому сделать это можно намного быстрее.
      • 0
        Вам повезло. Мне года два назад пришлось еще узнавать все диапазоны адресов, с которых вещаются каналы и прочая техническая информация при помощи tcpdump и прописывать под них статические маршруты, т.к. интернет через pppoe
      • –4
        habrahabr.ru/search/?q=udpxy&target_type=posts
        Только не говорите что там нет ничего про OpenWRT, ибо уникальность установки на openwrt заключается только в opkg.
        • 0
          К сожалению ни в одним из этих топиков не указаны ВСЕ необходимые действия для настройки IPTV, зачастую все ограничено стартовым скриптом, и даже не указано как настроить фаервол. Да и стартовые скрипты там реализованы не самым лучшим образом.
          • –3
            Вы меня конечно снова простите, но вроде habr это не howtoforge.
            Принцип работы и все необходимые команды были много раз описаны. А Openwrt, dd-wrt, linux box — уже не важно, меняется только интерфейс на котором слушать, как установить пакет и т.д.
            Я к тому что если каждый человек будет писать о настройки на свое_дистрибутиве — мы с вами все дружно охренеем. Потому что как раз пакетным менеджером, настойкой firewall и стартовыми скриптами они будут отличаться.
            • 0
              В начале топика я сразу указал, что эта процедура весьма проста, тем не менее, если бы я в свое время нашел подобный топик, я бы сэкономил пару бессонных ночей. Думаю этого вполне достаточно, что бы расписать все в подробностях. Часто новичкам не хватает простого конкретного примера с соответствующими комментариями.
              • –2
                Да и для этого существует многочисленные форумы и, о боже, wiki.openwrt.org/doc/howto/udp_multicast

                Так может проясните: Вы убили пару бессонных ночей на то чтобы сделать opkg install udpxy? Ибо остальное описано на сайте openwrt и выдается первым в гугле по запросу openwrt udpxy howto.
                P.S Прежде чем меня минусовать — ознакомьтесь с правилами данного сайта, разде про копипаст.
                • 0
                  Во-первых, я вас не минусую.
                  Во-вторых, может перестанете говорить загадками? Что именно в моем топике не соответствует правилам данного сайта?
                  • –5
                    Перестаньте отвечать на мои вопросы своими. 1й пункт правил — копипаст с других сайтов.
                    Что уникального и нового в Вашей статье по сравнению wiki.openwrt? Вы можете пояснить на что Вы убили апру бессоных ночей?
  • +2
    А мне помогло. Спасибо!
  • +1
    Да и мне помогло. Спасибо огромное!
  • +1
    А почему для просмотра IPTV вообще нужны какие-то особые настройки?
    Я не слишком хорошо разбираюсь в вопросе, но сейчас у меня бюджетный Trendnet, до этого был опять-таки бюджетный Asus и на дефолтных прошивках все работало без дополнительных движений.
    Мне стало интересно, что я упускаю?
    • 0
      Думаю вся разница в наличии/отсутствии udpxy, преобразующая трафик udp->http
      • 0
        Тёплое с мягким не путать. UDP -> TCP.
      • 0
        а зачем это нужно? vlc прекрасно умеет играть и rtp и мультикасты и вообще.
        • +1
          потому что вы можете сидеть за роутером, который не пропускает мультикаст и на своем VLC вы получите болт с правой резьбой.
          • 0
            openwrt разве не позволяет настроить мультикасты?
            • 0
              не имею компетенции в данном вопросе.
            • 0
              Можно с помощью igmp-proxy. Но с таким вариантом есть траблы с вайфай. Как минимум на ddwrt так было, но насколько помню, это связано не с прошивкой, а с устройством multicast
              • 0
                хм. ну да, верно. По крайней мере на заводской прошивке многие девайсы через вайфай не тянули. И в любом случае нужен 802.11n для этого
              • 0
                На банальном копеечном D-Link DIR-320 в прошивке Tomato можно установить ограничение на мультикаст по WiFi и тогда он не будет его забивать. Собственно, на любых Tomato должно быть так…
                • 0
                  да, и под ddwrt и openwrt есть разные способы не забивать wi-fi, или вообще стримать только на необходимый ethernet порт. Но у меня htpc подключён к сети по wi-fi. Да и вообще мало ли возникает необходимость смотреть IPTV по wi-fi. udpxy прекрасно решает эту проблему, можно спокойно смотреть по буку и htpc одновременно.
          • 0
            Гм. Так может быть не нужно искать костыли, а настроить роутер, чтобы он нормально работал с мультикастом? Зачем вам вообще OpenWRT, если не секрет и чем стандартная прошивка (которая, судя по всему, IGMP proxy умеет вполне) не устраивает? И, опять-таки, если все же не устраивает, но почему ставили именно OpenWRT, а не ту, которая нормально работает с мультикастом? DD-WRT небось встанет. Да и судя по Гуглу сборки Tomato имеются…
            • 0
              многие роутеры даже при активации IGMP не дают нормального качества, изображение рассыпается.

              Например мой роутер DI-524 (его нельзя прошить ни DD-WRT, ни OpenWRT), в нем есть настройка для IGMP, но она ничем не спасает. То есть часть пакетов просто теряется и картинка плывет.

              Но это чисто мой пример из жизни.
              • 0
                Вы извините, но вы как-то все в кучу сваливаете. :-) На вашем di-524 нельзя сменить прошивку (еще бы! На таких скудных ресурсах только пропиетарные специализированные системы могут работать! Линуксу слабо… Не помню правда сходу, что именно конкретно на di-524 стоит...), а значит у вас и выбора нет — тот же udp proxy вы поставить все равно не сможете. :-)
                А у автора выбор есть. При этом нигде в статье не говорится (возможно, я плохо смотрел?), что ему надо передавать IPTV по WiFi. Если надо, то действительно, udp proxy хоть как-то оправдан (хотя, например, на IPTV приставку через него все равно ничего не заведешь), но если не надо — то это реально конкретные костыли.
                • 0
                  только по wifi и надо :)
                • 0
                  По поводу tomato vs dd-wrt vs OpenWrt — на мое устройство OpenWrt это единственный стабильный вариант.
                  • 0
                    А чем именно Томато не понравилась? Я сколько все эти прошивки смотрел — с точки зрения адекватности работы (а не предоставления пользователю возможности «поковыряться») именно Томато больше всех понравилась. Все эти *WRT — монстры какие-то страшные-ужасные…
                    • 0
                      Для моего устройства tomato есть только в альфе на данный момент. Да и с *WRT монстрами я раньше имел дело на других роутерах.
                • 0
                  Действительно, прошивку сменить нельзя, памяти там мало.

                  Роутеры в основном покупать ради модуля Wi-Fi, ради мобильности, плюс сегодня много поэтому конечно я думаю именно поэтому речь именно об IPTV over Wi-Fi.
            • 0
              Потому что на 802.11g мультикаст не очень подходит.
              • 0
                1) Вы бы об этом в статье все-таки написали почетче и по конкретней. Из серии: «Мне нужно смотреть IPTV через WiFi, картинка рассыпалась на „квадраты“, поэтому я решил настроить udp-proxy и вот мой рассказ об этом.» :-) Потому что, как я уже сказал, это все-таки костыли и не айс…

                2) Из характеристик вашего роутера на Яндекс.Маркете:
                «Стандарт беспроводной связи — 802.11n, частота 2.4 / 5 ГГц, возможность одновременной работы
                Макс. скорость беспроводного соединения — 300 Мбит/с»
                :-)
                Да, я понимаю, что судя по всему у вашего ноутбука только 802.11g, но USB-адаптеры 802.11n стоят где-то в районе 600-700 рублей. И не нужны были бы все эти телодвижения и сложности, а также не потребовалось бы переделывать плейлист под udp-proxy. :-)
                • 0
                  1. Цель топика ответить на вопрос «Как?» а не «Почему?». К тому же по-моему это вовсе не костыли.

                  2. Роутер замечательный, и без проблем передаст мультикаст по wifi и не подавится. Но из трех моих ноутбуков пока только один оборудован нормальной сетевушкой — intel 5300 AGN. А один из ноутов поддерживает только 802.11g и на нем, при использовании мультикаста картинка сразу рассыпается.
                  • 0
                    Ох, ну хорошо, убедили. :-) Но я вам серьезно советую — добавьте в начале топика абзац на тему WiFi. Потому что все эти предъявы в комментах именно из-за этого — было бы про WiFi написано, я бы только промолчал и не лез. :-)
                    • 0
                      Есть кстати еще один аргумент, правда сомнительный :)
                      На полке пылится HTPC с установленным XBMC. А XBMC не очень дружит с udp… Правда до HTPC у меня уже год как руки не доходят, а выкинуть жалко.

                      Аргументы по поводу костыльности все же хотелось бы услышать.
                      • 0
                        Почему не очень? Сейчас быстренько глянул Гуглом — плугины соответствующие есть и народ работает. Правда с ТВ-программой тяжко, но XBMC вообще не особо для ТВ подходит, как я понимаю… А, например, для MythTV четкие гайды по настройке есть и все ОК.
                        Про костыльность написал ниже. Собственно, любые прокси — это костыли из-за отсутствия возможности что-то делать напрямую — на мой взгляд это достаточно очевидно…
                • 0
                  Кстати, вы часто называете udpxy костылем. Можно немного аргументировать вашу точку зрения?
                  • 0
                    Во-первых, речь идет о самой сути технологий. IPTV — это вещание. Для организации вещания по IP-сетям стандартно предусмотрен протокол IGMP и технологии мультикаста. К сожалению, технические недостатки и несовершенство оборудования провайдеров и конечных пользователей зачастую вынуждают прибегать ко всяким ухищрениям и переделывать мультикаст в юникаст. Каждый раз когда это происходит, сетевики-ортодоксы плачут. :-)

                    Во-вторых, такой проксированный трафик не поймет подавляющее большинству IPTV-приставок к телевизору. А основной массе пользователей нужно именно это — IPTV на компьютерах смотрят только технически подкованные.
                    • 0
                      Думаю последнее предложение как раз про читателей хабра.
                      • 0
                        Это да! Но про WiFi вы все-таки в статью добавьте… :-)
                • 0
                  Для того, чтоб не изменять плейлист, можно использовать программу IP-TV Player. Это неплохая русская оболочка VLC. И в настройках программы указать адрес udpxy и порт сервера. Удобная штука.
                  image
              • 0
                Да, и кстати — а вы мультикаст пробовали по WiFi смотреть перед тем как прокси ставить? SD-каналы зачастую вполне успешно по 802.11g ходят — там же всего лишь 4-6Мбит в пике, если вещание в Mpeg2. А если в h264, то и того меньше…
                • 0
                  Пробовали :)
          • 0
            Ой, извините, по вашему комменту подумал, что вы топик-стартер. :-) Но вопросы в любом случае имеют смысл. :-)
            • 0
              да ничего :) Выше отписался, но это чисто в моем случае, довольно ограниченном.
  • 0
    А мне не помогло. Не описан проброс VLAN'ов. Так что поможет не всем. И название неправильное
  • 0
    Коллеги, а кто-нибудь пробовал заворачивать IPTV в dlna?
    В свое время хотел организовать связку wl500gpv2 + dlna + samsung ue32d6510 + torrent daemon.
    В общем, информации об такой связке мало, а осилить не смог и времени свободного было мало.
    Надеюсь в будущем вернусь и доделаю :)
    Если у кого-нибудь получилось, то я бы с радостью почитал.
    А вспомнил, потому что без udpxy так никуда.

    P.S. Как оказалось wl500gpv2 для всего этого слабоват и проседает уже под торрентокачалкой.
    • 0
      Промахнулся, вот мой ответ.
    • 0
      Делал так. Очень не удобно пользоваться. Схема была такая: iptv udp/rtp -> udpxy -> proxy dlna -> mediatomb. Сейчас iptv работает через udpxy+виджет на телике (ue32d6530). Делал по мануалу отсюда forum.ixbt.com/topic.cgi?id=62:19152
    • 0
      с помощью этой штуки можно попробовать (сам не пробовал): xupnpd
  • 0
    Как-то пытался сделать похожую схему. Только на тот момент у меня все файлы и dlna сервер были на компе. Использовал mediathomb (mt). Решил попробовать завернуть IPTV на телевизор через mt. Начитался, что mt умеет не просто файлы стримать но и пускать процессы и стримать результат (есть куча разных примеров транскодеров с ffmpeg). Решил сделать так же с IPTV — ffmpeg читает поток и транскодит его в понятный телевизору формат. Но так и не добился положительных результатов, телевизор просто отказывался это показывать, хотя сам транскодинг работал на ура. В итоге сейчас у меня неттоп c xbmc(всё таки самсунговская оболочка и рядом не стоит с xbmc), а IPTV транслируется через udpxy на роутере. Сейчас посмариваю в сторону LiveTV билда xbmc и tvheadend, но не уверен получится ли пустить tvheadend на роутере (на ddwrt не вышло, щас стоит openwrt, на нём ещё не пробовал).
    P.S. кста, dlna по сути простой http, а udpxy транслирует по http. возможно получится завернуть IPTV с помощью udpxy, такую схему я не пробовал.
  • 0
    Вообще, для просмотра IPTV не через Wifi вообще ничего делать не нужно. Я через udpxy смотрел раньше через WiFi, но, как оказалось, ADSL модем Sagemcom умудряется через 802.11n без преобразрований доставлять IPTV по WiFi! Не верите? Сам фшоке… :-D
    И да. У меня вещание от Ростелекома. Адреса каналов вида udp://IP:PORT/
    • 0
      посредством igmpproxy
    • 0
      Гм. На самом деле, некоторые нормальные роутеры мультикаст и по 802.11g вполне прилично доставляют. HD смотреть не получается, а вот SD — вполне. Там поток-то копеечный — 4-6Мбит, не больше — а если h264, то и сильно меньше. Сейчас сходу не помню, но мне клиенты с полдесятка наименований называли протестированных у пользователей в реальных условиях.
  • 0
    Есть два пути для использования IPTV находясь за роутером:
    1. igmpproxy
    2. udpxy (в этом топике описан)
    3. прозрачный проброс порта от wan до порта с подключенной IPTV приставкой

    Есть еще один затык когда нет прописанного маршрута для мультикаста.
    Тогда добавляем этот статический маршрут

    route add -net 224.0.0.0/4 dev eth1 metric 1

    eth1 — это интерфейс на который wan порт прицеплен
  • 0
    А вот интересно можно ли на OpenWRT настроить DualWan с разными MAC адресами (роутер TP-LINK WR-1043ND с OpenWrt Backfire 10.03.1)? Провайдер РТК, инет оптика, IP-TV через приставку MAG-250, авторизация приставки по MAC, ей при этом выдается IP вида 10.x.x.x. без доступа к интернет. В роутере для ИП-ТВ 1 порт в бридже с WAN. Хочется сделать IP-TV приставку частью общей домашней сети, так как в последних прошивках появилась возможность использовать приставку в качестве медиа плеера читающего из сети по SMB и NFS с домашнего сервера, а так же возможность записи ТВ по расписанию, YouTube и так далее. В инете встречал настройки dualWAN только применительно к нескольким провайдерам для балансировки нагрузки.
  • 0
    офтопик

    Недавно переехал на Netgear WNDR-3800. Подскажите, у вас на OpenWRT какая скорость чтения с USB устройств? На крайних официальных прошивках от Netgear меньше 3 Mb/sec. Попробовал DD-WRT, но она пока сыровата…

    За статью спасибо, вечером попробую.
    • 0
      Чесно говоря даже не пробовал подключать что либо по USB :)
      На выходных посмотрю.
    • 0
      попробовал скопировать 100 метровый файлик с внешнего HDD. Средняя скорость получилась 2500 KiB/s (показания winscp).
  • 0
    В таком виде как приведено не заработало. Причин две
    — 1 внешний интерфейс (тут он eth0.2) в описанной конфигурации не имеет ip адреса и udpxy не понимает откуда брать поток (точнее он будет его брать с адреса pppoe/l2tp, а там его нет, он только в локальной сети провайдера)
    — 2 если запустить udpxy, когда еще не поднят eth0.2, он вылетит с ошибкой, которую вы нигде не увидите, разве что руками запустить попробуете. Надо подождать и запускать его после установки всех сетевых интерфейсов. Тут прикольный момент — он то не работает, а вот уже работает…

    Решение первого вопроса простое — называется DualAccess. На eth0.2 надо подвесить еще один интерфейс в локальную сеть прова. Чтобы не искали дальше инструкция:

    — В /etc/config/network подкорректировать:
    config 'interface' 'wan'
    option 'ifname' 'eth0.2'
    option 'proto' 'dhcp'
    option 'macaddr' 'хх: хх....'

    config 'interface' 'wpppoe'
    option 'ifname' 'eth0.2'
    option 'proto' 'pppoe'
    option 'username' 'me'
    option 'password' 'me_pass'
    option 'keepalive' '5'

    если у кого не pppoe а что-то другое — поменяйте на требуемое.

    — в конфиг файрвола в зону wan добавить строку (чтобы приклеить новый интерфейс в правильное место)
    option network 'wan wpppoe'

    — в файл /etc/rc.local добавить перезапуск сети (иначе после ребута второй интерфейс не поднимается)
    /etc/init.d/network restart

    все это надо проделать только в текстовом редакторе и ни в коем случае не в Люси, она там что-то портит и результат не работает. Т.е. записали, сохранили, перегрузились — joy.
    =====================================

    Насчет второго пункта рекомендаций не имею (я все-таки в линуксе не спец) пока запускаю руками после каждого ребута (ужас), если кто подскажет что делать — буду рад.
    ====================================

    Чтобы не переписывать после каждого обновления настройки TVPlayer можно в нем указать сетевой адрес откуда брать поток. У меня 192.166.1.1:5050 один раз вписал и не надо плэйлист корректровать.
  • 0
    Ребят такой вопрос, у меня вылетает wifi через какое то время работы роутера. всё настроено всё хорошо, по локалке есть интернет, а wifi сначало пропадает интернет при активном подключении а при попытке переподключения он не выдает ip, идет постоянная идентификация, решается перезагрузкой роутера или же перезагрузкой /etc/init.d/network

    что делать, подскажите
    • 0
      У меня было подобное, когда работал торрент-клиент. Долго не думал, просто купил более мощный роутер.
  • 0
    IGMP_OPTS="-a br-lan -m eth1 -p 8888 -M 600"
    В моем случае оказалось достаточно IGMP_OPTS="-p 8080 -a 0.0.0.0"

    Еще небольшая автоматизация. Cделал такой скрипт:
    mkdir /tmp/iptv_tmp mount /tmp/iptv_tmp /www/iptv/ wget -q -O- http://provider.ru/IPTV/IPTV_player/channel_list.php | sed 's/udp\:\/\/@/http\:\/\/192.168.1.1:8080\/udp\//' > /tmp/iptv_tmp/iptvplayer.m3u
    Он трансформирует адреса в плейлисте провайдера и выкладывает на веб страничку роутера. Запихнул этот скрипт в планировщик.

    Подставил в IP TV Player (он обновляет список программ используя этот адрес при запуске):
    http://192.168.1.1:8080/iptv/iptvplayer.m3u

    PS Если будете устанавливать IP TV Player внимательно следите за опциями в процессе установки. Инсталлятор тащит кучу бесполезного софта от яндекса.

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