The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Pipe: где я ошибся и почему не работает разделение по pipe, !*! Evonder, 10-Май-18, 15:07  [смотреть все]
Всем добрый день. Задам снова простой вопрос, и если кого не затруднит ответить буду благодарен.
    Необходимо ограничить входящий канал по трем группам.
    Ширина канала 30 мбит  

Создаю три pipe
pipe 1 5мбит  (основные пользователи)
ipfw queue  1 config pipe 1 weight 50 queue 60 mask dst-ip 0xffffffff

pipe 2 10мбит (руководство)
ipfw queue  2 config pipe 2 weight 50 queue 60 mask dst-ip 0xffffffff

pipe 3 10мбит (сервисы почта и остальное)

  Дальше правила входящего трафика:
$fwcmd 45  nat 1 all from any to any in recv $Inet
  И после нат идет правило с очередью и pipe.
  Как сделать так, чтобы в каждую очередь с нужным pipe попадали нужные пакеты?
  Т.е. например, нужно применить очередь с pipe 2 для компа руководителя (192.168.31.19/24)
$fwcmd 45  nat 1 all from any to any in recv $Inet
$fwcmd 46 queue  2 ip from any to 192.168.31.19 in recv re1
$fwcmd 47 queue  1 ip from any to any in recv re1

   В этом примере трафик проходит по обеим трубам и по сути правило 47 имея настройку на pipe меньшего объема срезает "трубу" по которое проходит правило для 192.168.31.19.
   Как логически правильно выстраивать pipe для ограничения канала?
   Можно было бы конечно сделать 3 таблицы, в одной ip адреса серверов, в другой пользователи, в третьей начальство. Т.е. 3 не пересекающихся диапазона. По другому никаким образом это не реализуется?
Предположим есть 2 пайпа, 1ый цепляет адреса из таблицы в которую вручную вносят адреса , предположим теже боссы, а второй включает в себя всю подсеть. Есть ли механизм переопределения? Т.е. например первая труба сверяет по адресу назначения, и все, следующая труба уже не обрабатывается, а вторая гребет всех остальных под единое ограничение?

  • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Дум Дум, 16:16 , 10-Май-18 (1)
    • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Goombert, 17:32 , 10-Май-18 (2)
      • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Дум Дум, 10:19 , 11-Май-18 (3)
        • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Дум Дум, 10:21 , 11-Май-18 (4)
          • Pipe: где я ошибся и почему не работает разделение по pipe, !*! artemrts2, 11:48 , 11-Май-18 (5)
            • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Аноним, 12:15 , 11-Май-18 (6)
              • Pipe: где я ошибся и почему не работает разделение по pipe, !*! artemrts2, 13:20 , 11-Май-18 (7)
                • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Evonder, 11:31 , 13-Май-18 (8)
                  >[оверквотинг удален]
                  >> Это какой такой завод? Вместо работы торренты??
                  >> Н-да.. поэтому так и живём.
                  >> Или работа у них такая - "торрентом качать"?!
                  >> Однако!
                  >>> Если нужен более подробный конфиг - могу поделиться.
                  >> Нужен! И Господь наш призывал делиться!
                  >> Так что, назвался груздём - открывай ворота и не говори, что не
                  >> дюж.
                  > Если ТС захочет, и обратится с просьбой, то я скину, а ты
                  > анон проходи мимо, т.к. не потеме.

                    Всем добрый день! Прошу прощения что не отвечал долго, мне сейчас все варианты интересны, поскольку только изучаю возможности freebsd, свой изначальный вопрос я разрешил с помощью skipto, правила вот такого вида:

                  $fwcmd 30  nat 1 all from any to any in recv $Inet
                  $fwcmd 31  skipto 40  all from any to 192.168.31.19 in recv re1 #вместо адреса таблица с ip руководства
                  $fwcmd 32 queue  1 ip from any to any in recv re1 #полоса для всех в 2 мбит
                  $fwcmd 33  skipto 0100  all from any to any in recv re1 #чтобы избежать повторного шейпа в 40 и увеличения задержки
                  $fwcmd 40  queue  3 ip from any to 192.168.31.19 in recv re1

                  $fwcmd 0100 pass  all from any to any

                     Не знаю насколько это граблями выглядит, но данный вариант позволяет не париться с разбитием на таблицы всех адресов из области, а лишь выдергивать нужные и засовывать в таблицу в правило 31.
                    Дополнительные skipto позволят избежать лишнего прохождения через нижележащие шейпы не увеличивая тем самым задержку в получении пакетов.

                      artemrts2  Если не затруднит скинте Ваш вариант конфигурации, почитаю про эту возможность, от Вас про нее в первый раз услышал.

                • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Аноним, 08:55 , 16-Май-18 (12)
        • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Evonder, 11:36 , 13-Май-18 (9)
          >[оверквотинг удален]
          >> Если не ошибаюсь при one_pass 1 не будет работать  нат вместе
          >> с пайп, поскольку сразу после любого из них пакет полетит минуя
          >> правила.
          >  $Inet это re1?
          >>    Но если первой трубой будет идти канал в 1мбит
          >> а второй 5, разве во вторую трубу не будет заходить уже
          >> зашейпленный до 1мбита поток, смена ничего не даст
          > Если верить ману: "Packets are appended to the queue as they come
          > out from ipfw", а вообще стоит посмотреть в сторону "LOOKUP TABLES"
          > с "tablearg" оттуда же.

            Изначально ответ прочитал с мобильного и смысл полностью не осознал))
          Получается пакеты "прикладываются" к той же очереди, что шейпила их наружу.
          В моем конфиге это не сработало видимо по той причине, что труба на ружу одна для всех, ведь по сути 99% трафика пользовательского идет in а не out, наружу ширина канала не так критична как закачка. Поэтому поставил единую очередь для всех кроме сервисов.

          • Pipe: где я ошибся и почему не работает разделение по pipe, !*! Evonder, 12:50 , 13-Май-18 (10)
            >[оверквотинг удален]
            >>> зашейпленный до 1мбита поток, смена ничего не даст
            >> Если верить ману: "Packets are appended to the queue as they come
            >> out from ipfw", а вообще стоит посмотреть в сторону "LOOKUP TABLES"
            >> с "tablearg" оттуда же.
            >   Изначально ответ прочитал с мобильного и смысл полностью не осознал))
            > Получается пакеты "прикладываются" к той же очереди, что шейпила их наружу.
            >  В моем конфиге это не сработало видимо по той причине, что
            > труба на ружу одна для всех, ведь по сути 99% трафика
            > пользовательского идет in а не out, наружу ширина канала не так
            > критична как закачка. Поэтому поставил единую очередь для всех кроме сервисов.

            Packets are appended to the queue as they come

              Не совсем понятен механизм работы.

            Попробовал сэмулировать этот принцип работы. Два пайпа на выход, на 1 мбит и 2 мбита. Если первым идет 1мбит, то второй по сути не работает, поскольку канал уже заужен, смена мест суммы не меняет, все тоже самое и на вход. В итоге если нет четкого разделения по ip, то ничем другим как skipto потоки не разделить. Будут перемешиваться в pipe и шейпиться самым узким.




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

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