# NetBird VPN Self-hosted WireGuard-based VPN. Устанавливает Management сервер, Signal сервер, Coturn (STUN/TURN) и опционально Subnet Router (доступ к локальным подсетям) и Exit Node (интернет через кластер). Все компоненты получают внешние IP через kube-vip LoadBalancer. ## Быстрый старт ```yaml # group_vars/all/addons.yml addon_netbird: true netbird_domain: "netbird.example.com" ``` Секреты в `vault.yml`: ```yaml vault_netbird_coturn_password: "coturn-password" vault_netbird_router_setup_key: "" # заполнить после создания в Management UI vault_netbird_exit_node_setup_key: "" # заполнить после создания в Management UI ``` ```bash make addon-netbird ``` ## Параметры | Переменная | Умолч. | Описание | |---|---|---| | `netbird_domain` | `netbird.example.com` | Домен Management сервера | | `netbird_management_lb_ip` | `""` | Статический IP (авто если пусто) | | `netbird_signal_lb_ip` | `""` | Статический IP Signal | | `netbird_coturn_lb_ip` | `""` | Статический IP Coturn | | `netbird_subnet_router_enabled` | `false` | Subnet Router Pod | | `netbird_exit_node_enabled` | `false` | Exit Node Pod | ## Порядок установки Ansible автоматически: 1. Деплоит Coturn → ждёт LB IP 2. Деплоит Management (использует IP Coturn в конфиге) → ждёт LB IP 3. Деплоит Signal → ждёт LB IP После установки Ansible выводит IP всех компонентов и инструкции для настройки DNS. ## Настройка DNS (после установки) Ansible выведет IP адреса — создай DNS записи: ``` netbird.example.com → Management LB IP signal.netbird.example.com → Signal LB IP turn.netbird.example.com → Coturn LB IP ``` ## Подключение клиентов ```bash # Linux/macOS netbird up --management-url grpc://netbird.example.com:80 # Или через UI (Management Dashboard): # http://MANAGEMENT_IP:80 ``` ## Subnet Router Разрешает VPN-клиентам обращаться к локальным сетям кластера: ```yaml netbird_subnet_router_enabled: true netbird_subnet_routes: - "192.168.1.0/24" # локальная сеть - "10.42.0.0/16" # pod CIDR - "10.43.0.0/16" # service CIDR ``` **Создать Setup Key в Management UI:** 1. Management Dashboard → Setup Keys → Add Key 2. Скопируй ключ в `vault.yml`: `vault_netbird_router_setup_key` 3. Запусти `make addon-netbird` снова **Активировать маршруты в Management UI:** Management Dashboard → Network Routes → настрой подсети ## Exit Node Направляет весь интернет-трафик VPN-клиентов через ноду кластера: ```yaml netbird_exit_node_enabled: true ``` **Создать отдельный Setup Key** для Exit Node или использовать тот же. В Management Dashboard → Network Routes → добавь маршрут `0.0.0.0/0` через Exit Node пир. ## Статические IP через kube-vip Чтобы зафиксировать IP компонентов (рекомендуется для prod): ```yaml netbird_management_lb_ip: "192.168.1.110" netbird_signal_lb_ip: "192.168.1.111" netbird_coturn_lb_ip: "192.168.1.112" ``` ## Диагностика ```bash kubectl get pods -n netbird kubectl get svc -n netbird # LB IPs kubectl logs -n netbird deployment/netbird-management -f kubectl logs -n netbird deployment/netbird-signal -f kubectl logs -n netbird deployment/netbird-coturn -f ``` ## Официальные ресурсы - Официальный сайт: [https://netbird.io/](https://netbird.io/) - Официальная документация: [https://docs.netbird.io/](https://docs.netbird.io/) - Версии Helm chart / ПО: [https://github.com/netbirdio/netbird/releases](https://github.com/netbirdio/netbird/releases)