TGViewer
| Cloudlink | | Cloudlink | @cloudlink_cmp · 304 subscribers
Post #31 214
Балансировка нагрузки 2/7

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

Балансировка на транспортном уровне (ECMP)

Клиент обращается к балансировщику, тот перенаправляет запрос одному из серверов, который будет его обрабатывать. Выбор сервера, на котором будет обрабатываться запрос, может осуществляться в соответствии с самыми разными алгоритмами: путём кругового перебора, путём выбора наименее загруженного сервера из пула и т.д.

Зачастую балансировку на транспортном уровне не отличить от балансировки на сетевом уровне. Рассмотрим следующее правило для сетевого Packet Filter в OpenBSD: тут идет речь про балансировку трафика на конкретном 80-ом порту TCP:

web_servers = "{ 3.3.3.1, 3.3.3.2, 3.3.3.3 }"

match in on $ext_if proto tcp to port 80 rdr-to $web_servers round-robin sticky-address


Рассмотрим теперь другой пример:

pass in on $int_if from $lan_net \
route-to { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) }\
round-robin


Здесь речь о балансировке исходящего трафика на сетевом уровне, порт и протокол не указаны.

В чем различие?

К сетевому уровню относятся решения, которые не терминируют на себе пользовательские сессии, а перенаправляют трафик и не работают в проксирующем режиме. Балансировщик решает на какой сервер передавать пакеты, пока сессию с клиентом осуществляет сервер.

На транспортном уровне общение с клиентом замыкается на балансировщике, который работает как прокси. Он взаимодействует с серверами от своего имени, передавая информацию о клиенте в дополнительных данных и заголовках. Таким образом работает небезызвестный программный балансировщик HAProxy.

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

Минусы

Надо устанавливать на серверы дополнительный софт, чтобы анонсировать серверную сеть на роутер
Ограниченное количество ECMP на роутер (от 8 до 32 маршрутов, в зависимости от роутера)
При такой схеме нагрузка на все серверы распределяется равномерно, что накладывает требование одинаковости на все серверы. И если добавлять в кластер более современный, мощный, сервер, нагрузка на него будет не больше, чем на соседа.

#балансировка_нагрузки #транспортный_уровень #ecmp #engineering
  • 👍 10
  • 🔥 2
More from @cloudlink_cmp
  1. Sep 22, 2026| Cloudlink | pinned a photo
  2. Sep 22, 2026⭐️Продолжаем рассказывать о возможностях SDN в Cloudlink. В пользовательском портале при п…
  3. Sep 15, 2026🌐 Встречайте новый релиз Cloudlink v1.41! Что нового? ⭐️ Обновили интерфейс конструктора…
  4. Sep 10, 2026⭐️Мы создали механизм согласования заказов, который можно включить для отдельных проектов.…
  5. Sep 8, 2026☄️В Cloudlink появился визард создания правил безопасности. Теперь пользователи могут созд…
  6. Sep 2, 2026⭐️ Как сократить затраты на инфраструктуру, не закупая новые серверы? На Global CIO вышел…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →