Сетевая архитектура, которая не тормозит: проектирование и настройка WireGuard, BGP, VLAN
Два офиса, три облачных VPC, десяток разработчиков с ноутбуками — и ни один не может подключиться к production-базе без открытого SSH на весь интернет. Классический OpenVPN с центральным сервером превращается в узкое место: весь трафик идёт через хаб, latency растёт, а при падении сервера вся сеть ложится. Мы проектируем и настраиваем безопасные сети и VPN, которые этого не допускают.
Как настроить WireGuard mesh без единой точки отказа
WireGuard — минималистичный VPN-протокол (~4000 строк кода в ядре Linux). Никакого handshake в традиционном понимании — cryptokey routing на основе публичных ключей. Mesh-топология соединяет каждую ноду напрямую, минуя центральный хаб. Задержка между нодами в одном датацентре — 0,2–0,5 мс вместо 2–5 мс через hub-and-spoke. При WAN-соединении ЕС–США: 85 мс против 170 мс через европейский хаб.
Базовая конфигурация на трёх нодах:
# /etc/wireguard/wg0.conf на node-1 (10.10.0.1) [Interface] PrivateKey = <node1-private-key> Address = 10.10.0.1/24 ListenPort = 51820 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] # node-2 PublicKey = <node2-public-key> AllowedIPs = 10.10.0.2/32 Endpoint = 203.0.113.2:51820 PersistentKeepalive = 25 [Peer] # node-3 PublicKey = <node3-public-key> AllowedIPs = 10.10.0.3/32 Endpoint = 203.0.113.3:51820 PersistentKeepalive = 25 PersistentKeepalive = 25 — keepalive каждые 25 секунд. Нужен для нод за NAT: без него UDP-сессия в NAT-таблице истекает. Для узлов с публичным IP не требуется.
AllowedIPs — это одновременно маршрутизация и ACL. WireGuard отклонит пакет, если source IP пира не совпадает с его AllowedIPs. Это cryptokey routing, а не классический firewall.
Масштабирование: когда руками уже не управиться
Вручную управлять N*(N-1)/2 парами при 50 нодах — это 1225 конфигурационных блоков. На помощь приходят оркестраторы:
-
Netmaker — self-hosted, REST API, dynamic endpoints. Агент на каждой ноде подтягивает конфиг через
wg syncconf. Хранит топологию в SQLite/PostgreSQL. - Headscale — open-source control plane для Tailscale-клиентов. Разворачиваете на своей инфраструктуре, Tailscale-клиенты получают ключи и маршруты от headscale.
- Tailscale SaaS — для быстрого onboarding новых сотрудников: от установки до работающего VPN — 5 минут. Для compliance-окружений выбираем self-hosted.
Настройка WireGuard с оркестратором — типовой проект: проектируем топологию, настраиваем control plane, подключаем ноды. Весь процесс под ключ — от аудита до гоулинга работает.
Что делать, когда NAT мешает прямому соединению
WireGuard использует STUN-подобный механизм для NAT traversal. Если оба пира за double NAT (CGNAT у провайдера), прямое соединение невозможно — трафик идёт через relay (например, DERP в Tailscale). Это увеличивает latency до уровня hub-and-spoke. Диагностика:
wg show wg0 wg show wg0 latest-handshakes wg set wg0 peer <pubkey> endpoint <new-ip>:51820 Если latest-handshakes показывает 2+ минуты назад при активном трафике — UDP блокируется фаерволом или не работает ротация endpoint. Проверяем tcpdump -i eth0 udp port 51820. Мы гарантируем корректную настройку правил фаервола и выбор оптимального relay-сервера.
Когда OpenVPN всё ещё актуален
OpenVPN медленнее WireGuard в 2–4 раза на типовых конфигурациях, тяжелее в настройке, но работает через TCP 443 (маскировка под HTTPS) и поддерживается на legacy-оборудовании (старые роутеры, промышленные контроллеры). Для site-to-site с устаревшими устройствами — единственный вариант. Мы оценим проект и предложим оптимальную стратегию миграции.
BGP: управляем трафиком между датацентрами и облаками
BGP в частной сети — это не только маршрутизация интернета. Он позволяет:
- Anycast: один IP анонсируется из нескольких локаций. DNS, CDN, балансировка на уровне маршрутизации.
-
MetalLB в Kubernetes: поднимает BGP-сессию с физическим роутером и анонсирует VIP нового сервиса типа
LoadBalancer. Роутер добавляет маршрут напрямую — никакого DNAT.
# MetalLB BGP peer apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: name: core-router namespace: metallb-system spec: myASN: 64512 peerASN: 64511 peerAddress: 10.0.0.1 keepaliveTime: 30s holdTime: 90s routerID: 10.0.1.100 Cilium с eBPF может анонсировать Pod CIDR и Service VIP через BGP напрямую, заменяя kube-proxy. Пакеты идут без VXLAN/Geneve — меньше overhead.
VLAN-сегментация: когда bare metal не прощает безнаказанности
Базовое разделение для production:
| VLAN | ID | Назначение |
|---|---|---|
| Management | 10 | IPMI, iDRAC, сетевые устройства |
| Production | 20 | Приложения |
| Staging | 30 | Тестовые среды |
| Storage | 40 | Ceph, NFS, iSCSI — MTU 9000 |
| DMZ | 50 | Публичные reverse proxy |
Storage VLAN с MTU 1500 теряет 20–30% throughput на Ceph из-за фрагментации. На 25 Гбит/с разница между 1500 и 9000 байт — не просто метрика, а деньги (экономия до 40% на облачных тарифах при правильной сегментации).
Что входит в работу (deliverables)
| Этап | Результат |
|---|---|
| Аудит текущей топологии | Схема сети, список проблем, узких мест |
| Проектирование целевой архитектуры | Принципиальная схема, выбор стека (WireGuard / BGP / VLAN и т.д.) |
| Настройка VPN-инфраструктуры | Готовые конфиги WireGuard / OpenVPN, оркестраторы |
| Внедрение сегментации | Настройка VLAN, ACL, firewall политик |
| Интеграция с Kubernetes | MetalLB, Cilium, BGP-сессия |
| Документация | Runbook, схема, список команд |
| Передача знаний | Обучение команды (1 час, 1-2 сессии) |
| Гарантийная поддержка | 2 недели после внедрения (опционально продление) |
Типичные ошибки при настройке WireGuard
- Отсутствие
PersistentKeepaliveдля нод за NAT — соединение падает каждые 2–3 минуты. - Слишком широкие
AllowedIPs(например,0.0.0.0/0) — весь трафик идёт через VPN, хотя нужно только к определённым подсетям. - Не настроен
PostUp/PostDownдля forwarding и NAT — пакеты не маршрутизируются. - Выбран hub-and-spoke для большого количества нод — дешёво, но быстро превращается в узкое место.
Сроки и стоимость
| Задача | Срок |
|---|---|
| WireGuard mesh (до 10 нод) | 1–3 дня |
| WireGuard + оркестрация (Netmaker/Headscale) | 3–5 дней |
| BGP + MetalLB в кластере | 2–4 дня |
| VLAN-сегментация + политики | 3–7 дней |
| Полная мультисайтовая архитектура | 2–4 недели |
Стоимость рассчитывается индивидуально после аудита. При среднем проекте инвестиция окупается за 3–6 месяцев за счёт снижения времени простоев и уменьшения облачных трат.
Оценим вашу текущую сеть и предложим архитектуру, которая не будет тормозить. Свяжитесь с нами — пришлём чек-лист для самостоятельного аудита и договоримся о первой встрече.







