Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Введение

В руководстве приведено описание настройки WireGuard-соединения между сервером (на примере vESR) и клиентом (ESR-31).

Конфигурация соединения

Генерация ключей x25519 для WireGuard

Соединение устанавливается на основе аутентификации ключей.

На ESR реализован механизм генерации ключей для WireGuard. Поэтому первым делом сгенерируем публичные ключи для взаимного обмена между устройствами и приватные ключи для использования в конфигурации устройства, которые будут храниться в crypto:private-key/ и crypto:public-key/ соответственно.

Публичный ключ создаётся на основе приватного.

На сервере приватный ключ wg_server.priv и публичный ключ wg_server.pub:

Сервер vESR
vesr# crypto generate private-key x25519 wg_server.priv
vesr# crypto generate public-key x25519 private-key wg_server.priv  wg_server.pub

На клиенте приватный ключ wg_client_1.priv и публичный ключ wg_client_1.pub:

Клиент ESR-31
esr-31# crypto generate private-key x25519 wg_client_1.priv
esr-31# crypto generate public-key x25519 private-key wg_client_1.priv wg_client_1.pub

После того, как публичные ключи будут переданы между устройствами (например, с помощью TFTP), можно приступить к настройке сервера.

Настройка сервера - remote-access

Минимальная конфигурация WireGuard для сервера - создан object-group, сконфигурирован интерфейс для выхода в интернет, прописан маршрут, сконфигурирован сервер wireguard.

Сервер vESR
object-group network client1
  ip address-range 10.0.0.2
exit

interface gigabitethernet 1/0/1
  ip firewall disable
  ip address 192.168.43.3/20
exit

remote-access wireguard wg
  ip firewall disable
  port 43020 
  mtu 1420
  local-address 10.0.0.1/24
  private-key wg_server.priv
  peer 1
    subnet client1
    public-key wg_client_1.pub
    enable
  exit
  enable
exit

ip route 0.0.0.0/0 192.168.32.1

Настройка клиента - tunnel

Минимальная конфигурация WireGuard для клиента - создан object-group, сконфигурирован интерфейс для выхода в интернет, прописан маршрут, сконфигурирован туннель wireguard.

Клиент ESR-31
object-group network client1
  ip prefix 10.0.0.0/24
exit

interface gigabitethernet 1/0/1
  ip firewall disable
  ip address 192.168.43.23/20
exit

tunnel wireguard 1
  ip firewall disable 
  mtu 1420
  private-key wg_client_1.priv
  ip address 10.0.0.2/24
  peer 1
    subnet client1
    remote address 192.168.43.3
    remote port 43020
    public-key wg_server.pub
    enable
    exit
  enable
exit

ip route 0.0.0.0/0 192.168.32.1

Когда в конфигурацию добавляется subnet, в таблице маршрутизации появляется статический маршрут.

В примере для того, чтобы соединение установилось, был выключен firewall на всех интерфейсах - ip firewall disable.

Для того, чтобы firewall пропускал трафик, нужно в security zone-pair разрешить UDP порты wireguard'а.

По-умолчанию на ESR порт для сервера 5000, а для клиента - 0. Пакеты, приходящие на WG-интерфейс, инкапсулируются в UDP.

Проверка состояния соединения

Просмотр настроек remote-access

На сервере для просмотра статуса WireGuard'а доступны аналогичные другим remote-access-соединениям команды.

Сервер vESR
vesr# show remote-access 
  configuration  Show remote-access configuration
  counters       Show remote access counters
  status         Show remote access status

vesr# show remote-access configuration 
Name                               State      Description                                          
--------------------------------   --------   --------------------------------------------------   
wg                                 Enabled    WireGuard   

vesr# show remote-access configuration wireguard wg
State:                     Enabled
VRF:                       --
Description:               WireGuard
Port:                      43020
MTU:                       1420
Local addres:              10.0.0.1/24
Security zone:             --
Private key:               wg_server.priv
Peer:                      1
 State:                    Enabled
 Description:              --
 Public key:               wg_client_1.pub
 Subnet:                   client1
DNS servers:               --

vesr# show remote-access counters 
User            IP-address              Packets recv   Bytes recv   Err recv     MC recv      
-------------   ---------------------   ------------   ----------   ----------   ----------   
peer 1          10.0.0.2                --             1552         --           --           

User            IP-address              Packets sent   Bytes sent   Err sent     
-------------   ---------------------   ------------   ----------   ----------   
peer 1          10.0.0.2                --             1552         --           

vesr# show remote-access status 
User               IP-address              Server                                   
----------------   ---------------------   --------------------------------------   
peer 1             10.0.0.2                wireguard(wg)                            
Count sessions: 1


Просмотр настроек tunnels

На клиенте для просмотра статуса WireGuard'а доступны аналогичные другим tunnels-соединениям команды.

Клиент ESR-31
esr-31# show tunnels 
  configuration  Show tunnels' configuration
  counters       Show tunnels' counters
  history        Show tunnels' counters and utilization history
  status         Show tunnels' status
  utilization    Show tunnels' utilization

esr-31# show tunnels configuration 
Tunnel             State      Description                      
----------------   --------   ------------------------------   
wireguard 1        Enabled    --                               

esr-31# show tunnels configuration wireguard 1
State:                   Enabled
Description:             --
VRF:                     --
Security zone:           --
IP address:              10.0.0.2/24
Port:                    0
MTU:                     1420

esr-31# show tunnels counters 
Tunnel             Packets recv     Bytes recv       Errors recv      MC recv          
----------------   --------------   --------------   --------------   --------------   
wireguard 1        13               1552             0                0                

Tunnel             Packets sent     Bytes sent       Errors sent      
----------------   --------------   --------------   --------------   
wireguard 1        13               1552             0                

esr-31# show tunnels status
Tunnel             Admin   Link    MTU      Local IP           Remote IP          Last change     
                   state   state                                                  (d,h:m:s)       
----------------   -----   -----   ------   ----------------   ----------------   -------------   
wireguard 1        Up      Up      1420     10.0.0.2           --                 00,16:36:20     

esr-31# show tunnels utilization 
Tunnel             Period, s     Sent, kbit/s   Recv, kbit/s   Sent,            Recv,            
                                                               packets/s        packets/s        
----------------   -----------   ------------   ------------   --------------   --------------   
wireguard 1        5             0              0              0                0                


WireGuard - stateless VPN протокол, поэтому и сервер, и клиент всегда будут UP в ожидании инициализации соединения от другой стороны.

  • Нет меток