通过VPNdynamicDNS注册?

在我们的Windows AD域中,我们有2个DC也充当了我们的DNS服务器,允许客户端计算机更新他们的A records 。 我们有很多外部销售人员,所以我们的一些笔记本电脑必须长时间离开现场,通过我们的(全通道)SSL VPN连接,使用Fortinet VPN客户端。 VPN隧道上的DNS工作正常,VPN客户端能够完美地parsing本地主机名。

问题是,通过VPN连接的客户端不会使用其SSLVPN适配器IP地址来更新DNSlogging。 实际上,他们根本不更新DNS服务器。 从我的研究中,我发现客户应该在发生更改时向DNS服务器发送更新,但SSL VPN适配器连接并获取IP地址时似乎不会发生。

我曾经想过在所有使用DNSCMD命令的计算机上部署PowerShell脚本,当它检测到SSL VPN适配器有一个IP地址,但是这个解决scheme远非理想,感觉过于复杂和非常混乱。 我希望有一个更简单的解决scheme,我一直无法挖掘。

在SSLVPN适配器中,在TCP / IP属性DNS中,确保Register this connection's addresses in DNS实际上已被选中。

通常在VPN连接上不是…

您的客户没有使用DNS注册他们的IP地址,原因很简单,因为他们没有configuration为连接到VPN。 这种行为被称为dynamicDNS注册,在Windows中,是一个每networking适配器设置。 通过GUI,您可以在networking适配器PropertiesNetworking选项卡,TCP / IP PropertiesAdvancedDNS选项卡上启用或禁用此function,如下所示。

在这里输入图像说明

幸运的是,可以为所有用户进行更正。 不幸的是,它并不像应该那么简单 – 没有内置的GPO来控制这个特定的设置,这使得这个任务成为了脚本或者手动干预。 希望人工干预道路不需要真正的解释(告诉你的用户这样做,和/或为那些不能/不会的人做),但是这个问题有三种解决方法。

  1. 将DDNS注册工作卸载到您的DHCP服务器。
    • 这可能是Fortinet上的一个可configuration的选项(使用您提供的DNS服务器注册DHCP客户端)。
  2. 在客户端上编写DDNS注册脚本。
    • 我不是一个重新发明轮子的人, 所以请参阅Evan Anderson的答案,其中包括一个您将使用的脚本,以及类似的问题 。
      • 如果你想推出你自己的PowerShell脚本,你可以看看Win32_NetworkAdapterConfiguration类的SetDynamicDNSRegistration方法 。
    • 我认为最好的结果可以通过将这样的脚本与login或启动GPO相结合来实现,但也可以以其他或更简单的方式实现。
  3. 检查VPN客户端安装程序文档,看看这是否是一个可configuration的选项。
    • 当我在使用Cisco VPN客户端的旧工作中遇到类似的问题时,DDNS注册可以通过安装程序包中的一个简单configuration文件进行configuration,该configuration文件可以根据我们的需求进行修改,然后将其放入我们的所有笔记本电脑映像中。

在你的dhcp服务器的范围内排除一个范围为192.168.xx的dhcp服务器,然后把这个范围分配给forti客户端中的dhcp服务器,所以当你的客户端通过vpn连接时,dhcp指定一个来自排除范围,操作系统使用分配的ip更新DNSlogging。