WireGuard - разбор конфига
Материал из Все о VPN, прокси и свободном интернете
WireGuard - разбор конфига
PrivateKey — приватный ключ. Не путь к ключу, а именно его содержимое. Обязательно должно присутствовать. ListenPort — порт, на котором работает WireGuard. Если нет, выбирается случайно. FwMark — маркировка исходящего трафика. Address — IP-адреса, которые будут назначены интерфейсу. DNS — DNS-адреса (через запятую или несколько раз указать DNS). Требует наличие пакета resolvconf! Если нет, DNS не добавляются. MTU — значение MTU для интерфейса. Если нет, MTU не изменяется. Table — таблица маршрутизации, куда будут добавлены маршруты для WireGuard. Если нет, используется таблица main. PreUp, PostUp, PreDown, PostDown — скрипты, которые будут выполняться перед и после подключения, перед и после отключения соответственно. Можно указывать несколько скриптов. Выполняться они будут в порядке, описанном в файле. SaveConfig — флаг сохранения всех изменений в файл конфигурации.
Каждый пир должен быть представлен отдельной секцией [Peer] со следующими полями (совпадающими с параметрами запуска wg set <WG_IFACE> peer...):
PublicKey — публичный ключ. Обязательно должен присутствовать. PresharedKey — дополнительный ключ шифрования. Если нет, дополнительное шифрование не используется. AllowedIPs — список разрешенных подсетей. Можно указывать каждую сеть через запятую, а можно несколько раз указать это поле. Если нет, никакая сеть не закреплена за пиром. Endpoint — IP-адрес или имя пира с обязательным указанием порта. Можно не указывать. PersistentKeepalive - Этот параметр нужен для увеличения надёжности соединения именно в случае с NAT и брандмауэром. Для определения мертвых соединений wireguard использует механизм Passive Keepalive, см. 15 стр. Whitepaper. Поэтому, если у вас настроен нормально брандмауэр или NAT и Wireguard, то никаких проблем быть не может «by design». Но вы используете NAT, как я понял (соединяете датацентры), и поэтому вам этот параметр необходим. А так раз в 120 секунд новые безопасные сессии создаются, поэтому при PAT или DNAT, если не будет передача осуществляться, произойдёт, возможно, обрыв. Because every transport data message sent warrants a reply of some kind—either an organic one generatedby the nature of the encapsulated packets or this keepalive message—we can determine if the secure sessionis broken or disconnected if a transport data message has not been received for (Keepalive-Timeout+Rekey-Timeout) seconds, in which case a handshake initiation message is sent to the unresponsive peer,once everyRekey-Timeoutseconds, as in section 6.4, until a secure session is recreated successfully or untilRekey-Attempt-Timeseconds have passed