Многоканальное TCP-соединение VPN типа «сайт-сайт» (удвоенная пропускная способность + мгновенное...
LinuxCloudHacks
0:00 / 0:00
Многоканальное TCP-соединение VPN типа «сайт-сайт» (удвоенная пропускная способность + мгновенное...
2 486 просмотров · 2 месяца назад
LinuxCloudHacks
15,6 тыс. подписчиков
2 486 просмотров · 2 месяца назад
Задумывались ли вы когда-нибудь, как объединить пропускную способность нескольких интернет-соединений для одного TCP-потока? Традиционные методы объединения (например, LACP) или маршрутизация ECMP уровня 3 не справляются с этой задачей, поскольку они привязывают отдельные потоки к одному интерфейсу. На помощь приходит Multi-Path TCP (MPTCP) — невероятная технология, встроенная непосредственно в основное ядро Linux с 2020 года, которая динамически разделяет и объединяет одно TCP-соединение по нескольким физическим каналам.
В этом видео мы создадим с нуля полностью зашифрованный высокопроизводительный VPN-туннель типа «сайт-сайт», используя sing-box (Shadowsocks 2022 + BLAKE3) поверх MPTCP. Мы рассмотрим, почему стандартные статические маршруты не справляются с балансировкой отдельных потоков, углубимся в механику хеширования портов ECMP уровня 4, настроим подпотоки MPTCP и реализуем готовую к использованию систему — даже когда оба узла находятся за NAT 1:1.
🚀 Репозиторий GitHub (код и конфигурации): 👉 https://github.com/filip-lebiecki/mptcp
🚀 Домашняя страница MPTCP: 👉 https://www.mptcp.dev/
🚀 Демон MPTCP: 👉 https://github.com/multipath-tcp/mptcpd
🚀 sstui: 👉 https://github.com/filip-lebiecki/sst...
📌 Что вы узнаете:
Архитектурные ограничения LACP и Layer 3 ECMP для оптимизации однопотоковой передачи.
Как использовать примитивы маршрутизации Linux (ip nexthop и группы nexthop).
Как настроить ограничения MPTCP, конечные точки сигналов и пути подпотоков с помощью команды `ip mptcp`.
Принудительное включение поддержки MPTCP в стандартных приложениях с помощью `mptcpize`.
Развертывание прозрачного туннеля уровня 4 между сайтами с использованием `sing-box` через интерфейс TUN.
Преодоление NAT-среды 1:1 с помощью привязки пути к публичному IP-адресу.
⏱️ Временные метки видео
00:00 - Введение: Преодоление барьера 1 Гбит/с с помощью одного TCP-потока
02:06 - Архитектурная схема и обзор топологии
03:09 - Ограничения статических маршрутов и почему LACP не работает на уровне 3
06:23 - Подробный анализ Nexthops в Linux
09:28 - Группы Nexthops
11:23 - Маршрутизация ECMP, хеширование FIB и ограничения энтропии портов на уровне 4
14:23 - Введение в MPTCP: подпотоки и номера последовательности данных (DSN)
15:29 - Минимальная демонстрация MPTCP (конечные точки ip mptcp, ограничения и mptcpize)
20:20 - Архитектура прозрачного туннелирования с sing-box (gVisor Netstack)
22:13 - Настройка sing-box Site-to-Site VPN-туннель
26:05 - Тестирование пропускной способности TCP и UDP (с демонстрацией автоматического переключения при сбое)
26:59 - Реальное развертывание: серверы с двумя подключениями за NAT 1:1
31:49 - Заключение: брандмауэры, промежуточные устройства и устранение неполадок (ограничение MSS)
#Linux #Сеть #MPTCP #СистемныйАдминистратор #DevOps #VPN #SingBox #Shadowsocks #ECMP #ДомашняяЛаборатория