У меня есть интересная проблема: наш балансировщик нагрузки (FiberLogic OptiQroute 2140), кажется, постоянно отдает предпочтение одному WAN-соединению по сравнению с другим (а не тем, которое мне нужно).
У нас есть два WAN-соединения от разных поставщиков услуг. Одно из них - SDSL-соединение со скоростью 3 Мбит / с (WAN1), а другое обеспечивается кабельным модемом (WAN2) со скоростью 4 Мбит / с / 1 Мбит / с. Все наши общедоступные сервисы находятся в сегменте / 24 соединения WAN1. Это включает в себя наши почтовые шлюзы, DNS, доступ к OWA Exchange, различным веб-сайтам и нескольким хорошо используемым службам VPN. Мы получаем довольно много входящего трафика на этой стороне балансировщика нагрузки.
Другая сторона (WAN2) в основном не используется для входящего трафика. Соответственно, балансировщик нагрузки настроен на взвешивание этой стороны. Мы хотим направить как можно больше исходящего трафика из соединения WAN2. На практике этого не происходит. Что произойдет, так это то, что комбинация входящего трафика (шлюз SMTP, отправляющий электронную почту, подрядчики, использующие VPN, удаленные пользователи, получающие доступ к OWA, и т. Д.) Будет потреблять от 1/3 до 1/2 доступной полосы пропускания в WAN1. Затем на Facebook заходят около 300 пользователей. Некоторая часть этого трафика будет отправляться через WAN2, но достаточная его часть назначена соединению WAN1, что приведет к насыщению канала, и тогда все будет работать медленно для всех. Действительно медленно. Между тем, на другом соединении по-прежнему не используется 2 Мбит / с полосы пропускания. Это случается достаточно часто, чтобы доставить больше, чем неудобство.
WAN1:
WAN2:
Итак, как вы можете видеть из графиков Rrdtool, в то время как WAN1 колеблется около 2,5–3 Мбит / с во время пикового использования, WAN2, кажется, всегда остается в диапазоне 1-2 Мбит / с. В Priority
и Weighted
были установлены максимальные значения (65535) для WAN2 и 10 для WAN1. В руководстве говорится об этих вариантах конфигурации:
Priority: Enter a priority value for the WAN
port. The range is between 0 and 65535.
Weighted: Enter a weight value for the WAN
port. The range is between 0 and 65535.
The higher the weight placed on an interface, the more opportunity for this interface to transmit data.
For example, when the device makes use of 2 WAN ports. WAN 1 has a weighted value of 1 and WAN 2 has a weighted value of 3.
The transmission will be like the following:
At t=0, WAN 1 transmits
At t=1, WAN 2 transmits
At t=2, WAN 2 transmits
At t=3, WAN 2 transmits
At t=4, WAN 1 transmits
Так что я здесь делаю не так? Теоретически установив Priority
и Weighted
Значения для WAN2 настолько высоки, что, если пакет уже не является частью установленного потока, запущенного входящим трафиком в WAN1, в девяти случаях из десяти он должен быть отправлен из WAN2. Фактически, это именно то поведение, которое мы хотим от OptiQroute; если пакет еще не является частью установленного входящего потока, отправьте его через WAN2. WAN1 по существу должен использоваться только для обслуживания нашего сегмента сети общего пользования / 24.
Как я могу настроить OptiQroute на такое поведение?
Мне не нравится отвечать на свой вопрос, но я еще немного покопался в документации OptiQroute и обнаружил волшебные настройки.
OptiQroute выполняет то, что называется «HyperNAT». Не совсем ясно, является ли это преобразованием сетевых адресов. Насколько я могу судить, это, вероятно, просто пересылка и перенаправление, но фактическая реализация довольно непрозрачна. Тем не менее, OptiQroute поддерживает несколько средств «перенаправления», когда задействовано более одного интерфейса. Эти настройки находятся в разделе Конфигурация -> NAT -> Метод планирования для HyperNAT.
По умолчанию используется автоматическое обучение, при котором полностью игнорируются любые настройки приоритета и взвешивания. Автообучение «выбирает порт WAN с максимальной неиспользуемой полосой пропускания нисходящего потока и порогом обратной связи ниже 66% (по умолчанию)». Есть отдельные алгоритмы, использующие настройки Priority и Weight (Weighted Round Robin). Я решил использовать Weighted Round Robin, поскольку он казался наиболее близким к моей цели - равномерно распределить трафик по двум портам WAN, но в то же время «предпочитать» соединение WAN2.
С весами, установленными на WAN1 / 10 и WAN2 / 100, почти весь наш трафик уходит через WAN2. Используя Sflow для просмотра протоколов, соединение WAN1, по сути, составляет около 1 Мбит / с, обрабатывая весь наш HTTPS- и DNS-трафик с периодическими всплесками до 2,5 Мбит / с при отправке или получении электронной почты. Также здесь присутствует наш доступ к VPN. Я все еще играю с менее агрессивными настройками веса, но даже при довольно ограниченном HTTP-трафике (который составляет около 80% исходящего трафика), проходящем по ссылке WAN1, похоже, что мы все еще можем насыщать соединение при запуске электронной почты. Переход к менее агрессивному взвешиванию 10/50 подталкивает довольно постоянный трафик 1 Мбит / с (в основном HTTP) по каналу WAN1.
Нет специальной документации о характере настроек веса. Я не могу сказать, являются ли значения абсолютными или относительными. То есть важная ценность разница между весами интерфейса WAN (например, 1:10) или каждый вес оценивается независимо как абсолютное значение. Документация здесь бесполезна, но мои эксперименты заставляют меня думать, что веса оцениваются пропорционально друг другу как отношения. В конце концов я решил использовать WAN1 / 10 и WAN2 / 60 для настройки веса.
Другая волшебная настройка находится в Configuration -> Interface -> WAN -> Smart Outgoing. Если соединение WAN достигло максимальной указанной полосы пропускания, это направит трафик на другой интерфейс WAN. Без этого (и с агрессивными настройками веса) он просто полностью перегрузит 4 Мбит / с, доступные на стороне WAN2. Мгновенно.
Трубки не забиты.
WAN1:
WAN2: