✅ Good
VPN¶
VPN (Virtual Private Network) — це шифрований тунель між двома точками через недовірену мережу (інтернет). В UMTC ми використовуємо WireGuard — сучасний, швидкий і простий VPN протокол.
Чому WireGuard?
- **Швидкий** — написаний на C, 4000 рядків коду vs 100000+ в OpenVPN
- **Простий** — один конфіг файл замість десятків налаштувань
- **Криптостійкий** — сучасні алгоритми (ChaCha20, Curve25519)
- **Вбудований в Linux** — є в ядрі з версії 5.6
Архітектура WireGuard mesh UMTC¶
flowchart TB
subgraph public["Публічний інтернет"]
CLOUD["☁️ Oracle Cloud<br/>vps1.umtc"]
end
subgraph field["Польові сайти"]
SITE_A["📡 Site A<br/>10.10.1.0/24"]
SITE_B["📡 Site B<br/>10.10.2.0/24"]
SITE_C["📡 Site C<br/>10.10.3.0/24"]
end
subgraph clients["Клієнти"]
LAPTOP["💻 Laptop"]
PHONE["📱 Phone"]
end
CLOUD <-->|"wg0"| SITE_A
CLOUD <-->|"wg0"| SITE_B
CLOUD <-->|"wg0"| SITE_C
SITE_A <-.->|"direct link"| SITE_B
LAPTOP -->|"road warrior"| CLOUD
PHONE -->|"road warrior"| CLOUD
style public fill:#dbeafe
style field fill:#d1fae5
style clients fill:#fef3c7Типи VPN з'єднань¶
| Тип | Опис | Коли використовувати |
|---|---|---|
| Site-to-Site | Постійне з'єднання двох мереж | Між серверами/роутерами |
| Road Warrior | Клієнт → сервер | Мобільні пристрої, ноутбуки |
| Mesh | Кожен з кожним | Розподілена інфраструктура |
Матеріали розділу¶
| Стаття | Опис | Рівень |
|---|---|---|
| WireGuard mesh | Базова mesh-мережа: конфіги, маршрутизація | Середній |
| WireGuard advanced | Криптографія, NAT traversal, MTU, оптимізація | Просунутий |
Швидкий приклад¶
Сервер (vps1.umtc)¶
[Interface]
PrivateKey = <server_private_key>
Address = 10.10.0.1/24
ListenPort = 51820
[Peer]
# Site A
PublicKey = <site_a_public_key>
AllowedIPs = 10.10.0.2/32, 10.10.1.0/24
[Peer]
# Laptop (road warrior)
PublicKey = <laptop_public_key>
AllowedIPs = 10.10.0.100/32
Клієнт (laptop)¶
[Interface]
PrivateKey = <laptop_private_key>
Address = 10.10.0.100/24
DNS = 10.10.0.1
[Peer]
PublicKey = <server_public_key>
Endpoint = vps1.umtc.example.com:51820
AllowedIPs = 10.10.0.0/16
PersistentKeepalive = 25
AllowedIPs — це важливо
`AllowedIPs` визначає не тільки звідки приймати пакети, а й куди маршрутизувати. `0.0.0.0/0` — весь трафік через VPN (full tunnel). Конкретні мережі — split tunnel.
Step-by-Step інструкції¶
| Інструкція | Що отримаєте |
|---|---|
| WireGuard: з'єднання нод | Site-to-site між серверами |
| WireGuard: клієнт | VPN на телефон/ноутбук |
| MikroTik WireGuard | MikroTik в mesh |
Типові проблеми¶
| Проблема | Причина | Рішення |
|---|---|---|
| Handshake не проходить | Неправильні ключі | Перевірте public/private key пари |
| Немає з'єднання | Firewall блокує UDP 51820 | Відкрийте порт |
| Повільна швидкість | MTU проблеми | Зменшіть MTU до 1400 |
| З'єднання зникає | NAT timeout | Додайте PersistentKeepalive = 25 |
Пов'язані теми¶
- MikroTik — WireGuard на RouterOS
- Безпека — принципи захисту каналів
- Маршрутизація — динамічна маршрутизація поверх VPN
Шлях: networking/vpn/index.md