Интерфейс WireGuard

Обзор

WireGuard — коммуникационный протокол с открытым исходным кодом для создания защищенных VPN-туннелей. Протокол работает на интерфейсе WireGuard, который в свою очередь создается на пограничном маршрутизаторе. Интерфейс выполняет роль шлюза: маршрутизирует, шифрует и расшифровывает трафик между удаленными узлами внутри защищенной частной сети.

WireGuard обладает рядом отличительных особенностей:

  • Современная криптография: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и т.д.;

  • Компактный читаемый код, который проще исследовать на уязвимости;

  • Высокая производительность, так как протокол работает на третьем уровне модели OSI.

Порядок настройкиы соединения WireGuard

  1. Создать интерфейсы WireGuard на пограничных маршрутизаторах.

  2. Настроить сетевые параметры на интерфейсах обоих маршрутизаторов.

Чтобы маршрутизаторы могли обнаружить друг друга, убедитесь, что на устройствах заданы корректные IP-адреса, порты и маски подсети.

Когда соединение инициирует одноранговый узел сети, настраивать порт прослушивания не обязательно.

Когда интерфейс WireGuard выступает в роли сервера, к которому будут подключаться другие узлы сети, то необходимо указать порт подключения вручную. Если система перезагрузится или сетевой порт будет назначаться динамически, то удаленные устройства не смогут найти маршрутизатор по номеру порта и потеряют с ним связь.

  1. Сгенерировать пару из открытого и закрытого ключей для каждого участника соединения и обменяться открытыми ключами.

Перед сеансом связи одноранговые узлы генерируют пару из открытого и закрытого ключей. После этого устройства обмениваются открытыми ключами. С помощью открытого ключа получателя отправитель шифрует данные, чтобы безопасно передать содержимое через общую сеть. Получатель принимает данные и расшифровывает их с помощью своего закрытого ключа. В обратную сторону метод шифрования работает зеркально.

Совет

Чтобы дополнительно защитить трафик, вы можете подключить симметричное шифрование поверх асимметричного. В этом случае для аутентификации участников генерируется одинаковый общий закрытый ключ (preshared key). Поскольку ключ не открытый, а закрытый, обеспечьте его безопасное распространение.

  1. Добавить разрешения для межсетевого экрана.

Чтобы туннель WireGuard работал корректно, настройте МСЭ на всех узлах-участниках: разрешите входящий UDP-трафик на порт WireGuard (по умолчанию: 51820), разрешите входящие и производные соединения.

Удаленное подключение

C помощью WireGuard можно не только создать защищенный туннель между двумя узлами сети, но и предоставить безопасный удаленный доступ. В этом случае будет реализована топология сети «звезда».

Пример настройки

Шаг

Интерфейс WireGuard 01

Интерфейс WireGuard 02

Описание

1

generate pki wireguard key-pair

generate pki wireguard key-pair

Генерирует пару из открытого и закрытого ключей

2

set interfaces wireguard wg01 private-key KP01

set interfaces wireguard wg02 private-key KP02

Сохраняет закрытый ключ в системе и ассоциирует его с указанным интерфейсом WireGuard

3

set interfaces wireguard wg01 address 10.1.0.1/30

set interfaces wireguard wg02 address 10.1.0.2/30

Назначает интерфейсу WireGuard IPv4-адрес с префиксом подсети

4

set interfaces wireguard wg01 description VPN-to-wg02

set interfaces wireguard wg02 description VPN-to-wg01

Добавляет описание для интерфейса WireGuard

5

set interfaces wireguard wg01 peer to-RT-02 allowed-ips 192.168.2.0/24

set interfaces wireguard wg02 peer to-RT-01 allowed-ips 192.168.1.0/24

Указывает IP-адрес или диапазон IP-адресов однорангового узла, через которые интерфейс WireGuard будет поддерживать двустороннюю связь

6

set interfaces wireguard wg01 peer to-RT-02 address 192.0.2.1

set interfaces wireguard wg02 peer to-RT-01 address 192.0.2.2

Указывает IPv4-адрес однорангового узла сети

7

set interfaces wireguard wg01 peer to-RT-02 port 51820

set interfaces wireguard wg02 peer to-RT-01 port 51820

Указывает порт для входящий соединений на одноранговом узле

8

set interfaces wireguard wg01 peer to-RT-02 pubkey XMrlPykaxhdAAiSjhtPlvi30NVkvLQliQuKP7AI7CyI=

set interfaces wireguard wg02 peer to-RT-01 public-key EKY0dxRrSD98QHjfHOK13mZ5PJ7hnddRZt5woB3szyw=

Ассоциирует открытый ключ с одноранговым узлом сети

9

set interfaces wireguard wg01 port 51820

set interfaces wireguard wg02 port 51820

Указывает порт для входящих соединений на интерфейсе WireGuard

10

set protocols static interface-route 192.168.2.0/24 next-hop-interface wg01

set protocols static route 192.168.1.0/24 interface wg01

Устанавливает в сеть 192.168.2.0/24 статическую маршрутизацию при прохождении трафика через интерфейс WireGuard

Пример базовой конфигурации Пример базовой конфигурации

Список команд


Режим «Конфигурирование»


interfaces wireguard <interface> address [<x.x.x.x/x> | <h:h:h:h:h:h:h:h/x>]

Описание:
Назначает интерфейсу WireGuard диапазон IPv4- или IPv6-адресов с префиксом подсети.

Синтаксис:

  • set interfaces wireguard <interface> address [<x.x.x.x/x> | <h:h:h:h:h:h:h:h/x>]

  • delete interfaces wireguard <interface> address [<x.x.x.x/x> | <h:h:h:h:h:h:h:h/x>]

  • show interfaces wireguard <interface> address

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <x.x.x.x/x> — диапазон IPv4-адресов с префиксом подсети;

  • <h:h:h:h:h:h:h:h/x> — диапазон IPv6-адресов с префиксом подсети.

Режим: «Конфигурирование».


interfaces wireguard <interface> description <text>

Описание:
Добавляет описание для интерфейса WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> description <text>

  • delete interfaces wireguard <interface> description <text>

  • show interfaces wireguard <interface> description

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <text> — описание для интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> disable

Описание:
Выключает интерфейс WireGuard. Интерфейсу будет присвоен статус A/D (выключен администратором).

Синтаксис:

  • set interfaces wireguard <interface> disable

  • delete interfaces wireguard <interface> disable

  • show interfaces wireguard <interface>

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> fwmark <number>

Описание:
Присваивает интерфейсу WireGuard метку соединения fwmark.

Синтаксис:

  • set interfaces wireguard <interface> fwmark <number>

  • delete interfaces wireguard <interface> fwmark <number>

  • show interfaces wireguard <interface> fwmark

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <number> — числовая метка fwmark.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip adjust-mss [<mss> | <clamp-mss-to-pmtu>]

Описание:
Устанавливает на интерфейсе WireGuard конкретное значение для максимального размера сегмента при передаче пакетов по протоколу TCP или рассчитывает значение автоматически, динамически подстраиваясь под допустимый максимальный размер передаваемого пакета на маршруте.

Конкретным значением администратор ПО Факел задает порог и ограничивает отправку пакетов, размер которых будет превышать заданное значение.

Максимальный размер сегмента — это опциональное поле в заголовке TCP-пакета с установленным флагом SYN. Если автоматическое обнаружение максимального размера передаваемого пакета на маршруте работает некорректно, установите конкретный размер сегмента вручную.

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <mss> — конкретное значение для максимального размера сегмента на протоколе TCP. Диапазон значений: от 536 до 65535;

  • <clamp-mss-to-pmtu> — максимальный размер сегмента будет задан автоматически.

Режим: «Конфигурирование».

Подсказка

Максимальный размер сегмента = максимальный размер передаваемого пакета - 20 (заголовок протокола IP) - 20 (заголовок протокола TCP) = 1452 байта при максимальном размере передаваемого пакета в 1492 байт.


interfaces wireguard <interface> ip arp-cache-timeout <sec>

Описание:
Задает временной интервал между записями в ARP-кэш на интерфейсе WireGuard. ARP-кэш хранит информацию о связях между IP- и MAC-адресами. Кэш продолжит хранить данные, если от протокола верхнего уровня будет получен соответствующий сигнал. Если сигнал получен не будет, данные будут стерты.

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <sec> — интервал между записью данных в ARP-кэш. Формат: секунды. Диапазон значений: от 1 до 86400. Значение по умолчанию: 30 секунд.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip disable-arp-filter

Описание:
Выключает фильтрацию по протоколу ARP на интерфейсе WireGuard. ПО Факел сможет отвечать на ARP-запросы IP-адресами с других интерфейсов. Это позволит контролировать, какие интерфейсы будут отвечать на ARP-запросы. Применяется в сложных сетевых конфигурациях, где необходимо строго разделять трафик между интерфейсами.
Если фильтрация через протокол ARP включена (по умолчанию), то на одной подсети смогут существовать несколько сетевых интерфейсов. При этом конкретный интерфейс ответит на ARP-запрос тогда, когда ядро системы примет решение маршрутизировать пакеты через этот интерфейс. Это позволяет настраивать на уровне ядра, какой сетевой интерфейс будет отвечать на ARP-запрос. Однако для этого необходимо использовать маршрутизацию от источника.

Синтаксис:

  • set interfaces wireguard <interface> ip disable-arp-filter

  • delete interfaces wireguard <interface> ip disable-arp-filter

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip disable-forwarding

Описание:
Выключает переадресацию пакетов по протоколу IP с интерфейса WireGuard на любой другой интерфейс. После выполнения команды интерфейс WireGuard перейдет в режим хоста.

Синтаксис:

  • set interfaces wireguard <interface> ip disable-forwarding

  • delete interfaces wireguard <interface> ip disable-forwarding

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-arp-accept

Описание:
Создает новые записи в ARP-таблице интерфейса WireGuard для gratuitous ARP-кадров, если им не присвоены соответствующие IP-адреса.

Автоматически обновляет ARP-таблицу при появлении gratuitous ARP-кадров типа «запрос», «ответ».

Если ARP-таблица уже содержит IP-адрес, соответствующий gratuitous ARP-кадру, то таблица все равно будет обновлена, даже если команда не была выполнена.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-arp-accept

  • delete interfaces wireguard <interface> ip enable-arp-accept

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-arp-announce

Описание:
Ограничивает на интерфейсе WireGuard анонсирование локального IP-адреса источника при отправке IP-пакетов через ARP-запрос. ПО Факел будет использовать в исходящих ARP-запросах только те IP-адреса источника, которые соответствуют локальным IP-адресам в подсети цели.

При генерации ARP-запроса интерфейс WireGuard проверяет все целевые подсети. По умолчанию ПО Факел при отправке ARP-запросов использует любой локальный IP-адрес, настроенный на любом интерфейсе.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-arp-announce

  • delete interfaces wireguard <interface> ip enable-arp-announce

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-arp-ignore

Описание:
Указывает интерфейсу WireGuard отвечать на ARP-запросы только в том случае, если целевой IP-адрес — локальный адрес на принимающем интерфейсе, который получил ARP-запрос.

По умолчанию интерфейс WireGuard отвечает на ARP-запросы даже в том случае, если целевой IP-адрес — локальный IP-адрес назначения на любом интерфейсе. Независимо от того, какой интерфейс получил запрос.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-arp-ignore

  • delete interfaces wireguard <interface> ip enable-arp-ignore

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-directed-broadcast

Описание:
Включает направленную широковещательную переадресацию на интерфейсе WireGuard. Если IP-адрес интерфейса получит пакет через широковещательную рассылку, то маршрутизатор Факел переадресует его на подсеть назначения.

Более подробная информация содержится в документах RFC 1812 и 2644.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-directed-broadcast

  • delete interfaces wireguard <interface> ip enable-directed-broadcast

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-proxy-arp

Описание:
Включает прокси-сервер на интерфейсе WireGuard для маршрутизации ARP-запросов. Интерфейс WireGuard сможет отвечать со своих MAC-адресов на ARP-запросы со стороны IP-адресов назначения, если IP-адреса назначения будут находиться на других интерфейсах маршрутизатора. В дальнейшем ПО Факел будет перенаправлять пакеты на IP-адреса назначения через прокси-сервер.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-proxy-arp

  • delete interfaces wireguard <interface> ip enable-proxy-arp

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip proxy-arp-pvlan

Описание:
Создает на интерфейсе WireGuard частную сеть VLAN и включает на ней прокси-сервер для маршрутизации ARP-запросов. Устройства на разных портах смогут отвечать на ARP-запросы вышестоящего маршрутизатора и получат возможность обмениваться данными. Фактически интерфейс выступает в роли коммутатора, когда отдельные порты не могут общаться друг с другом напрямую, но могут поддерживать связь через вышестоящий маршрутизатор посредством маршрутизации ARP-запросов через прокси-сервер.

Более подробная информация содержится в документе RFC 3069.

Синтаксис:

  • set interfaces wireguard <interface> ip proxy-arp-pvlan

  • delete interfaces wireguard <interface> ip proxy-arp-pvlan

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip source-validation [<strict> | <loose> | <disable>]

Описание:
Включает на интерфейсе WireGuard различные режимы проверки источника запроса по обратному пути.

Более подробная информация содержится в документе RFC 3704.

Синтаксис:

  • set interfaces wireguard <interface> ip source-validation [<strict | loose | disable>]

  • delete interfaces wireguard <interface> ip source-validation [<strict | loose | disable>]

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <strict> — строгий режим. Применяется для предотвращения подмены IP-адреса при DDos-атаках. Каждый входящий пакет проверяется по таблице FIB. Если IP-адрес источника не соответствует записи в таблице FIB, пакет не пройдет проверку и будет отброшен. В этом режиме некоторые полезные пакеты могут быть отклонены, если сеть имеет сложную конфигурацию;

  • <loose> — нестрогий режим. Применяется в случае ассиметричной маршрутизации или другой сложной конфигурации сети. Каждый входящий пакет проверяется по таблице FIB. Если IP-адрес источника недоступен ни через какой интерфейс, то пакет не пройдет проверку и будет отброшен;

  • <disable> — проверка источника по обратному пути выключена.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 accept-dad

Описание:
Настраивает работу механизма обнаружения дубликатов IPv6-адресов на интерфейсе WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 accept-dad <1-3>

  • delete interfaces wireguard <interface> ipv6 accept-dad <1-3>

  • show interfaces wireguard <interface> ipv6 accept-dad

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <0> — выключает механизм по обнаружению дубликатов IPv6-адресов;

  • <1> — включает механизм по обнаружению дубликатов IPv6-адресов. Значение по умолчанию;

  • <2> — включает механизм по обнаружению дубликатов IPv6- и MAC-адресов в сегменте локальной сети. Если будут найдены два устройства с одинаковыми MAC- и IPv6-адресами на одном сегменте сети, передача данных по протоколу IPv6 будет остановлена для избежания конфликтов.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 address autoconf

Описание:
Включает на интерфейсе WireGuard механизм получения IPv6-адреса другими устройствами через автоматическую настройку адресов без сохранения состояния (SLAAC). Хост-устройства с поддержкой протокола IPv6 могут автоматически производить свою настройку при подключении к сети IPv6. Для этого они обмениваются сообщениями ICMPv6 по протоколу обнаружения соседей.

При первичном подключении хост-устройство отправляет многоадресную рассылку с запросом параметров у маршрутизатора. Роутер отвечает на запрос и высылает объявление, которое содержит параметры конфигурации сетевого уровня. Узнав эти параметры, хост-устройство сможет подключиться к маршрутизатору.

Более подробная информация содержится в документе RFC 4862.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 address autoconf

  • delete interfaces wireguard <interface> ipv6 address autoconf

  • show interfaces wireguard <interface> ipv6 address

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».

Примечание

Команда автоматически выключает перенаправление IPv6-трафика на интерфейсе WireGuard.


interfaces wireguard <interface> ipv6 address eui64 <prefix>

Описание:
Запускает преобразование EUI-64 на интерфейсе WireGuard. После этого хост-устройство сгенерирует себе уникальный 64-битный IPv6-адрес на основе своего MAC-адреса.

Более подробная информация содержится в документе RFC 4291.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 address eui64 <prefix>

  • delete interfaces wireguard <interface> ipv6 address eui64 <prefix>

  • show interfaces wireguard <interface> ipv6 address eui64

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <prefix> — префикс IPv6-адреса. Будет добавлен к основной части IPv6-адреса при запуске преобразования EUI-64.

Режим: «Конфигурирование».



interfaces wireguard <interface> ipv6 adjust-mss [<mss> | <clamp-mss-to-pmtu>]

Описание:
Устанавливает на интерфейсе WireGuard конкретное значение для максимального размера сегмента при передаче IPv6-пакетов по протоколу TCP или рассчитывает значение автоматически, динамически подстраиваясь под допустимый максимальный размер передаваемого пакета на маршруте.

Конкретным значением администратор ПО Факел задает порог и ограничивает отправку пакетов, размер которых будет превышать заданное значение.

Максимальный размер сегмента — это опциональное поле в заголовке TCP-пакета с установленным флагом SYN. Если автоматическое обнаружение максимального размера передаваемого пакета на маршруте работает некорректно, установите конкретный размер сегмента вручную.

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <mss> — конкретное значение для максимального размера сегмента на протоколе TCP. Диапазон значений: от 536 до 65535;

  • <clamp-mss-to-pmtu> — максимальный размер сегмента будет задан автоматически.

Режим: «Конфигурирование».

Подсказка

Максимальный размер сегмента = максимальный размер передаваемого пакета - 20 (заголовок протокола IP) - 20 (заголовок протокола TCP) = 1452 байта при максимальном размере передаваемого пакета в 1492 байт.


interfaces wireguard <interface> ipv6 base-reachable-time <sec>

Описание:
Задает временной интервал, в течение которого интерфейс WireGuard будет пытаться установить связь с хостом на другом конце туннеля. Если в течение указанного интервала связь установлена не будет, то интерфейс WireGuard отметит туннель нерабочим.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 base-reachable-time <sec>

  • delete interfaces wireguard <interface> ipv6 base-reachable-time <sec>

  • show interfaces wireguard <interface> ipv6 base-reachable-time

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <sec> — интервал в течение которого интерфейс WireGuard будет пытаться установить связь с хостом на другом конце туннеля WireGuard. Формат: секунды. Диапазон значений: от 1 до 86400. Значение по умолчанию: 30 секунд.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 disable-forwarding

Описание:
Выключает переадресацию пакетов по протоколу IPv6 с интерфейса WireGuard на любой другой интерфейс. После выполнения команды интерфейс WireGuard перейдет в режим хоста.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 disable-forwarding

  • delete interfaces wireguard <interface> ipv6 disable-forwarding

  • show interfaces wireguard <interface> ipv6

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 dup-addr-detect-transmits <n>

Описание:
Задает, сколько сообщений типа «опрос соседа» интерфейс WireGuard отправит по сети для обнаружения дубликатов IPv6-адресов.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 dup-addr-detect-transmits <n>

  • delete interfaces wireguard <interface> ipv6 dup-addr-detect-transmits <n>

  • show interfaces wireguard <interface> ipv6 dup-addr-detect-transmits

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <n> — количество сообщений типа «опрос соседа», рассылаемых по сети.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 source-validation [<strict> | <loose> | <disable>]

Описание:
Включает на интерфейсе WireGuard различные режимы проверки источника запроса по обратному пути.

Более подробная информация содержится в документе RFC 3704.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 source-validation <strict | loose | disable>

  • delete interfaces wireguard <interface> ipv6 source-validation <strict | loose | disable>

  • show interfaces wireguard <interface> ipv6

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <strict> — строгий режим. Применяется для предотвращения подмены IPv6-адреса при DDos-атаках. Каждый входящий пакет проверяется по таблице FIB. Если IPv6-адрес источника не соответствует записи в таблице FIB, пакет не пройдет проверку и будет отброшен. В этом режиме некоторые полезные пакеты могут быть отклонены, если сеть имеет сложную конфигурацию;

  • <loose> — нестрогий режим. Применяется в случае ассиметричной маршрутизации или другой сложной конфигурации сети. Каждый входящий пакет проверяется по таблице FIB. Если IPv6-адрес источника недоступен ни через какой интерфейс, то пакет не пройдет проверку и будет отброшен;

  • <disable> — проверка источника по обратному пути выключена.

Режим: «Конфигурирование».


interfaces wireguard <interface> mirror ingress <monitor-interface>

Описание:
Дублирует входящий трафик с порта интерфейса WireGuard на порт SPAN-интерфейса.

Синтаксис:

  • set interfaces wireguard <interface> mirror ingress <monitor-interface>

  • delete interfaces wireguard <interface> mirror ingress <monitor-interface>

  • show interfaces wireguard <interface> mirror ingress

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <monitor-interface> — имя SPAN-интерфейса.

Режим: «Конфигурирование».


interfaces wireguard <interface> mirror egress <monitor-interface>

Описание:
Дублирует исходящий трафик с порта интерфейса WireGuard на порт SPAN-интерфейса.

Синтаксис:

  • set interfaces wireguard <interface> mirror egress <monitor-interface>

  • delete interfaces wireguard <interface> mirror egress <monitor-interface>

  • show interfaces wireguard <interface> mirror egress

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <monitor-interface> — имя SPAN-интерфейса.

Режим: «Конфигурирование».


interfaces wireguard <interface> mtu <mtu>

Описание:
Устанавливает максимальный размер передаваемого пакета на интерфейсе WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> mtu <mtu>

  • delete interfaces wireguard <interface> mtu <mtu>

  • show interfaces wireguard <interface> mtu

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <mtu> — максимальный размер передаваемого пакета. Формат: байты. Диапазон значений: от 68 до 16000.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer>

Описание:
Ассоциирует интерфейс WireGuard с одноранговым узлом с определенным именем.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer>

  • delete interfaces wireguard <interface> peer <peer>

  • show interfaces wireguard <interface> peer

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> address [<x.x.x.x> | <h:h:h:h:h:h:h:h>]

Описание:
Указывает IPv4- или IPv6-адрес однорангового узла, с которым интерфейс WireGuard будет устанавливать связь.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> address [<x.x.x.x> | <h:h:h:h:h:h:h:h>]

  • delete interfaces wireguard <interface> peer <peer> address [<x.x.x.x> | <h:h:h:h:h:h:h:h>]

  • show interfaces wireguard <interface> peer <peer> address

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <x.x.x.x> — IPv4-адрес однорангового узла;

  • <h:h:h:h:h:h:h:h> — IPv6-адрес однорангового узла.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> allowed-ips <address>

Описание:
Указывает IP-адрес или диапазон IP-адресов однорангового узла, через которые интерфейс WireGuard будет поддерживать двустороннюю связь.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> allowed-ips <address>

  • delete interfaces wireguard <interface> peer <peer> allowed-ips <address>

  • show interfaces wireguard <interface> peer <peer> allowed-ips

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <address>— IP-адреса, через которые интерфейс WireGuard будет поддерживать двустороннюю связь. Формат: IPv4, CIDR, диапазон IP-адресов. Перечислить значения можно через запятую.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> description <description>

Описание:
Добавляет описание для однорангового узла, с которым интерфейс WireGuard будет устанавливать связь.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> description <description>

  • delete interfaces wireguard <interface> peer <peer> description <description>

  • show interfaces wireguard <interface> peer <peer> description

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <description> — описание для однорангового узла.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> disable

Описание:
Отключает связь интерфейса WireGuard с указанным одноранговым узлом.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> disable

  • delete interfaces wireguard <interface> peer <peer> disable

  • show interfaces wireguard <interface> peer <peer>

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> persistent-keepalive <sec>

Описание:
Задает интервал отправки сообщений keepalive со стороны однорангового узла, с которым интерфейс WireGuard будет устанавливать связь.

Синтаксис:

set interfaces wireguard <interface> peer <peer> persistent-keepalive <sec> delete interfaces wireguard <interface> peer <peer> persistent-keepalive <sec> show interfaces wireguard <interface> peer <peer> persistent-keepalive

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла.

  • <sec> — интервал отправки сообщений keepalive со стороны однорангового узла. Диапазон значений: от 1 до 65535. Формат: секунды.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> port <port>

Описание:
Указывает порт для входящий соединений на одноранговом узле, с которым интерфейс WireGuard будет устанавливать связь.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> port <port>

  • delete interfaces wireguard <interface> peer <peer> port <port>

  • show interfaces wireguard <interface> peer <peer> port

Аргументы:

  • port — Диапазон значений: от 1 до 65535.

Режим: «Конфигурирование».


interfaces wireguard <interface> <peer> preshared-key <key>

Описание:
Ассоциирует общий секретный ключ с одноранговым узлом сети, с которым интерфейс WireGuard будет устанавливать связь.

Синтаксис:

  • set interfaces wireguard <interface> <peer> preshared-key <key>

  • delete interfaces wireguard <interface> <peer> preshared-key <key>

  • show interfaces wireguard <interface> <peer> preshared-key

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <key> — общий секретный ключ.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> public-key <key>

Описание:
Ассоциирует открытый ключ с одноранговым узлом сети, с которым интерфейс WireGuard будет устанавливать связь.

Синтаксис:

  • set interfaces wireguard <interface> peer public-key <key>

  • delete interfaces wireguard <interface> peer <peer> public-key <key>

  • show interfaces wireguard <interface> peer <peer> public-key

Аргументы:

<interface> — интерфейс WireGuard; <peer> — одноранговый узел; <key> — открытый ключ.

Режим: «Конфигурирование».


interfaces wireguard <interface> per-client-thread

Описание:
Обрабатывает трафик от каждого клиента в отдельной очереди.

Синтаксис:

  • set interfaces wireguard per-client-thread

  • delete interfaces wireguard <interface> per-client-thread

  • show interfaces wireguard <interface>

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> port <port>

Описание:
Указывает порт для входящих соединений на интерфейсе WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> port <port>

  • delete interfaces wireguard <interface> port <port>

  • show interfaces wireguard <interface> port

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <port> — порт для входящий соединений на интерфейсе WireGuard. Диапазон значений: от 1 до 65535.

Режим: «Конфигурирование».


interfaces wireguard <interface> private-key <key>

Описание:
Сохраняет закрытый ключ в системе и ассоциирует его с указанным интерфейсом WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> private-key <key>

  • delete interfaces wireguard <interface> private-key <key>

  • show interfaces wireguard <interface> private-key

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <key> — закрытый ключ.

Режим: «Конфигурирование».


interfaces wireguard <interface> redirect <destination>

Описание:
Перенаправляет трафик на другой интерфейс маршрутизатора Факел.

Синтаксис:

  • set interfaces wireguard <interface> redirect <destination>

  • delete interfaces wireguard <interface> redirect <destination>

  • show interfaces wireguard <interface> redirect

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <destination> — имя интерфейса, на который будет перенаправлен трафик.

Режим: «Конфигурирование».


interfaces wireguard <interface> vrf <vrf>

Описание:
Размещает интерфейс WireGuard на указанном VRF-экземпляре.

Синтаксис: * set interfaces wireguard <interface> vrf <vrf> * delete interfaces wireguard <interface> vrf <vrf> * show interfaces wireguard <interface> vrf

Аргументы: * <interface> — имя интерфейса WireGuard; * <vrf> — имя VRF-экземпляра.

Режим: «Конфигурирование».


Режим «Администрирование»


generate pki wireguard key-pair

Описание:
Генерирует на интерфейсе WireGuard пару из открытого и закрытого ключей. Отображает ключи в консоли, но не сохраняет в системе.

Синтаксис:

generate pki wireguard key-pair

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate pki wireguard key-pair install interface <interface>

Описание:
Генерирует на интерфейсе WireGuard пару из открытого и закрытого ключей, ассоциирует с указанным интерфейсом WireGuard. Отображает ключи в консоли, но не сохраняет ключи в системе, а создает команду для ввода в режиме конфигурирования.

Синтаксис:

generate pki wireguard key-pair install interface <interface>

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate pki wireguard preshared-key

Описание:
Генерирует на интерфейсе WireGuard общий секретный ключ. Отображает ключ в консоли, но не сохраняет в системе.

Синтаксис:

generate pki wireguard preshared-key

Режим: «Администрирование».

Уровень привилегий: «Администратор».

Внимание

Поскольку ключ не открытый, а закрытый, обеспечьте его безопасное распространение.


generate pki wireguard preshared-key install interface <interface> peer <peer>

Описание:
Генерирует на интерфейсе WireGuard общий секретный ключ, ассоциирует с одноранговым узлом на указанном интерфейсе. Отображает ключ в консоли, но не сохраняет ключ в системе, а создает команду для ввода в режиме конфигурирования.

Внимание

Поскольку ключ не открытый, а закрытый, обеспечьте его безопасное распространение.

Синтаксис:

generate pki wireguard preshared-key install interface <interface> peer <peer>

Аргументы:

<interface> — интерфейс WireGuard; <peer> — одноранговый узел;

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate wireguard client-config <name> interface <interface> server <ip|fqdn> address <client-ip>

Описание:
Генерирует конфигурацию для клиента, который будет подключаться к интерфейсу WireGuard (серверу). Автоматически встраивает в конфигурацию открытый ключ интерфейса WireGuard. Также создает набор команд для ввода в консоль в режиме конфигурирования. Дополнительно выводит конфигурацию на экран в виде QR-кода.

При выполнении команды система запросит IP-адрес или полное доменное имя (FQDN) сервера, к которому будет подключаться клиент. Также система-сервер предложит назначить клиенту виртуальный IPv4- и/или IPv6-адрес для связи внутри подсети туннеля WireGuard.

Синтаксис:

  • set generate wireguard client-config <name> interface <interface> server <ip|fqdn> address <client-ip>

  • delete generate wireguard client-config <name> interface <interface> server <ip|fqdn> address <client-ip>

  • show generate wireguard client-config <name> interface <interface> server <ip|fqdn> address

Аргументы:

  • <name> — имя конфигурации для клиента;

  • <interface> — имя интерфейса WireGuard;

  • <ip> — IP-адрес WireGuard-сервера;

  • <fqdn> — полное доменное имя WireGuard-сервера;

  • <client-ip> — виртуальный IP-адрес, который WireGuard-сервер назначит клиенту. Формат: IPv4 и/или IPv6 с префиксами /32 и /128, соответственно,

Режим: «Администрирование».

Уровень привилегий: «Администратор».


show interfaces wireguard wg10

Описание:
Отображает краткую информацию о статусе интерфейса WireGuard.

Синтаксис:

show interfaces wireguard wg10

Режим: «Администрирование».

Уровень привилегий: «Администратор».


show interfaces wireguard <interface> allowed-ips

Описание:
Отображает IP-адреса, через которые интерфейс WireGuard поддерживает двустороннюю связь с другим одноранговым узлом.

Синтаксис:

show interfaces wireguard <interface> allowed-ips

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


show interfaces wireguard <interface> endpoints

Описание:
Отображает информацию о конечных точка, с которыми интерфейс WireGuard установил связь.

Синтаксис:

show interfaces wireguard <interface> endpoints

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


show interfaces wireguard <interface> peers

Описание:
Отображает идентификаторы одноранговых узлов, с которыми интерфейс WireGuard установил связь.

Синтаксис:

show interfaces wireguard <interface> peers

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


show interfaces wireguard <interface> public-key

Описание:
Отображает открытый ключ, ассоциированный с указанным интерфейсом WireGuard.

Синтаксис:

show interfaces wireguard <interface> public-key

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


show interfaces wireguard <interface> summary

Описание:
Отображает сводную информацию о текущей конфигурации и об устройстве.

Синтаксис:

show interfaces wireguard <interface> summary

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate pki key-pair file <filename>

Описание:
Генерирует пару из открытого и закрытого ключей, сохраняет их в файл. Сгенерированные ключи не будут привязаны к какому-либо интерфейсу.

Синтаксис:

generate pki key-pair file <filename>

Аргументы:

  • <filename> — имя файла, в который будет сохранена пара ключей.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate pki key-pair install

Описание:
Генерирует пару из открытого и закрытого ключей. Отображает ключи в консоли, но не сохраняет ключи в системе. Также предлагает сгенерировать команду для ввода в режиме конфигурирования. Сгенерированные ключи не будут привязаны к какому-либо интерфейсу.

Команды, которые будут сгенерированы для ввода в режиме конфигурирования:

set pki key-pair <key-name> public key <key>
set pki key-pair <key-name> private key <key>

Синтаксис:

generate pki key-pair install

Режим: «Администрирование».

Уровень привилегий: «Администратор».