Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Справедливо и равномерно разделить канал

    Scheduled Pinned Locked Moved Russian
    29 Posts 6 Posters 14.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      nomeron
      last edited by

      d - милисекунд (milliseconds )

      1 Reply Last reply Reply Quote 0
      • S
        schmel
        last edited by

        Решил тут запостить.
        Есть локальная сеть и несколько туннелей openvpn.
        Lan сетей -3шт и выше
        Один WAN - 20Мб\с
        Внутри сети провайдера 100Мб\с (пул из внешних IP)

        Помогите выпрямить руки.

        Требования такие:
        На LAN1 выделен канал - 8Мб\с, на LAN2 - 6Мб\с и на LAN3 - 1Мб\с.
        LAN3 - общественный Wi-Fi, поэтому выбрал тип шейпера PRIQ и установил лимит в 1мб\с, Queue limit - в 2000, закрыл все порты кроме 80, 53, 443
        такие же настройки на те интерфейсы, которым наша контора предоставляет интернет, просто режу канал на весь интерфейс без всяких трубок. Правда все порты разрешены (правильно ли в этом случае использовать PRIQ, не вылезут ли они со своими P2P сверх своей скорости? )
        На speedtest.net показывает ту скорость, которую указал.

        LAN1 и LAN2 - это внутренние сети, там использую CBQ . И так настраиваю трубки:
        Выставляю скорость в интернет на интерфейс: 8 и 6 Мб\с
        Далее qACK выделяю 10% канала. Заодно ставлю галку " Borrow from other queues when available"
        Я так понял, что если трубки не хватает, то можно и от других отъедать, если они свободны.
        Приоритет 6

        Трубке qP2P ставлю приоритет 1
        использовать как трубу по умолчанию
        15% полосы
        галку " Borrow from other queues when available"
        Queue limit - 500

        qOthersHigh - 60% полосы (сюда входит web трафик)
        галку " Borrow from other queues when available"
        Приоритет - 4

        WAN - CBQ
        Bandwidth - 90Mb\s (реально пров дает 25), вот тут я не знаю как быть - выставлять скорость физического канала
        или выставлять столько сколько пров дает? Ведь на LAN я уже выставил, что скорость будет фиксированной.
        qACK, qP2P, qOthersHigh - так же как и на LAN

        Все делаю мастером.

        При таком раскладе так же режется трафик по OpenVPN и по LAN, пинг c pfsense до соседней машинки 900мс идет.
        хотя без шейпера  1-2мс. В инет пинги нормальные.

        Как мне сделать так, чтобы определенные подсети вообще не шейпились.

        Сделал alias (UNLIME)- запихал туда все подсети, на которых 100Мб\с
        Сделал трубку qUnlim - выставил 90мб\с
        В Floating прописал правило * UNLIME * UNLIME * * qUnlime
        Но шейпер валится с ошибкой, что скорость в трубке qUnlim, превышает скорость интерфейса.
        Как можно сделать так, чтобы alias не шейпился?

        1 Reply Last reply Reply Quote 0
        • werterW
          werter
          last edited by

          Идти от обратного. Не создавать отдельную очередь , а указать в созданных ранее Floating Rules в сурс или дестинэйшн (в зависимости от ситуации) ваш алиас. Если алиас будет в дестинэшн - то ставить галку на not , т.е. получится not destination.
          Отследить правильно ли работает правило во Floating Rules легко - поставить на нужном галку Log , сделать reset states для чистоты и в Status: System logs: Firewall отслеживать, периодически нажимая f5 для рефреша.

          И не забывать делать Reset States!

          1 Reply Last reply Reply Quote 0
          • S
            schmel
            last edited by

            Идти от обратного. Не создавать отдельную очередь , а указать в созданных ранее Floating Rules в сурс или дестинэйшн (в зависимости от ситуации) ваш алиас. Если алиас будет в дестинэшн - то ставить галку на not , т.е. получится not destination.

            Спасибо, но я так примерно и делал:
            В Floating прописал правило    *   UNLIME   *  ! UNLIME   *   *    qUnlime
            или

            • !UNLIME   *  ! UNLIME   *   *    qOthersHight
              Пробовал в Adwanced указывать not/qOthersHight qACK/not и тп.
              Но это все равно шейпирует трафик на этом алиасе. Точнее выше выставленного Bandwidh на интерфейсе никак не прыгает. Можно ли вообще убрать шейпирование на этих адресах?
              Сейчас смотрю на Limiter, но честно говоря не пойму как им пользоваться.
            1 Reply Last reply Reply Quote 0
            • werterW
              werter
              last edited by

              @schmel:

              Идти от обратного. Не создавать отдельную очередь , а указать в созданных ранее Floating Rules в сурс или дестинэйшн (в зависимости от ситуации) ваш алиас. Если алиас будет в дестинэшн - то ставить галку на not , т.е. получится not destination.

              Спасибо, но я так примерно и делал:
              В Floating прописал правило    *   UNLIME   *  ! UNLIME   *   *    qUnlime
              или

              • !UNLIME   *  ! UNLIME   *   *    qOthersHight
                Пробовал в Adwanced указывать not/qOthersHight qACK/not и тп.
                Но это все равно шейпирует трафик на этом алиасе. Точнее выше выставленного Bandwidh на интерфейсе никак не прыгает. Можно ли вообще убрать шейпирование на этих адресах?
                Сейчас смотрю на Limiter, но честно говоря не пойму как им пользоваться.

              Невнимательно читаете написанное мною . В созданных РАНЕЕ правилах! Не нужно создавать новые правила!
              В созданных ранее (в каждой!) указать в дестинэйшн !UNLIME . Далее, включить логирование на некоторых правилах для проверки и сделать reset states. И всё, можно идти в логи и смотреть.

              1 Reply Last reply Reply Quote 0
              • M
                mariohs
                last edited by

                2pfsensizator: Получилось ли у тебя настроить limiter в соответствии с твоей задачей? Можешь скриншоты или видео выложить?
                @SysR:

                Если хочешь идеально равномерно то тогда на каждый хост необходимо создавать отдельную очередь и правило.

                Т.е. на каждого пользователя нужно создавать отдельную очередь и правило? А если пользователей 100, для каждого вручную все создавать?

                1 Reply Last reply Reply Quote 0
                • S
                  schmel
                  last edited by

                  В созданных ранее (в каждой!) указать в дестинэйшн !UNLIME

                  а понял теперь, попробую, спасибо.

                  1 Reply Last reply Reply Quote 0
                  • S
                    schmel
                    last edited by

                    Создал правила мастером, выбрал один WAN и несколько LAN, в floating в каждое правило прописал в destination !UNLIME
                    Все равно на speedtest провайдера (адреса из alias) скорость не поднимается выше той, что указана на интерфейсе. (qInternet)
                    Как можно еще попробовать?

                    1 Reply Last reply Reply Quote 0
                    • werterW
                      werter
                      last edited by

                      В логах смотрим, попадают ли адреса из Unlime в правила floating. Если да , то неправильно настроены правила.

                      1 Reply Last reply Reply Quote 0
                      • S
                        schmel
                        last edited by


                        Я как Вы и сказали, сделал в destination !UNLIME во всех правилах.
                        Но почему-то если замерять скорость на speedtest.net до серверов провайдера весь трафик попадает в p2p трубу (по умолчанию, фиксированная) и скорость не превышает отведенных % на трубу p2p. Если измерить до других серверов, то используется qOtherHight и скорость нормальная. А если убрать !UNLIME с 80 порта, то все нормально, трафик ограничивается шириной отведенной трубы qInternet на адреса провайдера, но все равно шейпится.
                        Может во floating еще какое правило добавить нужно?

                        1 Reply Last reply Reply Quote 0
                        • werterW
                          werter
                          last edited by

                          reset states делали после всех настроек шейпера или пиф ребутили?

                          P.s. На вашем скрине в правом верхнем углу висит предупреждение о неправильных настройках шейпера. Вы его читали-исправляли?

                          1 Reply Last reply Reply Quote 0
                          • S
                            schmel
                            last edited by

                            @werter:

                            reset states делали после всех настроек шейпера или пиф ребутили?

                            P.s. На вашем скрине в правом верхнем углу висит предупреждение о неправильных настройках шейпера. Вы его читали-исправляли?

                            States сбрасывал, сейчас вот перезагрузил - тоже самое если указывать !UNLIME, http трафик попадает в p2p трубку. Ошибку писал шейпер, что для интерфейса opt1 (этот интерфейс для wi-fi) не задана трубка по умолчанию, хотя в настройках стояла галка на qOthersDefault, снял галку и поставил потом заново - вроде перестал писать, но все осталось так же. Может есть какие-то скрытые правила во floting или CBQ всегда неизвестный трафик отправляет в трубку по умолчанию?

                            1 Reply Last reply Reply Quote 0
                            • werterW
                              werter
                              last edited by

                              Настройте шейпер ВНИМАТЕЛЬНО (!) и ПОНИМАЯ ЧТО ДЕЛАЕТЕ (!) с нуля. У меня все отлично работает. Шейпит только то , что я указываю.

                              P.s. Исп-ую HFSC в кач-ве алгоритма шейпинга.

                              1 Reply Last reply Reply Quote 0
                              • N
                                nomeron
                                last edited by

                                А с чем может быть связано, что правила ! алиас не грузятся фаерволом (вверху ошибка крутится постоянно)

                                1 Reply Last reply Reply Quote 0
                                • werterW
                                  werter
                                  last edited by

                                  @nomeron:

                                  А с чем может быть связано, что правила ! алиас не грузятся фаерволом (вверху ошибка крутится постоянно)

                                  Там и о причине обычно пишется. Попробуйте пересоздать проблемный алиас.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    schmel
                                    last edited by

                                    @werter:

                                    Настройте шейпер ВНИМАТЕЛЬНО (!) и ПОНИМАЯ ЧТО ДЕЛАЕТЕ (!) с нуля. У меня все отлично работает. Шейпит только то , что я указываю.
                                    P.s. Исп-ую HFSC в кач-ве алгоритма шейпинга.

                                    Удалил все правила, настроил заново, но все равно весь неизвестный трафик попадает в p2p трубу (p2pCatchAll).
                                    Pfsense 2.0.1
                                    CBQ
                                    работает, если только по умолчанию использовать трубу со скоростью интерфейса qLink и выставить на нее высший приоритет, но так не катит, так как остальной паразитный трафик тоже будет попадать в эту трубу.
                                    Если не секрет - не поделитесь своим конфигом?

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      schmel
                                      last edited by

                                      решил пока таким способом:
                                      1. Создал отдельную трубку qLink и выставил bandwidh 90Mb\s

                                      LAN
                                      –qLink (90 Mb\s)
                                      --qInternet (14Mb\s)
                                      ----qp2p (5%)
                                      ----qOthersHight (70%)
                                      ----qOthersDefault (20%)

                                      2. Во Floating Rules, как подсказал werter во все правила в destination добавил !UNLIME
                                      3. Самое первое правило сделал  * * * UNLIME * * qACK/qLink

                                      Может кто подскажет более удобное решение?

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        schmel
                                        last edited by

                                        Блин, способ работает, но видать не на всех.
                                        В другом филиале такая же версия и такие же правила, но если я создаю qLink с bandwidht > bandwidht qInternet, то выскакивает соответствующая ошибка:

                                        There were error(s) loading the rules: bandwidth for qLink higher than interface/tmp/rules.debug:48: errors in queue definition pfctl: Syntax error in config file: pf rules not loaded - The line in question reads [48]: queue qLink on le0_vlan100 bandwidth 90Mb priority 6 qlimit 3000 cbq ( ecn ) ..

                                        В этом плане сделал по другому: на интерфейс назначил скорость 100Мб\с (физическая скорость порта)
                                        Создал трубку qLink - 98Mb\s
                                        На трубку qInternet назаначил скорость в 14Мб\с

                                        Будут ли какие-либо подводные камни при такой конфигурации?

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post
                                        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.