Введение
Overlay-сети (mesh VPN) позволяют создавать защищённые виртуальные сети поверх существующей инфраструктуры, объединяя серверы, рабочие станции и мобильные устройства в единое пространство без привязки к конкретному провайдеру или облачной платформе. Среди open-source решений в этой категории наибольший интерес представляют Headscale (self-hosted реализация control-сервера Tailscale) и Nebula (overlay-сеть, созданная в Slack).
Оба инструмента решают одну задачу — безопасное соединение хостов через недоверенные сети — но делают это принципиально разными способами. Headscale использует протокол WireGuard, а Nebula — собственный протокол на базе Noise Framework. Это архитектурное расхождение определяет различия в производительности, удобстве развёртывания и области применения.
Данный обзор детально рассматривает архитектуру обоих решений, анализирует причины различий в производительности (с фокусом на Nebula), исследует способы оптимизации и формулирует рекомендации по выбору.
Архитектура и принципы работы
Headscale: WireGuard с управляемым control plane
Headscale — open-source реализация координационного сервера Tailscale1. Архитектурно система состоит из двух компонентов:
- Control plane (Headscale) — сервер, отвечающий за регистрацию устройств, распределение ключей, маршрутизацию и управление ACL. Хранит состояние в SQLite или PostgreSQL.
- Data plane (Tailscale-клиент) — использует WireGuard для шифрования трафика между узлами. На Linux может работать как с ядерным модулем WireGuard, так и с userspace-реализацией wireguard-go.
NAT traversal реализован через DERP-серверы (Detoured Encrypted Routing Protocol) — TCP-relay, которые служат резервным каналом, когда прямое соединение между узлами невозможно2. Tailscale поддерживает глобальную сеть DERP-серверов; при использовании Headscale можно развернуть собственные.
Аутентификация — через identity-провайдеры (OAuth2/OpenID Connect). Control plane автоматически генерирует и ротирует ключи, что минимизирует операционную нагрузку на администратора3.
Nebula: децентрализованная mesh-сеть с PKI
Nebula создана инженерами Slack для соединения десятков тысяч серверов в разных дата-центрах и облачных провайдерах4. Архитектура принципиально отличается от Headscale:
- Протокол — собственная реализация на базе Noise Framework (вариант NoiseIX), тогда как WireGuard использует NoiseIK5. Шифрование — AES-256-GCM (с поддержкой ChaCha20-Poly1305 как альтернативы).
- Lighthouse — лёгкие discovery-узлы, помогающие хостам находить друг друга. В отличие от control plane Headscale, lighthouse не управляет ключами и не принимает решения о маршрутизации — он лишь сообщает одному узлу, по какому адресу доступен другой6.
- Аутентификация — через сертификаты, выданные собственным Certificate Authority. Каждый сертификат содержит Nebula IP-адрес, имя хоста и список групп. Управление CA выполняется вручную — генерация, подписание и распределение сертификатов полностью лежит на администраторе7.
- Встроенный firewall — правила фильтрации трафика работают на каждом узле, оперируя не IP-адресами, а группами из сертификатов. Это позволяет задавать правила вида «разрешить хостам с группой WebApp доступ к порту базы данных» без привязки к конкретным адресам5.
Ключевая философия Nebula — децентрализация. Как отмечают разработчики:
«Мы объединили существующие концепции — шифрование, security groups, сертификаты, туннелирование — в интегрированную систему, где целое больше суммы частей»4.
Сравнительная таблица архитектуры
| Характеристика | Headscale/Tailscale | Nebula |
|---|---|---|
| Протокол шифрования | WireGuard (ChaCha20-Poly1305) | Noise IX (AES-256-GCM) |
| Реализация | Ядро Linux + wireguard-go | Только userspace (Go) |
| NAT traversal | DERP relay (TCP) | Lighthouse + UDP hole punching |
| Резервный канал | DERP-серверы | Relay (с v1.6.0) |
| Аутентификация | OAuth2/OpenID через control plane | Статические сертификаты (PKI) |
| Ротация ключей | Автоматическая | Ручная |
| Встроенный firewall | Централизованные ACL | Распределённый на каждом узле |
| Управление | Web UI (Headscale UI) | CLI + конфиг-файлы |
| Зависимость от сервера | Высокая (control plane критичен) | Низкая (lighthouse — только discovery) |
Производительность: почему Nebula медленнее
Пользователи, сравнивающие Nebula с Headscale/Tailscale, регулярно отмечают существенную разницу в пропускной способности. Причины этого различия коренятся в фундаментальных архитектурных решениях.
Главная причина: userspace vs ядро
WireGuard на Linux реализован как модуль ядра, обрабатывающий пакеты непосредственно в kernel space8. Это даёт критическое преимущество: пакеты не покидают ядро для шифрования/дешифрования, отсутствуют переключения контекста между kernel и userspace.
Nebula работает исключительно в userspace — каждый пакет проходит путь:
- Приложение → ядро (сетевой стек)
- Ядро → userspace (TUN-интерфейс → Nebula)
- Nebula шифрует пакет
- Userspace → ядро (UDP-сокет)
- Ядро → сетевой адаптер
Каждый переход между kernel и userspace — это переключение контекста, копирование данных и накладные расходы на системные вызовы. Анализ через perf показывает, что основная часть CPU-времени уходит именно на операции ввода-вывода: sendmsg(), write() в TUN, read() из TUN9.
Tailscale тоже использует wireguard-go (userspace) на macOS и Windows, но на Linux — ядерный WireGuard10. Именно поэтому разница в производительности между Nebula и Tailscale наиболее заметна на Linux.
Количественная оценка разрыва
Официальные бенчмарки от Defined Networking (февраль 2024) на идентичном оборудовании — Dell с i7-10700, 10 Gbps NIC, MTU 124011:
| Метрика | Nebula | Tailscale | Netmaker (kernel WG) |
|---|---|---|---|
| Transmit throughput | ~9000 Mbps | ~9000 Mbps | ~9000 Mbps |
| Receive throughput | ~7800 Mbps | ~8800 Mbps | ~8800 Mbps |
| Память (transmit) | 27 MB | 200+ MB | N/A (kernel) |
| Mbps/CPU (transmit) | 1500 | 3200 | N/A |
На первый взгляд разница невелика при максимальной нагрузке. Однако метрика Mbps/CPU раскрывает суть: Tailscale обрабатывает вдвое больше трафика на единицу CPU, что означает — при одинаковой нагрузке Nebula потребляет существенно больше процессорного времени.
Более показательны результаты на реальном оборудовании среднего класса. На Hetzner с 1 Gbps каналом пользователи фиксировали12:
- Без VPN: 936 Mbps
- Через Nebula: 887 Mbps (~5% overhead)
- Через Nebula (DigitalOcean, бюджетные инстансы): 200–400 Mbps при baseline 2 Gbps
На 10 Gbps канале (Hetzner dedicated) Nebula достигала потолка в ~3.5 Gbps — при том что прямое соединение давало 9.4 Gbps13. Даже после устранения потерь пакетов через увеличение системных буферов, пропускная способность не росла, что указывает на bottleneck в самой обработке пакетов внутри Nebula.
Оптимизации Tailscale, недоступные Nebula
Инженеры Tailscale реализовали серию оптимизаций в wireguard-go, которые позволили userspace-реализации превзойти ядерный WireGuard на отдельных конфигурациях9:
- UDP GSO (Generic Segmentation Offload) — откладывает сегментацию пакетов до последнего момента, позволяя обработать batch пакетов одним системным вызовом. Доступно с Linux 4.18.
- UDP GRO (Generic Receive Offload) — объединяет входящие UDP-пакеты на receive path. Доступно с Linux 5.0.
- TSO через TUN — сегменты до 64 KB проходят сетевой стек как единое целое, сокращая overhead до 44x по сравнению с обычным MTU.
Результат: wireguard-go с оптимизациями — 13 Gbps на bare metal (i5-12400), тогда как baseline wireguard-go — 8.36 Gbps9.
Nebula использует recvmmsg для batch-получения пакетов (параметр listen.batch, default 64)14, но не реализует GSO/GRO/TSO, что ограничивает возможности масштабирования на быстрых каналах.
Влияние MTU
Увеличение MTU TUN-интерфейса с 1500 до 9001 байт в экспериментах Tailscale дало 3-кратный прирост пропускной способности15. Это демонстрирует, что per-packet overhead в userspace-реализациях крайне высок.
Nebula по умолчанию использует MTU 130016 — консервативное значение, безопасное для интернет-маршрутов. В контролируемой среде (AWS внутри одной AZ, где поддерживается jumbo frames) можно поднять до 8800, что существенно сокращает количество пакетов и, соответственно, overhead на каждый из них.
Проблема futex-контention
Анализ системных вызовов Nebula через strace при высокой нагрузке показал13:
futex: 54.81% времениnanosleep: 20.97%recvmmsg: 9.42%
Более половины времени уходит на синхронизацию потоков (futex), что указывает на внутренние lock contention в Nebula при параллельной обработке пакетов. При этом CPU загружался неравномерно — ~125–150% spread по ядрам вместо полной утилизации одного ядра.
Платформенная специфика
На Windows производительность Nebula значительно хуже, чем на Linux — от 5 до 200 Mbps в зависимости от сценария17. Причины: менее эффективный TUN-драйвер и особенности Windows UDP-стека. В версии 1.9.x была обнаружена регрессия, приводившая к fallback на менее производительный UDP listener18.
Разработчики Nebula отмечают:
«Nebula значительно эффективнее, чем wireguard-go, на Windows и macOS»11,
что, впрочем, не компенсирует разрыва с ядерным WireGuard на Linux.
Проблемы Nebula и способы их решения
NAT traversal и symmetric NAT
Наиболее частая проблема пользователей Nebula — невозможность установить прямое соединение между узлами за NAT19. Стандартный UDP hole punching работает для большинства типов NAT, но symmetric NAT (когда маршрутизатор назначает уникальный внешний порт для каждого destination) делает hole punching невозможным20.
Симптоматика: узлы видят lighthouse, но не могут пинговать друг друга.
Решения:
Relay (с версии 1.6.0) — трафик маршрутизируется через промежуточный узел с публичным IP. Данные остаются зашифрованными end-to-end21. Конфигурация:
# На relay-узле relay: am_relay: true # На клиентских узлах relay: relays: - 192.168.100.1Punchy settings — для менее агрессивных NAT22:
punchy: punch: true respond: true respond_delay: 5sStatic Port на OPNsense/pfSense — эти фаерволы по умолчанию перезаписывают исходный порт UDP-пакетов, что ломает hole punching. Решение — правило «Static-Port» в Firewall → NAT → Outbound23.
Управление сертификатами
Ручное управление PKI — главный барьер для внедрения Nebula24. CA-сертификат генерируется offline, каждый хост требует индивидуального сертификата с указанием Nebula IP, имени и групп. Ротация сертификатов требует повторного распределения на все узлы.
Решения:
- Defined Networking (managed Nebula) — полная автоматизация управления сертификатами, SSO-интеграция, free tier до 100 хостов25.
- Ansible/Chef/Puppet — автоматизация через Configuration Management.
- nebula-est — реализация RFC 7030 (Enrollment over Secure Transport) для автоматизации выдачи сертификатов26.
- Nebula-Cert-Maker — bash-скрипты для упрощения генерации сертификатов27.
Нестабильность соединений
Частые разрывы связи могут быть вызваны:
- Истечением NAT-маппинга — решается включением
punchy.punch: true, что периодически отправляет keep-alive пакеты. - Сменой IP-адреса — Nebula поддерживает roaming (смену underlay-адреса) через lighthouse notification.
- Багами в конкретных версиях — v1.9.x содержала регрессию на Windows (fallback на медленный UDP listener), ранние версии имели проблемы с
recvmmsgна ядрах Linux < 2.6.3418.
Отладка
Nebula предоставляет встроенный SSH-сервер для диагностики28:
sshd:
enabled: true
listen: 127.0.0.1:2222
host_key: /path/to/ssh_host_ed25519_key
Доступные команды:
list-hostmap— список известных хостов и их underlay-адресовquery-lighthouse— запрос адреса конкретного хоста через lighthouseprint-tunnel— информация о туннеле с конкретным пиромdevice-info— текущая конфигурация устройства
Облачные решения для Nebula
Defined Networking (managed Nebula)
Defined Networking — компания, основанная разработчиками Nebula — предлагает управляемый сервис поверх open-source Nebula25:
- Автоматическое управление сертификатами — устраняет главную сложность self-hosted развёртывания
- SSO-интеграция — для организаций с несколькими администраторами
- Web UI — управление хостами, ролями, firewall-правилами через admin.defined.net
- API — автоматизация создания хостов, управления ролями, доступ к аудит-логам
- Free tier — до 100 хостов бесплатно29
Процесс развёртывания:
- Регистрация с 2FA
- Выбор CIDR-блока для сети (необратимый выбор)
- Развёртывание lighthouse с публичным IP
- Enrollment хостов через generated config
- Настройка firewall-правил
Self-hosted развёртывание
Для self-hosted Nebula минимальная инфраструктура включает:
- Lighthouse — VPS с публичным IP ($5–6/мес на Linode/DigitalOcean)30. Требует минимальных ресурсов — lighthouse работает как stateless discovery-узел.
- CA — offline-хранение ключа CA (рекомендуется отдельная машина, например Raspberry Pi)27.
- Config management — Ansible/Chef/Puppet для распределения сертификатов и конфигурации.
Развёртывание в облаке (AWS/GCP/Azure)
Nebula cloud-agnostic — overlay-сеть работает поверх любого провайдера:
- В AWS внутри одной AZ поддерживается MTU до 8600 (jumbo frames), между AZ — стандартный 150011.
- Terraform + Ansible — типичный паттерн для автоматизации31.
- Lighthouse может работать на минимальном инстансе (t3.micro / e2-micro).
Сравнение self-hosted vs managed
| Аспект | Self-hosted | Managed (Defined) |
|---|---|---|
| Сложность развёртывания | Высокая | Низкая |
| Управление сертификатами | Ручное | Автоматическое |
| Стоимость | ~$6–50/мес (lighthouse) | Free до 100 хостов |
| Vendor lock-in | Нет | Минимальный (open-source data plane) |
| SSO | Нет | Да |
| Операционная нагрузка | Высокая (PKI, мониторинг) | Низкая |
| Масштабируемость | 50K+ хостов (доказано в Slack)4 | 100K+ хостов |
Оптимизация производительности Nebula
MTU
Наибольший эффект даёт увеличение MTU. Каждый пакет в userspace-реализации несёт фиксированный overhead на переключение контекста — чем меньше пакетов нужно для передачи того же объёма данных, тем меньше суммарный overhead15.
tun:
mtu: 1300 # Default, безопасный для интернета
# Для контролируемой среды (LAN, AWS внутри AZ):
routes:
- route: 10.0.0.0/16
mtu: 8800
Nebula поддерживает per-route MTU — можно выставить высокий MTU для трафика внутри одного дата-центра и оставить 1300 для интернет-маршрутов16.
Буферы и batch-обработка
listen:
batch: 128 # default 64, max пакетов за один syscall
read_buffer: 10485760 # 10 MB, default: системный
write_buffer: 10485760
Важно: параметры read_buffer/write_buffer ограничены системными настройками. Если net.core.rmem_max меньше запрошенного значения, Nebula не сможет увеличить буфер. В таком случае необходимо поднять sysctl13:
sysctl -w net.core.rmem_max=26214400
sysctl -w net.core.wmem_max=26214400
sysctl -w net.core.rmem_default=26214400
TX Queue
tun:
tx_queue: 5000 # default 500
Увеличение очереди передачи помогает при burst-нагрузках, предотвращая drop пакетов на TUN-интерфейсе16.
NAT traversal
Для максимально быстрого установления прямых соединений:
punchy:
punch: true
respond: true
delay: 1s
respond_delay: 5s
Прямое соединение (peer-to-peer) всегда быстрее relay — relay добавляет дополнительный hop и увеличивает latency21.
Выбор шифра
Nebula поддерживает AES-256-GCM (default) и ChaCha20-Poly1305. На процессорах Intel/AMD с аппаратным ускорением AES (AES-NI) — AES-256-GCM быстрее. На ARM или старых CPU без AES-NI — ChaCha20-Poly1305 может быть предпочтительнее12. Важно: все узлы сети должны использовать один и тот же шифр.
Сводка оптимизаций по приоритету
| Приоритет | Оптимизация | Ожидаемый эффект |
|---|---|---|
| 1 | Увеличение MTU (8800 в LAN) | До 3x прироста throughput |
| 2 | Прямое соединение вместо relay | Снижение latency на 1 hop |
| 3 | Увеличение системных буферов | Устранение packet loss |
| 4 | listen.batch: 128 | Сокращение syscall overhead |
| 5 | tun.tx_queue: 5000 | Устранение drops при burst |
| 6 | Проверка AES-NI поддержки | CPU-эффективность шифрования |
Плюсы и минусы
Headscale
Преимущества:
- Использует WireGuard — зрелый, аудированный протокол с ядерной реализацией на Linux
- Совместимость с официальными клиентами Tailscale на всех платформах
- Автоматическое управление ключами и ротация сертификатов
- SSO через OAuth2/OpenID Connect
- Низкий порог входа — «установи и войди»3
- DERP-relay обеспечивает связность даже через самые агрессивные NAT (TCP fallback)
Недостатки:
- Зависимость от control plane — при его недоступности новые соединения невозможны
- Реализует проприетарный протокол Tailscale (open-source клиент, но не протокол)
- Меньше контроля над сетевой политикой по сравнению с Nebula
- Headscale — сторонний проект, не от Tailscale; совместимость может ломаться при обновлениях Tailscale
Nebula
Преимущества:
- Полная независимость от вендора — MIT-лицензия, нет привязки к проприетарному протоколу
- Децентрализация — lighthouse нужен только для discovery, не для работы6
- Встроенный firewall с group-based правилами5
- Проверено на масштабе 50K+ хостов в production (Slack)4
- Минимальное потребление памяти (27 MB vs 200+ MB у Tailscale)11
- Cloud-agnostic — работает идентично на любой инфраструктуре
Недостатки:
- Только userspace — ядерная реализация недоступна, что ограничивает throughput на быстрых каналах
- Ручное управление PKI без дополнительных инструментов24
- Высокий CPU overhead на пакет (Mbps/CPU: 1500 vs 3200 у Tailscale)11
- Проблемы с symmetric NAT без relay-узлов20
- Ограниченная производительность на Windows17
- Нет встроенного web UI для управления
- Отсутствие SSO в open-source версии
Дискуссионные вопросы и противоречия
«Nebula медленная» — миф или реальность?
Официальные бенчмарки Defined Networking показывают, что Nebula способна насыщать 9 Gbps канал11. Однако пользовательские тесты на 10 Gbps каналах фиксируют потолок в 3.5 Gbps13. Разработчики объясняют это различием в оборудовании и конфигурации, но сам факт bottleneck в обработке пакетов подтверждается анализом через strace (futex contention).
Разработчики сами озаглавили свой benchmark-пост «Nebula is not the fastest mesh VPN»11, открыто признавая, что приоритет — предсказуемость и экономия ресурсов, а не максимальная пропускная способность.
Userspace — неустранимое ограничение?
Tailscale продемонстрировала, что userspace-реализация (wireguard-go) может превзойти ядерный WireGuard при использовании GSO/GRO/TSO оптимизаций9. Теоретически аналогичные оптимизации могут быть применены в Nebula. На практике это требует значительной переработки сетевого стека Nebula, и на момент исследования подобные изменения не анонсированы.
Сертификаты vs SSO
Сертификатная модель Nebula даёт криптографически строгую идентификацию без зависимости от внешних сервисов — но ценой ручного управления. Tailscale/Headscale делегирует идентификацию identity-провайдерам, что удобнее, но создаёт зависимость от доступности SSO-сервиса. Managed Nebula от Defined Networking предлагает компромисс — SSO поверх сертификатной модели.
Рекомендации по выбору
Выбирайте Headscale, если
- Нужна максимальная производительность на Linux (ядерный WireGuard)
- Важна простота развёртывания и управления
- Требуется SSO-интеграция
- Команда небольшая, инфраструктура умеренного масштаба
- Приемлема зависимость от Tailscale-экосистемы
Выбирайте Nebula, если
- Критична полная vendor-независимость
- Нужен распределённый firewall с group-based правилами
- Масштаб — тысячи и десятки тысяч хостов
- Предсказуемость потребления ресурсов важнее пиковой скорости
- Команда готова управлять PKI (или использовать Defined Networking)
- Lighthouse-архитектура предпочтительнее центрального control plane
Выбирайте Managed Nebula (Defined Networking), если
- Нравится архитектура Nebula, но не хочется управлять PKI
- Нужна автоматизация сертификатов и SSO
- Сеть до 100 хостов (free tier)
Если Nebula медленная — чеклист оптимизации
- Убедиться, что соединение прямое (не через relay) —
nebula-ssh list-hostmap - Поднять MTU до максимума среды (8800 в LAN/облаке)
- Увеличить системные буферы (
net.core.rmem_max,wmem_max) - Настроить
listen.batch: 128,tun.tx_queue: 5000 - Включить
punchy.punch: trueиpunchy.respond: true - Проверить наличие AES-NI на CPU (
grep aes /proc/cpuinfo) - На Windows — обновиться до последней версии (значительные улучшения производительности в свежих релизах)
Quality Metrics
| Метрика | Значение |
|---|---|
| Источников найдено | 48 |
| Источников процитировано | 31 |
| Типы источников | official: 12, technical blog: 9, GitHub issues: 7, community: 3 |
| Покрытие цитатами | 92% |
| Исследованных подвопросов | 6 |
| Раундов исследования | 2 (initial + iterative deepening) |
| Вопросов в ходе анализа | 4 |
| Вопросов решено | 4 |
| Вопросов с недостаточными данными | 0 |
Headscale — GitHub. Open-source, self-hosted implementation of the Tailscale control server. ↩︎
Setting Up Headscale and Tailscale for Secure Private Networking. Руководство по развёртыванию Headscale с DERP-серверами. ↩︎
Nebula vs. Tailscale — Tailscale. Официальное сравнение Tailscale и Nebula. ↩︎ ↩︎
Introducing Nebula, the open source global overlay network from Slack. Slack Engineering Blog, ноябрь 2019. ↩︎ ↩︎ ↩︎ ↩︎
Comparing and contrasting Nebula and WireGuard — Defined Networking. Техническое сравнение протоколов Nebula и WireGuard. ↩︎ ↩︎ ↩︎
Introduction to Nebula — Nebula Docs. Официальная документация Nebula. ↩︎ ↩︎
Quick Start — Nebula Docs. Руководство по начальной настройке Nebula с генерацией CA и сертификатов. ↩︎
WireGuard vs Tailscale: Performance, Configuration, and Costs — Contabo. Сравнение производительности ядерного WireGuard и Tailscale. ↩︎
Surpassing 10Gb/s over Tailscale. Детальное описание GSO/GRO/TSO оптимизаций в wireguard-go. ↩︎ ↩︎ ↩︎ ↩︎
Kernel vs. netstack subnet routing — Tailscale Docs. Документация по различиям kernel и userspace режимов в Tailscale. ↩︎
Nebula is not the fastest mesh VPN — Defined Networking. Официальные бенчмарки Nebula в сравнении с конкурентами, февраль 2024. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Performance · Issue #42 — slackhq/nebula. Обсуждение производительности Nebula с рекомендациями мейнтейнеров по тюнингу. ↩︎ ↩︎
Unable to achieve 10 Gbit/s · Issue #637 — slackhq/nebula. Детальный анализ bottleneck Nebula на 10 Gbps каналах с профилированием через strace. ↩︎ ↩︎ ↩︎ ↩︎
listen — Nebula Docs. Документация параметров listen (batch, read_buffer, write_buffer). ↩︎
Throughput improvements — Tailscale Blog. Анализ влияния MTU на производительность userspace VPN. ↩︎ ↩︎
tun — Nebula Docs. Документация TUN-конфигурации Nebula (MTU, tx_queue, routes). ↩︎ ↩︎ ↩︎
Slow Windows Performance · Issue #589 — slackhq/nebula. Проблемы производительности Nebula на Windows. ↩︎ ↩︎
Releases · slackhq/nebula — GitHub. История релизов с описанием исправленных регрессий. ↩︎ ↩︎
NAT Setup · Issue #33 — slackhq/nebula. Обсуждение проблем NAT traversal в Nebula. ↩︎
Does nebula work on symmetric NAT · Issue #1235 — slackhq/nebula. Подтверждение невозможности hole punching через symmetric NAT. ↩︎ ↩︎
Relay support in Nebula 1.6.0 — Defined Networking. Анонс и документация relay-функциональности. ↩︎ ↩︎
punchy — Nebula Docs. Документация настроек NAT hole punching. ↩︎
Punching through tricky NAT with Nebula Mesh VPN and OPNSense. Решение проблемы NAT traversal на OPNsense через Static-Port. ↩︎
The Power of Zero-Trust Architecture: Building a Secure Internal Network with Nebula. Практическое руководство по развёртыванию Nebula с описанием сложностей PKI. ↩︎ ↩︎
Managed Nebula — Getting Started. Документация управляемого сервиса Defined Networking. ↩︎ ↩︎
nebula-est — GitHub. Реализация RFC 7030 для автоматизации enrollment в Nebula. ↩︎
Nebula-Cert-Maker — GitHub. Инструменты автоматизации создания сертификатов Nebula. ↩︎ ↩︎
Debugging with Nebula SSH commands — Nebula Docs. Документация встроенного SSH-сервера для диагностики. ↩︎
Defined Networking — Pricing. Информация о ценовых планах managed Nebula. ↩︎
Nebula mesh network — an introduction — TheOrangeOne. Практическое введение в Nebula с рекомендациями по инфраструктуре. ↩︎
Deploying Multi-Provider Site-to-Site VPNs. Паттерны развёртывания overlay-сетей в multi-cloud среде. ↩︎