Теперь у вас есть так называемое соединение точка-точка. Это нормально и ожидаемо с PPP, который является тем, что инкапсулирует SSTP. К сожалению, по умолчанию он не подходит ни для чего, полагающегося на широковещательную или многоадресную передачу.
Исходя из моего личного опыта, вам понадобится OpenVPN (версии с открытым исходным кодом здесь) с использованием dev tap
для надежной механики VPN уровня 2.
Вот базовый пример конфигурации сервера:
local myhost
port 12345
proto udp
dev tap
ca /path/to/ca.pem
cert /path/to/server-cert.pem
key /path/to/server-key.pem
ifconfig-pool-persist /path/to/ip-pool
server-bridge 10.0.0.1 255.255.255.0 10.0.0.10 10.0.0.200
persist-key
persist-tun
client-to-client
keepalive 10 120
Эта конфигурация приводит к тому, что все клиенты находятся в одном широковещательном домене уровня 2, используя подсеть 10.0.0.0/24 с постоянными IP-адресами клиентов. Это похоже на поведение большинства интернет-шлюзов потребительского уровня с DHCP.
Конфигурация клиента также довольно проста:
client
proto udp
dev tap
remote myhost 12345
nobind
persist-key
persist-tun
ca /path/to/ca.pem
cert /path/to/client-cert.pem
key /path/to/client-key.pem
ns-cert-type server
OpenVPN ожидает сертификаты PEM. OpenSSL может конвертировать между различными кодировками. Ключи не должны требовать паролей, если вы не хотите, чтобы клиент и / или сервер запрашивали их при каждом запуске (не подходит для автоматического запуска).
Все сертификаты должны быть подписаны одним и тем же центром сертификации. Сертификат сервера должен быть сертификатом сервера и наоборот.
Это ни в коем случае не полное руководство, просто пример конфигурации. При желании мост между физической и виртуальной сетью должен быть установлен вручную. Вы также должны позаботиться о том, чтобы ваши обязанности по автоматическому назначению адресов не конфликтовали (маршрутизатор против OpenVPN и т.д.).