Изменение полосы пропускания по времени.



  • Здравствуйте,
    Мой провайдер днём дает полосу 3 Mbit ночью 6Mbit внутрисетевые ресурсы 100Mbit. Настроил Шейпер,  всё работает (3Mbit). Вопрос: Как переключать шейпер ночью на 6 Mbit (или отключать совсем как вариант) и как обеспечить доступ к внутренним ресурсам минуя шейпер?      pfSense 2.0.1



  • Интересно !
    Ждём ответа.
    Спасибо.



  • @Mavric:

    Здравствуйте,
    Мой провайдер днём дает полосу 3 Mbit ночью 6Mbit внутрисетевые ресурсы 100Mbit. Настроил Шейпер,  всё работает (3Mbit). Вопрос: Как переключать шейпер ночью на 6 Mbit (или отключать совсем как вариант) и как обеспечить доступ к внутренним ресурсам минуя шейпер?      pfSense 2.0.1

    Попробую ответить.

    0. Шейпер висит на интерфейсе  , к-ый чаще всего явл-ся каким-то туннелем - pptp, pppoe, l2tp. Соответственно, будет шейпится только то , что бегает в нем. Поэтому никакого урезания трафика ко внутренним ресурасм быть не должно. Но , это для случая, когда доступ ко внутренним ресурсам пров-ра предоставляется напрямую. В противном случае - пункт 2.

    1. Начну с "…и как обеспечить доступ к внутренним ресурсам минуя шейпер?".
    После отработки визарда по шейперу во Floating будут созданы правила. Их следует отредактировать согласно вашим требованиям, т.е. что-то убрать и\или что-то добавить. В каждом из этих правил есть пункт Destination. Так вот указывать там нужно адреса внутренней сети вашего пров-ра и ,конечно же, поставить галочку на not, т.е. получится not destination .После этого сделать Diagnostics: Reset state. Т.о. трафик, идущий ко внутренним ресурсам не будет шейпиться. Если же диапазон внутренних ресурсов пров-ра включает несколько подсетей, то просто создайте alias из этих адресов. Т.е. получится not destination <алиас> там же в каждом правиле во floating rules. Да , и не забывайте делать Diagnostics: Reset state !

    2. Для отключения шейпера в период с 00ч 00мин до 06ч 59мин заходим в Firewall: Schedules , создаем расписание  с 07ч 00мин до 23ч 59мин и выбираем все дни недели . Далее в каждом правиле во floating rules указывая описанные в пункте 1 настройки и выбирая в Advanced features: Schedule имя созданного нами расписания , мы не только получим отсуствие шейпинга к ресурсам во внутренней сети, но и добьемся его отключения в необходимый нам период "правилом от обратного", т.е. указав рабочий диапазон времени для шейпера.

    3. Более сложный вариант, когда шейпер в определенный период времени не отключается, а применяется к более широкой полосе пропускания, мне видится так. Сперва проходим обычным визардом (для 6 мбит\с) и получаем привычные правила во floating rules, к-ые мы редактируем и применяем к ним , если необходимо, п. 1 и , создав предварительно новое расписание в Schedule ,  п. 2.  
    Далее идем  в Firewall: Traffic Shaper и создаем новые очереди (полную иерархию с дочерними очередями) с аналогичными параметрами, только с меньшей скоростью (3 мбит\с) . Затем во floating rules дублируем правила для вновь созданных очередей, т.е. правила те же,  но имена у очередей будут для канала в 3мбит\с и с раписанием для этого канала.
    Еще бы хорошо в cron засунуть скрипт (или команду), к-ый будет делать Reset state два раза в сутки - перед переходом ночью на 6 мбит\с и перед возвращением 3мбит\с  утром для корректной работы шейпера. Тут вам более опытные товарищи подскажут, я надеюсь.

    Пробуйте. Если выйдет - отпишитесь, пож-та.



  • 0.  По поводу провайдера: тунеля нет, всё идёт в общей "трубе". В остальном я примерно так и предполагал.
    2. Про "Diagnostics: Reset state" поподробнее пожалуйста, особенно как это задание сделать в Cron, потому как в BSD я начинающий.
    3. Буду пробовать, по итогам отпишусь.



  • @Mavric:

    2. Про "Diagnostics: Reset state" поподробнее пожалуйста, особенно как это задание сделать в Cron, потому как в BSD я начинающий.

    1. Читаем - http://doc.pfsense.org/index.php/Reset_States
    2. В cron добавляем 2 задания со ссылкой на usr/local/www/diag_resetstate.php на разное время суток. Он уже является исполняемым судя по пермишеннам (0755). Но могут быть ньюансы, проверяйте.



  • @werter:

    @Mavric:

    2. Про "Diagnostics: Reset state" поподробнее пожалуйста, особенно как это задание сделать в Cron, потому как в BSD я начинающий.

    1. Читаем - http://doc.pfsense.org/index.php/Reset_States
    2. В cron добавляем 2 задания со ссылкой на usr/local/www/diag_resetstate.php на разное время суток. Он уже является исполняемым судя по пермишеннам (0755). Но могут быть ньюансы, проверяйте.

    Был неправ :) Не стоит использовать пункт 2 , т.к. по умолчанию "… by default schedules clear the states of existing connections when expiry time has come" (пункт System: Advanced: Miscellaneous:Schedules
    Schedule States отменяет это). Так что задача упрощается.



  • Хм..  Что то не получается дать доступ к внутренним ресурсам помимо шейпера. Видно как то хитрее нужно подойти, но как пока непонятно. Я не вижу правил в фаерволе ограничивающих P2P трафик, поэтому ни как привязать их ко времени не могу.
    По предыдущему посту я так понял не нужно ничего делать с "Reset state"? Господа профессионалы ждем ваших предложений.



  • Хм..  Что то не получается дать доступ к внутренним ресурсам помимо шейпера.

    Адреса внутренней сети ? Одна подсеть? Несколько - создаем алиас с ними.

    Я не вижу правил в фаерволе ограничивающих P2P трафик, поэтому ни как привязать их ко времени не могу.

    Сперва ПРАВИЛЬНО задаем параметры в визарде шейпера. И тогда весь неописанный трафик будет попадать в трубу с НАИМЕНЬШИМ приоритетом (в том числе и р2р) и не мешать остальному с более высоким приоритетом.

    По предыдущему посту я так понял не нужно ничего делать с "Reset state"?

    Учим язык ПОТЕНЦИАЛЬНОГО противника - и нужно и полезно. В *nix-ах без хотя бы начального знания языка делать нечего.

    Ув. Mavric
    Вам выше разложили все по полкам. Не понимаете - никто за вас лично разбираться не будет.

    Пример моего шейпера (очередей) и правил Floating rules :






  • Адреса внутренней сети забиты в алиас "netip"

    Про шейпер я писал, что всё работает, т.е. правила созданы визардом и подправлены. В очередях есть qP2P в правилах нет.

    Был неправ  Не стоит использовать пункт 2 , т.к. по умолчанию "… by default schedules clear the states of existing connections when expiry time has come" (пункт System: Advanced: Miscellaneous:Schedules
    Schedule States отменяет это). Так что задача упрощается.

    Я не понял что вы мне хотели сказать этой фразой по английски, поэтому уточнил. Объясняя, нужно делать скидку на уровень знаний собеседника. Поэтому и задаётся вопрос на русской части форума, что перевод может быть неправильным и далее можно уйти совсем не туда.  Конечно мне бы хотелось "tutorial" чтоб сделать, заработало, потом начать менять под себя  для понимания как это работает. Если нужно могу приложить свои картинки с правилами и очередями. Помогите разобраться, отправлять RTFM самое простое и быстрое.



  • Фраза - не моя, но она достаточно понятна для человека, занимающегося сетями. Вы ведь себя к таким причисляете? И да, путь к фразе я указал.

    В очередях есть qP2P в правилах нет.

    Возможно, во floating rules в вашем случае , весь не классифицированный трафик попадает в очередь по-дефолту (Default). При моей организации шейпинга (мне так удобнее) дефолтная очередь имеет больший приоритет , чем очередь р2р. На скринах выше это отлично видно , как видно и то , какие службы (по портам) попадают в эту и другие очереди.
    Большую наглядность предоставить не могу. Разве только вместо вас сделать, что ,как понимаете, не приемлемо.



  • По фразе: "По умолчанию расписание очищает состояние существующих соединений по истечении времени." Насколько я понял если сработало расписание  то сброс состояний происходит автоматически. Или я не прав?
      Я не прошу сделать за меня, я прошу пояснить некоторые вопросы, в которых у меня нет полного понимания. Я не студент, которому нужно сделать курсовую. Сети - это моё хобби. Информации по pfSense на русском и с нормальным описанием крайне мало, в той книге которую я нашел этот вопрос освещён поверхностно. Даже на форуме нет "нормального" рецепта по установке Samba, Transmission и т.п. "Нормального", на мой взгляд, это шаг за шагом с пояснением почему так и на что обратить внимание. Может некоторые вопросы для профи и очевидны, но люди приходят на форум за помощью, советом, когда не хватает знаний и нет времени ночи просиживать за компом в экспериментах и чтении мануалов. Правильный "рецепт" должен писаться так, чтоб даже дурак смог его повторить с предсказуемым результатом. Понимание приходит позже.

    Сорри за офтопик. Всё сказаное ИМХО.



  • Во-первых, здесь никто никому и ни чего не должен. Мануалы пишутся по личному желанию и содержание их тоже сугубо на личное усмотрение пишущего. Если вы этого до сих пор не поняли - это ваша проблема.
    Вы здесь первый, кто почти требует (!) все расписать и сделать за вас да еще и с подробными объяснениями. Такими "требованиями" вы просто отпугнете даже тех кто и готов был помочь.
    Вам в первых постах мною было достаточно подробно описано как и что делать (даже со скриншотами). Если не понимаете как применить выше описанное к вашей ситуации - RTFM , RTFM и еще раз RTFM (с) .
    Вам явно не хватает теории.
    Даю последнюю ссылку. Человек даже на русский перевел, за что ему огромаднейшее спасибо - http://iboxjo.h1.ru/books.html (там где pfSENSE 2 Cookbook).
    За сим помогать-подсказывать таким "страждущим" желание пропало. Удачи и всех благ.



  • @Mavric:

    По фразе: "По умолчанию расписание очищает состояние существующих соединений по истечении времени." Насколько я понял если сработало расписание  то сброс состояний происходит автоматически. Или я не прав?

    Правила, имеющие настроенный параметр shedule при истечении времени их действия удаляются из списка действующих. Соединения, соответствующие таким правилам, сбрасываются.



  • @dvserg:

    @Mavric:

    По фразе: "По умолчанию расписание очищает состояние существующих соединений по истечении времени." Насколько я понял если сработало расписание  то сброс состояний происходит автоматически. Или я не прав?

    Правила, имеющие настроенный параметр shedule при истечении времени их действия удаляются из списка действующих. Соединения, соответствующие таким правилам, сбрасываются.

    БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!  Коротко и ёмко без лишнего воспитания ;)



  • 2 Werter за ссылку конечно спасибо, но такая книжка есть у меня на русском и уже прочитана. Как я и говорил там довольно поверхностно описано про шейпер, тем более нет ни одного примера, как реализовать изменение правил по времени. По остальному: если хотите помочь - спасибо, но договаривайте до конца или хотя бы отвечайте на вопросы. Не хотите - помогать ваше право, вы же не один на форуме. Но как бы там ни было вы мне помогли решить половину проблемы, а конкретнее: шейпер работает, внутри сетевой трафик использует всю полосу не мешая остальным.  :)  Позже, когда я решу остальные проблемы я выложу "Рецепт" таким, каким на мой взгляд он и должен быть.



  • На данный момент актуален один вопрос: возможно ли менять скорость очереди по расписанию? Если да то как?  Вариант 3  из поста Werter не срабатывает, потому как каждому правилу в "Advansed" нужно указать очередь например "qP2P", но скорость очереди будет 6Mbit. Пытался Визардом создать 2 wan интерфейса с разными скоростями. Не даёт, говорит "У вас только один WAN". Может возможно как то вручную создать дубликат очереди "qInternet" с дочерними очередями, что бы потом сделать дубликаты правил и в них указать разные очереди и соответственно включать и выключать  их по расписанию?



  • У меня работает так, разрыв соединений по планировщику не проверял.








  • Создал в ручную копию очереди qInternet c шириной полосы 6Mbit, со всеми дочерними очередями. В фаерволе создал копии правил в них изменил очереди на "ночные" и включил расписание. Всё получилось! В следующий пост напишу рецепт полностью с картинками.



  • Итак как и обещал с самого начала.
      Задача: Обеспечить QoS, максимально используя полосу предоставляемую провайдером.

    Исходные данные:    Интерфейсы: WAN,LAN.   Интернет: день - 3Mbit, ночь - 6Mbit ,  ресурсы сети - 100Mbit.

    Решение:
     1. Создаем очереди при помощи Wizard. Firewall->Traffic Shaper->Wizards->Single Wan multi Lan. На первой странице количество LAN ->1, далее Sheduler выбираем HFSC (более прогрессивный IMHO) для LAN и WAN. Прописываем скорости на Upload и Download исходя из 95-97% от той скорости, которую показывает www.speedtest.com (для меня 2900Kbit), не нужно выставлять 100% скорости заявленной провайдером, иначе будут проблемы при работе QoS. Далее VoIP  Если мы пользуемся Skype, SIP и т. п. ставим галку Enabled, указываем скорость которую мы хотим гарантировать для VoIP трафика. Далее идёт страница на которой можно назначить приоритет определённым IP (или списку, внесённому в Alias), для меня не актуально. Далее страница P2P ставим галку Enabled, чтоб не засорять правилами firewall выбираем только нужные протоколы (для меня актуально Bittorent, DC++) и выставляем ширину канала Bandwidth  в 2%. Далее страница с правилами для игр. Для меня то же не актуально. На следующей странице можно выбрать приложения которым мы хотим немного повысить или понизить приоритет. Я для упрощения правил ничего тут не трогал, оставив по умолчанию(без галки на Enabled). Конец Wizard. Правила применяются.
     2. Заходим Firewall->Traffic Shaper->ByInterface Очередь qInternet переименовываем для наглядности в qInternet3 Заходим в дочерние очереди, переписываем значения в каждой, на этом этапе можно подправить настройки очередей, например выставить для qP2P параметр Upper m2 в 95-98% (при свободном канале P2P сможет занимать 95-98% пропускной способности). Выбираем LAN -> Add new queue (добавить новую очередь). Добавляем новую очередь "qInternet6" в ней всё выставляем аналогично "qInternet3" кроме Bandwidth(ширина канала) её выставляем исходя из ночного тарифа (5900 Kbit). Дочерние очереди делаем аналогично, причём если ширина полосы стоит в "%" то всё 1:1 с очередями для дневного тарифа. Если стоят абсолютные цифры скорости их нужно подкорректировать. Должно получиться что то похожее на это:




  • 3. Заходим Firewall-> Schedules создаём расписание (время действия правил) выбираем все дни недели, 0-00 до 8-59 и 9-00 до 23-59 называем из 6Mbit и 3Mbit соответственно.

    4. Заходим Firewall-> Aliases. Создаем алиас например "netip" в него вносим адреса, диапазоны внутренней сети.

    5. Заходим Firewall-> Rules-> Floating видим правила, созданные Wizard. Заходим в каждое и изменяем следующие значения:
     Destination ставим галку на not,  Type -> Single host or alias в боксе Address пишем наш алиас netip, это позволит не ограничивать внутрисетевой трафик. Далее в Advanced features выбираем Schedule нажав кнопку Advanced выбираем расписание, в моём случае это  3Mbit. Сохраняем правило. Так проделываем со всеми правилами.

    6. Далее копируем правила нажав + рядом с правилом и изменяем в нём расписание на 6Mbit и в Ackqueue/Queue выбираем очередь соответствующую 6Mbit,  например qP2P6. Сохраняем правило. Так проделываем со всеми правилами.

    При данных настройках с 09-00 до 00-00 используется очередь 3Mbit, с 00-00 до 09-00 используется очередь 6Mbit, внутрисетевой трафик не ограничивается скоростью интернет, но использует QoS и не мешает всему остальному. Правила, имеющие настроенный параметр shedule при истечении времени их действия удаляются из списка действующих. Соединения, соответствующие таким правилам, сбрасываются.
     При желании можно добавить очереди и развести по приоритетам другой трафик в зависимости от  нужд.

    P.S. Спасибо dvserg  и werter за помощь в решении данной проблемы.  ;)








  • :o А мне-то по-што спасибо?



  • Соединения, соответствующие таким правилам, сбрасываются. 
    

    Многих пользователей такое не устроит. Очень неприятно, когда закачки ночные рвутся.
    Ранее в теме werter про галочку указывал

    "… by default schedules clear the states of existing connections when expiry time has come" (пункт System: Advanced: Miscellaneous:Schedules
    Schedule States отменяет это)

    Не пробовали с ней ?
    Как будет ограничена скорость в таком случае ?
    Ведь будет получаться, что некоторое время будут существовать 2 очереди 3Mbit+6Mbit. Конечно, ограничение родительской очереди, не даст скорость больше 6, но интересно в реальных условиях насколько быстро днем все соединения перескочат в 3Mbit.



  • Закачки после сброса восстановятся на новой скорости. А вообще имеется ввиду: не нужно в ручную сбрасывать состояние соединений. При срабатывании расписания это произойдёт автоматически.  Провайдер в любом случае ограничивает до 3Мбит, поэтому нормально не будет работать QoS.



  • @dvserg:

    :o А мне-то по-што спасибо?

    За чёткий ответ, которого я пытался добиться от werter.


Locked