Соединение трёх локальных сетей через 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
 !
 upip 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
 !
 upip route 192.168.111.0 255.255.255.0 Wireguard0 ip route 192.168.15.0 255.255.255.0 Wireguard0