Межсетевой экран для разделения трафика равномерно между подключенными пользователями

Сначала я опишу свою ситуацию.

У меня есть сеть, созданная центральным сервером x86 / брандмауэром, 5 точками доступа и 2 неуправляемыми маршрутизаторами между ними.

20 Мбит скачать и 1 Мбит загрузить ADSL.
Загрузка особенно проблематична, поскольку один пользователь, загружающий вложение электронной почты, может замедлить всю сеть до обхода.

Мне нужен какой-то способ равномерно распределить скорость загрузки между подключенными устройствами. Было бы неплохо, если бы он автоматически настраивался, так что

  • 5 подключенных пользователей -> каждый получает 1/5 от полосы пропускания загрузки
  • 10 подключенных пользователей -> каждый получает 1/10 полосы пропускания загрузки

Что бы я хотел:

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

Что я хотел бы избежать:

  • приоритет трафика на основе портов (это не то, к чему я стремлюсь)
  • программы для установки на каждом устройстве (я не могу этого сделать)

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

2 Solutions collect form web for “Межсетевой экран для разделения трафика равномерно между подключенными пользователями”

Я бы порекомендовал pfSense . На главной странице:

pfSense – это бесплатное настраиваемое дистрибутив FreeBSD с открытым исходным кодом, предназначенное для использования в качестве брандмауэра и маршрутизатора. В дополнение к мощной гибкой платформе брандмауэра и маршрутизации, она включает в себя длинный список связанных функций и систему пакетов, позволяющую расширить возможности расширения без добавления раздувания и потенциальных уязвимостей безопасности в базовый дистрибутив.

Также посмотрите страницу с функциями.

Я настоятельно рекомендую вам использовать OpenBSD. Задачу, которую вы запрашиваете, выполняется ALTQ (ALTernate Queuing framework), которая была первоначально перенесена из FreeBSD и интегрирована в PF. Хорошей новостью является то, что OpenBSD собирается получить свою собственную структуру Queuing (она находится в стадии тестирования). Я бы отговорил вас от использования pfSense. pfSense дистрибутив, основанный на FreeBSD, который использует фильтр пакетов OpenBSD (для краткости PF) для фильтрации. В отличие от OpenSSH, например, PF не переносится, его функциональность зависит от сетевого стека. Версия PF, поставляемая с pfSense и FreeBSD, в этом отношении устарела на 3 года и не полностью функциональна из-за отсутствия функциональности в ядре FreeBSD и сетевом стеке. Самое забавное, что ALTQ даже не загружался в ядро ​​FreeBSD по умолчанию. Если вы используете FreeBSD, используйте IPFW, который является брандмауэром по умолчанию FreeBSD. FreeBSD поддерживает также IPfilter. IPFW использовался в качестве базы для IPTables в Linux, и примерно год назад был включен брандмауэр по умолчанию в OS X, когда OS X переключается на очень недавнюю версию PF. Если вам не нравится OpenBSD, используйте NetBSD, который получил собственный НПФ для многоядерных машин. Я не знаю, как выполняется очередность в НПФ.

Я бы также посоветовал вам узнать о очередности, прежде чем начинать что-то делать. Вы можете быть удивлены, узнав, что очередность полезна только для пакетов в исходящем направлении. Как только пакет поступает на интерфейс во входящем направлении, уже слишком поздно его очереди – он уже потребляет пропускную способность сети, чтобы получить доступ к только что полученному интерфейсу. Единственное решение – включить очередность на соседнем маршрутизаторе или, если хост, который получил пакет, действует как маршрутизатор, чтобы включить очередь на внутреннем интерфейсе, где пакеты выходят из маршрутизатора. Поэтому в вашем случае ящик OpenBSD должен действовать как маршрутизатор, чтобы вы могли управлять пользователями.

Что касается GUI, если вам нужен GUI для настройки вашего брандмауэра, у вас, вероятно, нет бизнес-конфигурации. По вашему запросу для очередей, не использующих порты, я вернул бы вас в документацию ALTQ, чтобы вы узнали о различных методах очередей.

  • Несколько шлюзов / серверов имен для физического и логического интерфейса (на одном физическом интерфейсе)?
  • Второй сетевой интерфейс обратной петли (для netem)
  • Какая часть недавней исправления TCP-буфера для Linux также применяется к SCTP?
  • Определение количества упавших пакетов в сырых сокетах
  • Какие сетевые службы зависят от правила iptables «accept related input»?
  • Как разделить привязанное интернет-соединение iPhone с гостем VirtualBox?
  • Мост / Совместное использование сетевого принтера в freebsd
  • Недоступен IP-адрес
  • Как найти различия между macOS и linux wifi-драйверами на Mac-оборудовании?
  • Есть ли инструмент для отображения информации Wi-Fi в консоли?
  • Как удалить интерфейс vnet0?
  • Interesting Posts

    Как хранить в переменной список файлов, который включает обратную косую черту, когда это необходимо?

    X-сервер с драйвером fglrx не будет отвечать после ровно 49 обращений к X-серверу

    Странная проблема обновления с Chromium на Gentoo

    Удалить вторичный IP-адрес с помощью NetworkManager / nmcli

    Используя уже установленный SSH-канал

    Медленный старт Midnight Commander на CentOS

    Консоль USB 4TB полностью замерзает Xubuntu 15.04

    Можно ли просмотреть текст в формате unicode в выводе tcpdump?

    Почему я могу войти в систему с удаленного хоста без пароля или закрытого ключа?

    Как найти перекрытие двух строк в bash?

    rpc.statd не запускается, но требуется для удаленной блокировки (statd unrecognized service)

    Переместите все файлы в новый каталог, за исключением этого каталога

    Проблема с режимом редактирования GRUB2

    Перепишите команду find, которая использует sed -i для AIX

    Существуют ли проблемы с дефисами в функциях, псевдонимах и исполняемых файлах?

    Linux и Unix - лучшая ОС в мире.