Соединение трёх локальных сетей через WireGuard VPN
В нашем примере рассмотрим, как установить Wireguard-соединение между тремя роутерами Keenetic, чтобы хосты в их локальных сегментах могли обмениваться между собой данными. Такую схему подключения называют Site-To-Site VPN (например, межофисное соединение для связи с целью расширения сетевой инфраструктуры).
Необходимо убедиться, что внешний WAN IP-адрес одного из роутеров доступен с другого. В случае, если VPN-туннель нужно построить через Интернет, это означает что у одного из роутеров должен быть предоставлен провайдером публичный "белый" IPv4-адрес.
Установите компонент системы Wireguard VPN. Сделать это можно в веб-конфигураторе на странице Общие настройки системы в разделе Обновления и компоненты, нажав на Изменить набор компонентов.
Установить компонент Wireguard VPN нужно на трёх роутерах Keenetic. После этого настройки Wireguard VPN появятся в веб-конфигураторе на странице Другие подключения.
Рассмотрим графическую схему сети:
Роутеру Keenetic А1 провайдер выдал публичный WAN IP-адрес. На этот адрес, будут устанавливать подключения Роутер B2 и Роутер C3. Иными словами, интерфейс Wireguard на роутере А1 будет выполнять роль сервера, к которому подключаются роутеры-клиенты удаленных офисов B2 и C3.
В локальной сети роутера Keenetic А1 два локальных сегмента — A1 и A2. К ним нужно обеспечить доступ из локальной сети роутера B2. В обратном направлении, в локальную сеть C3, доступ также должен быть обеспечен из этих двух сегментов.
Локальная сеть за роутером Keenetic C3 должна иметь в сети Keenetic А1 доступ только к сегменту A1.
Хосты в удаленных сетях B2 и C3 также должны иметь возможность обмениваться трафиком.
В нашем примере в качестве публичного WAN IP-адреса, выданного интернет-провайдером на роутер А1, мы используем частный IP-адрес
192.168.201.14
. В общем случае, коммутационная среда, в которую подключены все три роутера (черные линии на схеме) — не обязательно глобальная сеть, это может быть и локальная сеть провайдера.Будем считать, что роутер A1 выполняет роль сервера и находится в головном офисе, тогда как две удаленные сети — филиалы B2 и C3. На роутере Keenetic А1 подсеть сегмента A1 имеет адресацию
192.168.111.1/24
, сегмента A2 —192.168.112.1/24
. Локальная сеть филиала B2 —192.168.15.1/24
, локальная сеть филиала C3 —192.168.26.1.24
.Роутер
Локальная сеть
Доступ к сети
Адрес интерфейса туннеля
Keenetic A1 (головной офис)
192.168.111.1/24
B2, C3
172.16.82.1/24
192.168.112.1/24
B2
Keenetic B2 (филиал 2)
192.168.15.1/24
А1, А2, C3
172.16.82.2/24
Keenetic C3 (филиал 3)
192.168.26.1/24
А1, B2
172.16.82.3/24
Сначала настроим подключения Wireguard VPN на роутерах А1 и B2.
3.1. Предварительная настройка на роутере Keenetic B2.
В меню Интернет — Другие подключения, в разделе Wireguard, нужно нажать кнопку Добавить подключение. Откроется окно настроек, в котором укажите название туннеля —
VPN B2-А1
. При помощи кнопки Генерация пары ключей нужно создать пару ключей, приватный и публичный, которые будут использоваться для защиты подключения.В поле IPv4-адрес указываем IP-адрес в формате
IP/bitmask
—172.16.82.2/24
(это внутренний "технический" адрес туннеля). Можно использовать другую подсеть, при этом её следует выбрать из зарезервированных для частного использования диапазонов и таким образом, чтобы избежать наложения с другими настроенными на данных устройствах подсетями. Далее нужно нажать кнопку Сохранить публичный ключ в буфер обмена (он потребуется на следующем шаге) и затем кнопку Сохранить для применения настроек.3.2. Настройка на роутере Keenetic А1 (соединение с филиалом B2).
На роутере А1 аналогично нужно добавить подключение, указать название и сгенерировать пару ключей. Копировать в буфер обмена публичный ключ с роутера А1 пока не нужно.
Далее укажем адрес. Внутренний "
технический
" адрес устройства в туннеле имеет смысл указать из уже избранной при настройке интерфейса на роутере B2 подсети — на нём мы указали адрес из сети172.16.82.2/24
, на роутере А1 адрес следует указывать из этой же сети. Укажем на конце туннеля Keenetic А1 адрес172.16.82.1/24
.Примечание
Адрес можно указать с маской
32 бита
, то есть не адрес сети, а адрес хоста. При этом придется добавлять маршрут, указывающий на сеть интерфейса туннеля или индивидуально к каждому концу туннеля. В случае указания адреса таким образом, чтобы маска охватывала адреса всех участников в туннеле, выстраиваемый автоматически маршрут избавляет от необходимости вводить данные установки вручную.Порт, указанный в поле Порт прослушивания, будет использован при дальнейшей настройке роутера B2. На этот порт роутеры Keenetic B2 и Keenetic C3 будут обращаться при установлении VPN-туннеля. В нашем примере используем порт номер
16632
. Этот порт роутер А1 автоматически откроет на всех интерфейсах, чтобы проходили входящие подключения, и дополнительно добавлять разрешающие правила в сетевом экране не требуется.Далее добавим соединение при помощи кнопки Добавить пир. Укажем соответствующее имя соединения и публичный ключ туннеля с роутера B2. Поскольку на предыдущем шаге этот ключ был скопирован в буфер обмена, его можно сейчас вставить в поле Публичный ключ.
В полях Разрешенные подсети нужно указать адреса, трафик с которых должен быть допущен от удаленной стороны, и адреса, трафик к которым может быть отправлен удаленной стороне. Это: технический адрес удаленного конца туннеля —
172.16.82.2/32
(со стороны пира B2 трафик в туннеле будет идти с адресом источника172.16.82.2
, и в нашем примере мы указываем здесь явно адрес хоста, принимая во внимание, что адресные пространства разрешенных подсетей на соединениях в рамках одного интерфейса не должны перекрываться), и удаленная сеть — локальная сеть роутера B2 —192.168.15.0/24
(к этой сети требуется обеспечить доступ по туннелю).В поле Проверка активности необходимо указать периодичность попыток зондирования. Это внутренняя, встроенная в протокол проверка доступности удаленной стороны соединения. Обычно, достаточно
8~10
секундного интервала между проверками.После чего, скопируем публичный ключ роутера А1 в буфер обмена и сохраним настройку.
3.3. Теперь выполняем донастройку подключения на роутере B2. Требуется добавить соединение, которое будет устанавливаться к роутеру А1.
Нажмите по записи туннеля, откроется окно с его настройками, нажмите кнопку Добавить пир.
В настройках пира указываем Имя пира (в нашем примере это Keenetic А1), Публичный ключ (на предыдущем шаге он был скопирован в буфер обмена), Адрес и порт пира в формате
IP:port
(это публичный WAN IP-адрес роутера А1 и порт прослушивания, который был указан при конфигурации туннеля на роутере А1), в нашем примере192.168.201.14:16632
В поле Разрешенные подсети нужно внести адреса удаленных концов туннеля, указываем
172.16.82.0/24
, трафик с адресов этой сети будет принят из туннеля. Добавим адреса сетей локальных сегментов A1 и A2 роутера Keenetic А1 —192.168.111.0/24
и192.168.112.0/24
. Исходящий трафик к этим двум сетям будет допущен к передаче по туннелю. Добавим адреса локальной сети филиала C3,192.168.26.0/24
— в эту сеть также требуется доступ. Интервал проверки активности с этой стороны выберем10
секунд. Сохраняем установки.3.4. Включим настроенные VPN-интерфейсы на роутерах А1 и B2. Если все настроено корректно, в колонке Пир должен отображаться зеленый индикатор статуса подключения.
Keenetic А1:
Keenetic B2:
Настройка сетевого экрана и маршрутизации. Для работы потребуется указать маршруты и разрешить входящий трафик на добавленные VPN-интерфейсы.
4.1. Разрешаем входящий в интерфейс Wireguard трафик. Это нужно сделать, т.к. по умолчанию интерфейсам туннеля устанавливается публичный уровень безопасности и входящий трафик запрещен. Чтобы запросы из удаленных сетей могли проходить по туннелю, добавим на обоих роутерах соответствующую настройку в меню Межсетевой экран.
4.2. "
Технические
" адреса сети, обозначенной на концах туннеля —172.168.82.1
и172.16.82.2
, уже могут на этом этапе обмениваться данными. Чтобы по туннелю отправлялся трафик в удаленные сети, требуемые по схеме, на роутерах необходимо добавить маршруты (меню Маршрутизация — кнопка Добавить маршрут).Keenetic А1 — маршрут к сети
192.168.15.0/24
через туннель:Keenetic B2 — маршруты к сетям
192.168.111.0/24
и192.168.112.0/24
и192.168.26.0/24
через туннель:Последний маршрут пока не может работать, так как соединение с филиалом C3 ещё не настроено. Завершим настройку.
Настройка соединения между роутерами Keenetic А1 и C3. Процедура аналогична приведенной в пунктах
3
и4
. Потребуется публичный ключ с роутера А1. Скопируем его в буфер обмена и настроим интерфейс Wireguard в роутере C3.5.1. Keenetic C3:
Параметры интерфейса Wireguard.
Настройка сетевого экрана для интерфейса Wireguard.
Правила маршрутизации.
5.2. Keenetic А1:
Добавляем в настроенный интерфейс Wireguard пир для офиса C3.
Также требуется указать маршрут к сети
192.168.26.0/24
(на роутере B2 мы уже добавляли эту настройку, теперь она заработает — после включения интерфейса в офисе C3).Настройка завершена.
Для проверки можно выполнить непосредственно с устройств через меню Диагностика пинг хостов в сетях, согласно таблице-заданию (пункт 2).
Ниже приведем получившиеся в результате настроек конфигурационные параметры трёх роутеров.
Keenetic А1:
access-list _WEBADMIN_Wireguard0 permit ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
interface Wireguard0 description "VPN B2&C3-A1" security-level public ip address 172.16.82.1 255.255.255.0 ip access-group _WEBADMIN_Wireguard0 in ip tcp adjust-mss pmtu wireguard listen-port 16632 wireguard peer lH37FbHVYf8+TkSlOcnMrEp/Yds+/bAf1MJtwy1hHTs= !Keenetic B2 keepalive-interval 15 allow-ips 192.168.15.0 255.255.255.0 allow-ips 172.16.82.2 255.255.255.255 ! wireguard peer Iy3sCO73ACkzM2oVsZd+N+iRPcawsONQuftK4ee58kM= !Keenetic C3 keepalive-interval 3 allow-ips 192.168.26.0 255.255.255.0 allow-ips 172.16.82.3 255.255.255.255 ! up
ip route 192.168.15.0 255.255.255.0 Wireguard0 ip route 192.168.26.0 255.255.255.0 Wireguard0
Keenetic B2:
access-list _WEBADMIN_Wireguard0 permit ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
interface Wireguard0 description "VPN B2-A1" security-level public ip address 172.16.82.2 255.255.255.0 ip access-group _WEBADMIN_Wireguard0 in ip tcp adjust-mss pmtu wireguard peer //lGSLpFyJDWKOtphjkkdRFflF3MmYCh8/CEWe5U/lE= !Keenetic А1 endpoint 192.168.201.14:16632 keepalive-interval 10 allow-ips 192.168.111.0 255.255.255.0 allow-ips 192.168.112.0 255.255.255.0 allow-ips 192.168.26.0 255.255.255.0 allow-ips 172.16.82.0 255.255.255.0 ! up
ip route 192.168.111.0 255.255.255.0 Wireguard0 ip route 192.168.112.0 255.255.255.0 Wireguard0 ip route 192.168.26.0 255.255.255.0 Wireguard0
Keenetic C3:
access-list _WEBADMIN_Wireguard0 permit ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
interface Wireguard0 description "VPN C3-A1" security-level public ip address 172.16.82.3 255.255.255.0 ip access-group _WEBADMIN_Wireguard0 in ip tcp adjust-mss pmtu wireguard peer //lGSLpFyJDWKOtphjkkdRFflF3MmYCh8/CEWe5U/lE= !Keenetic А1 endpoint 192.168.201.14:16632 keepalive-interval 15 allow-ips 172.16.82.0 255.255.255.0 allow-ips 192.168.111.0 255.255.255.0 allow-ips 192.168.15.0 255.255.255.0 ! up
ip route 192.168.111.0 255.255.255.0 Wireguard0 ip route 192.168.15.0 255.255.255.0 Wireguard0