Что настраиваем
В этой части подключаем офисные роутеры к хабу strongSwan и заносим их учётные данные в админку. Все примеры обезличены: Office 1, Office 2, Office 3. Реальные имена объектов, IP и секреты в публичных статьях не используются.
Таблица офисов
| Офис | Name в админке | Remote ID | LAN gateway | LAN subnet |
|---|---|---|---|---|
| Office 1 | office1 | office1-router | 192.168.10.1 | 192.168.10.0/24 |
| Office 2 | office2 | office2-router | 192.168.11.1 | 192.168.11.0/24 |
| Office 3 | office3 | office3-router | 192.168.12.1 | 192.168.12.0/24 |
Что завести в админке
Вкладка Site-to-site → Add site-to-site:
| Поле | Office 1 | Office 2 | Office 3 |
|---|---|---|---|
| Name | office1 | office2 | office3 |
| Remote addr | %any | %any | %any |
| Remote ID | office1-router | office2-router | office3-router |
| LAN | 192.168.10.0/24 | 192.168.11.0/24 | 192.168.12.0/24 |
| PSK | уникальный длинный секрет для каждого офиса | ||
После добавления офисов нажмите Apply config и проверьте reload status. PSK удобен для теста. В продакшене рекомендуется переход на сертификаты X.509.
Общие параметры для всех роутеров
- VPN type: IKEv2 / IPsec Site-to-Site.
- Remote gateway:
203.0.113.10или DNS-only имяvpn.example.com. - Local ID:
office1-routerдля Office 1. - Remote ID / Server ID:
vpn.example.com. - Local subnet: сеть текущего офиса, например
192.168.10.0/24. - Remote subnets: только реально существующие сети других офисов, например
192.168.11.0/24и192.168.12.0/24. - Phase 1: AES-256 / SHA-256 / DH14.
- Phase 2: ESP AES-256 / SHA-256 / PFS DH14.
- NAT-T: включить, если офис за NAT.
- Режим согласования: роутер инициирует соединение с известным адресом VPS.
- DPD/Keepalive: включить повторное подключение.
swanctl.conf на хабе для сверки
Серия использует только charon-systemd и swanctl.conf. Не переносите этот пример в legacy ipsec.conf. Хаб ожидает подключение Office 1, поэтому его remote_addrs остаётся %any, а роутер ниже использует конкретный адрес VPS.
connections {
site-office1 {
version = 2
local_addrs = %any
remote_addrs = %any
proposals = aes256-sha256-modp2048
dpd_delay = 30s
local { auth = psk; id = "vpn.example.com"; }
remote { auth = psk; id = "office1-router"; }
children {
net {
local_ts = 192.168.11.0/24,192.168.12.0/24
remote_ts = 192.168.10.0/24
esp_proposals = aes256-sha256-modp2048
start_action = none
dpd_action = clear
}
}
}
}Keenetic: сначала модель и версия KeeneticOS
Я не могу подтвердить универсальный путь меню для всех Keenetic. В официальной документации встречаются разные IPsec-сценарии и наборы команд в зависимости от модели и версии KeeneticOS. До настройки проверьте поддержку IKEv2 site-to-site, нескольких удалённых подсетей, идентификаторов FQDN/Name и режима инициатора. Затем перенесите значения из общего списка выше в поля вашей версии интерфейса.
После установления SA проверьте ping 192.168.11.10 с устройства Office 1 и одновременно swanctl --list-sas на хабе.
TP-Link Omada Controller 5.15.20
Для Controller 5.15.20 официальный сценарий использует Settings → VPN → Site-to-Site VPN → Manual IPsec. Для Office 1 укажите:
- Remote Gateway:
203.0.113.10. - Local Network:
192.168.10.0/24. - Remote Subnets:
192.168.11.0/24и192.168.12.0/24. - Local ID Type: Name, Local ID:
office1-router. - Remote ID Type: Name, Remote ID:
vpn.example.com. - Negotiation Mode: Initiator.
- IKEv2 и согласованные с хабом Phase 1/2: AES-256, SHA-256, DH14/PFS DH14.
В VPN Status должны появиться IKE/IPsec SA. Если SA установлены, а трафика нет, проверяйте Gateway ACL, Switch ACL и правила между LAN и VPN.
ASUS: только после проверки конкретной прошивки
Набор функций ASUS зависит от модели и штатной либо альтернативной прошивки. Я не могу подтвердить, что произвольный ASUS поддерживает требуемый policy-based IKEv2 site-to-site с несколькими удалёнными подсетями и отдельными Local/Remote ID. Не переносите параметры в похожие поля наугад: сначала найдите эту возможность в руководстве точной модели. Если её нет, используйте отдельный документированный VPN-шлюз.
OpenWrt: пример полей swanctl
Пакеты, менеджер пакетов и имя службы зависят от релиза OpenWrt. Сначала установите strongswan-swanctl и необходимые плагины по документации вашего релиза. Ниже показано только содержимое /etc/swanctl/swanctl.conf для Office 1.
# /etc/swanctl/swanctl.conf
connections {
hub {
version = 2
local_addrs = %any
remote_addrs = 203.0.113.10
proposals = aes256-sha256-modp2048
dpd_delay = 30s
local { auth = psk; id = "office1-router"; }
remote { auth = psk; id = "vpn.example.com"; }
children {
net {
local_ts = 192.168.10.0/24
remote_ts = 192.168.11.0/24,192.168.12.0/24
esp_proposals = aes256-sha256-modp2048
start_action = start
dpd_action = restart
}
}
}
}
secrets { ike-hub { id = "office1-router"; secret = "CHANGE_ME_OFFICE1_LONG_RANDOM_PSK"; } }После загрузки конфигурации firewall OpenWrt должен отдельно разрешать forwarding между LAN и IPsec. Конкретные UCI-правила без номера релиза здесь намеренно не приводятся.
swanctl --load-all
swanctl --initiate --child net
swanctl --list-sasЧто записать перед настройкой
| Платформа | Обязательные данные для воспроизведения | Основание |
|---|---|---|
| Keenetic | модель, версия KeeneticOS, тип IPsec-подключения, экспорт обезличенной конфигурации | руководство для точной модели и версии |
| TP-Link Omada | модель gateway, версия Controller, Manual IPsec, Initiator/Responder | официальное руководство Controller 5.15.20 |
| ASUS | модель, штатная или альтернативная прошивка, подтверждённая поддержка site-to-site | руководство точной модели |
| OpenWrt | релиз, архитектура, список strongSwan-пакетов, путь конфигурации, firewall zones | документация выбранного релиза |
Возможные проблемы и отладка
| Ошибка | Причина | Решение |
|---|---|---|
AUTH_FAILED | PSK или ID не совпадает | Сверить Local ID роутера, Remote ID хаба и PSK в панели |
no matching peer config | роутер передаёт неожиданный ID | Remote ID на роутере: vpn.example.com; Local ID: ID текущего офиса |
| SA установлены, но доступа нет | FORWARD/firewall или ACL | Проверить UFW route на VPS и правила LAN/VPN на роутере |
| Видна только одна сеть | неполные remote subnets | Добавить все разрешённые сети Office 2/3 с обеих сторон |
| Туннель падает после NAT | NAT-T/DPD выключены | Включить NAT-T и повторное подключение по DPD |
| Ping есть, web-интерфейс не открывается | firewall конечного устройства | Разрешить доступ с удалённой подсети и проверить gateway устройства |
Команды на хабе
swanctl --list-conns
swanctl --list-sas
tcpdump -ni any udp port 500 or udp port 4500
iptables -L ufw-user-forward -n -v
journalctl -u strongswan --no-pager -n 100Рекомендации
- Используйте уникальный Remote ID и PSK для каждого офиса.
- Храните точные модель и версию прошивки рядом с обезличенной конфигурацией объекта.
- После добавления нового офиса загрузите конфигурацию хаба и повторно инициируйте туннель с роутера.
- Сначала проверьте связь между LAN, затем прикладные сервисы и их локальные firewall.
Источники и область применимости
- strongSwan: swanctl.conf — адреса peer, DPD и действия при загрузке конфигурации;
- TP-Link: Manual IPsec для Omada — официальный сценарий site-to-site;
- Omada SDN Controller 5.15.20 User Guide — поля Manual IPsec, ID, negotiation mode и DPD;
- Keenetic Runner 4G KN-2210: IPsec VPN site-to-site — пример для конкретной модели с режимами initiator/responder, ID, DPD и подсетями;
- OpenWrt package data: strongswan-swanctl — наличие пакета сверяйте с выбранным релизом.