Перейти к содержимому

Многоканальное 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 #ДомашняяЛаборатория