WireGuard: Как протолкнуть маршруты и параметры dhcp клиентам с сервера?

Поддерживает ли WireGuard способ для VPN-сервера передавать маршруты и параметры DHCP своим клиентам, как это делает OpenVPN с чем-то вроде:

push "route 10.0.2.0 255.255.255.0 " 

push "dhcp-option DNS 10.66.0.4"

У меня есть сотни клиентов, которые динамически настраивают свое VPN-соединение с VPN-сервером, и я хочу, чтобы эти маршруты и опции были установлены по мере их подключения к VPN-серверу.

1 ответ

Маршруты или даже разделенное туннелирование выполняется установкой Allowed IPs параметр в конфигурации клиента!

Конфигурация клиента

[Interface]
# client001 #
PrivateKey = <private key of client>
Address = 100.64.0.100/32
DNS = 100.64.0.1

[Peer]
PublicKey = <public key of server>
PresharedKey = <preshared key for client>
AllowedIPs = 100.64.0.0/10, 192.168.178.0/24
Endpoint = <your-ip-or-fqdn.to.connect>:<port>
PersistentKeepalive = 25

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

[Interface]
Address = 100.64.0.1/10
SaveConfig = true
ListenPort = 51820
PrivateKey = <private key of server>

[Peer]
PublicKey = <public key of client>
PresharedKey = <preshared key for client>
AllowedIPs = 100.64.0.100/32

В этом случае конфигурация для клиента AllowedIPs = 100.64.0.0/10, 192.168.178.0/24 устанавливает на клиенте маршруты для отправки всего за 100.64.0.0/10 и 192.168.178.0/24 в туннель проводника, но не более того. (Переадресация IP-адресов и маскарадинг также активируются на сервере WireGuard.)

DNS = 100.64.0.1 параметр говорит клиенту использовать 100.64.0.1 (в моем случае сервер WireGuard) в качестве DNS-сервера. Даже DNS находится на самом WireGuard-сервере, интернет-трафик по-прежнему маршрутизируется напрямую, только DNS выполняется моим пользовательским DNS.

В текущей версии это невозможно. IPSec и OpenVPN содержат тысячи строк кода, которые имеют дело с политиками маршрутизации (по крайней мере, IPSec), а также для настройки IP-адресов. Wireguard ожидает, что они будут жестко закодированы, по крайней мере, на данный момент, в каждом файле.

Имейте в виду, что наличие интерфейса точка-точка лучше, чем несколько режимов моста в OpenVPN, но нет способа настроить интерфейс внутри модуля ядра. т.е. кода уровня 2 нет. Немного обидно, остальное красиво и чисто.

Другие вопросы по тегам