Не работает потоковое видео через Pfsense



  • Pfsense 2.0.1 / squid + guard

    Суть вот в чем.. В сети есть сервер avreg, на который подключены айпи камеры.  Данный сервер умеет успешно транслировать видео с этих камер в браузеры через несложный скрипт  ( тут текст скрипта  текст скрипта с сайта Аврега   )

    Так вот.. понадобилось мне чтоб с только с 1 камеры (столовая) все юзеры могли видеть в своих браузерах загруженность.  В моей сети есть внутренний сайт на битриксе.
    Я создал новую страничку, разместил скрипт. Все отлично заработало на моем пк.

    Но совсем не работает на ПК юзеров, в IE.  Все IE настроены на работу через сквид по порту 3333.

    Все сервера и Пк находятся в одной сети.

    Я добавил порт трансляции с аврега "874"    в      acl safeports и acl sslports      -    от безысходности….  И как же я удивился что заработало ))

    Работало пол дня.. потом резко прекратилось. Что делать не знаю :(

    Надо сказать, что скрипт я настроил на обновление в 0.1сек = 100мс ... Подумал я что Пф сенс решил что это ДДОС какой-либо и заблокировал все нафиг, может и еще что.
    Теперь я поставил 3 сек.. от греха.

    Сервер видео 192.168.3.131 - порт 874.  Веб-сервер, на котором выполняется скрипт и к которому обращаются юзеры, 192.168.3.203 .

    Схема мне видится такой :

    1. Юзер делает запрос на странице в ИЕ (через прокси 192.168.3.254:3333) к 192.168.3.203.
    2. Веб - сервер 192.168.3.203,отрабатывая скрипт,  обращается к видеосерверу 192.168.3.131.
    3. Видеосервер отдает видео поток на 3.203 , а тот в свою очередь должен отдать в окно браузера пользователя.
    4. Обратный маршрут 192.168.3.131 - 192.168.3.203 - 192.168.3.254 - Пк Юзера.  прокладка 192.168.3.254, через которую работают все IE путает маршруты... или порты.

    Помогите пожалуйста разобраться.

    П.с. когда я убираю на любом пк настройки прокси в ИЕ все начинает работать отлично само собой.

    Прилагаю лог , который получается ,если я выполняю скрипт через прокси.
    tcp 192.168.3.254:23634 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:57181 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:35080 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:23388 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:5507 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:24265 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:48601 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:32112 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:36283 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:48526 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:60448 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18023 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18686 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18688 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18689 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18690 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18691 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18692 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18693 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18694 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18695 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18696 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18697 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2
    tcp 192.168.3.254:18698 -> 192.168.3.203:80 FIN_WAIT_2:FIN_WAIT_2



  • а нельзя, в каком либо браузере, оставить настройки без прокси для вашей видеокамеры и не мучить pfsense



  • нельзя , к сожалению.



  • 2 Monarh
    Зачем вы исп. прокси для обращения к локальным ресурсам ??



  • очень верный вопрос.. но у меня почему-то не получается иначе.

    Галочка в ИЕ "не использовать прокси сервер для локальных адресов "  включено 100% на всех ИЕ.

    Если можете, подскажите пожалуйста в чем проблема и почему ИЕ все равно ломится через прокси?

    И все же.. почему так ПФсенс себя повел? Там есть защита от ДДОС (и она сработала) или ее нет?



  • В настройках сквида есть галка "Не исп. прокси для локальных адресов" (только на англ., ес-но). Поставьте ее.



  • хм.
    проглядел 3 раза настройки прокси сервера и прокси фильтра.. Не такой галочки do not use proxy server for local addresses  или подобных.

    squid 2.7.9

    Bypass proxy for Private Address Space (RFC 1918) destination  - речь не об этом ли ?  Если да, то поставить галочку там нельзя, поле не активно. Оно активно только при прозрачном прокси, но у меня он не прозрачен соответственно.



  • @Monarh:

    Галочка в ИЕ "не использовать прокси сервер для локальных адресов "  включено 100% на всех ИЕ.
    Если можете, подскажите пожалуйста в чем проблема и почему ИЕ все равно ломится через прокси?

    До семёрки включительно галочка добавляла только адрес 127.0.0.1. Остальные адреса приходилось добавлять руками отдельно, либо ссылаясь на PAC скрипт.



  • проблему решил добавив в политиках АДа заперт на использования прокси для адресов 192.168.3.*

    Остается вопрос, где же галочка в Пфсенсе, она может пригодится .

    И мне очень интересно почему Пфсенс заблокировал множественные обращения к видеосерверу.



  • https://forum.pfsense.org/index.php?topic=5897.0

    http://www.docunext.com/blog/2007/12/how-i-use-apache-behind-pfsense.html

    Apache can sometimes cause problems when configured certain ways in certain environments with certain clients.

    Like FIN_WAIT_2.

    If you setup Apache behind a pfSense firewall you might notice a lot of FIN_WAIT_2 states in your table. This isn't necessary, and as I understand it is caused by sloppy http clients that never send the FIN/ACK to close the tcp connection.

    There are a few things I've done to alleviate this issue:
    Turn off KeepAlive in Apache
    Reduce the tcp timeout on the Apache server using sysctl ( I use net.ipv4.tcp_keepalive_time = 1800 )
    Reduce the fin timeout (I use net.ipv4.tcp_fin_timeout = 20 )
    Change the firewall optimization setting to aggressive (but actually I've switched it back to normal for the time being)

    The more I read about this, the more I feel its not a serious problem, unless you have several thousand FIN_WAIT_2 states. The one's I'm mostly confused about are the ones from the firewall to the server:
    192.168.3.1:43147 -> 192.168.3.2:80

    There are usually many of these, and I'm not sure exactly why there needs to be so many. I think it may be since I'm using the load balancer, instead of simple nat, which I think would directly use the web server's settings for keeping state.

    Thankfully, pfSense has the “advanced” option for each firewall rule. I went into the rule for port 80, and reduced the timeout for that rule to 20, though I may reduce it more.