我已经在 CentOS 7 上配置了一个 Strongswan 服务器以适应移动办公的情况,并且它运行良好。
但我希望 Windows 10 客户端获取带有后缀 DNS 的域,但我没有找到任何方法。我尝试使用 WINS 服务器,但它没有达到我想要的效果。例如,当我尝试“nslookup my-server”时,我希望连接添加后缀以获得正确的结果。在实际情况中,nslookup 失败了。此外,使用的 DNS 不是 IPsec 传输的 DNS。
ipsec.conf:
conn %default
mobike=yes
keyexchange=ikev2
forceencaps=yes
auto=add
conn IKEv2-eap
esp=aes256-sha1-modp1024!
ike=aes256-sha384-modp1024!
leftauth=pubkey
leftfirewall=yes
leftcert=gwCert.pem
leftsubnet=0.0.0.0/0
right=%any
rightsourceip=10.3.0.1-10.3.0.50
rightauth=eap-mschapv2
eap_identity=%identity
strongswan.conf:
charon {
load_modular = yes
plugins {
include strongswan.d/charon/*.conf
attr {
dns = 134.158.128.2, 134.158.128.6
nbns = 134.158.130.183, 134.158.130.156
}
}
}
我有 OpenVPN,域名通过 VPN“传输”,我的 nslookup 运行正常。我想用 Strongswan 做同样的事情。
答案1
没有 IKEv2 配置属性来分配一组默认 DNS 后缀。
虽然有一个新的扩展(RFC 8598) 允许配置拆分 DNS(仅对指定域使用 VPN 分配的 DNS 服务器),它没有具体说明 DNS 后缀(我猜这取决于客户端是否也这样配置域)。
无论如何,该扩展不会对您有帮助,因为 Windows 目前不支持它。
不过,可以通过以下方式在客户端上手动设置单个 DNS 后缀Set-VpnConnection
PowerShell 命令:
Set-VpnConnection -Name "ConnectionName" -DnsSuffix example.com
VPN 提供的 DNS 服务器未被使用的问题可能是 Windows 10 中的一个普遍问题(不知道是否与版本有关),例如superuser.com 上的这个问题,或者搜索“Windows 10 VPN DNS 泄漏”或类似内容。
答案2
虽然 IKEv2 配置负载 (CP) 中无法指定 DNS 后缀,但 Windows VPN 客户端在成功连接后会发送 DHCP 请求以获取各种 DHCP 选项。其中一个选项是选项 15 域名。
使用 dnsmasq 使用 DHCP 服务器配置 DNS 后缀
您可以在运行 strongSwan 的同一台服务器上安装 dnsmasq。
apt install dnsmasq
在以下位置创建配置文件
/etc/dnsmasq.d/dnsmasq.conf
port=0 # Disables DNS server domain=example.com
注意:dhcp-range
如果您使用 strongSwan 分配 IP 地址,则无需进行配置。DHCP 服务器只能使用选项进行响应。