(该问题最初在 Server Fault 上提出,但标记为在此处发布)。
首先,我应该承认我是一个真正的网络新手。作为一个业余项目,我在家里安装了一些东西:
- 连接所有计算机和服务器的交换机
- Windows Server(连接到交换机和广域网(单独的 NIC),运行 RAS 作为互联网网关,DHCP 和 DNS(捕获一个或两个域,方便服务器访问,其余的转发到 8.8.8.8 和 8.8.4.4))。
- 带有 dd-wrt 的 linksys 路由器,用于移动访问 LAN(将 LAN 连接到交换机,禁用 DHCP,本地 IP、网关和 DNS 指向服务器)。
根据同事的提示,我确保所有设备/协议上的所有 IPv6 设置都已禁用。
现在,奇怪的是,当我将笔记本电脑连接到此接入点时,一切(似乎)都正常工作,并且符合预期。但我的手机(Android)似乎有些问题。网页延迟,有时根本无法加载,聊天程序有时无法接收消息。
我尝试在手机上使用 DNS 查找工具,因为我怀疑 DNS 是问题所在。确实,当网页停止加载时,DNS 查找会转到未知的地方。而 IP 会给我网页。
我知道这可能是一个相当模糊的描述,但这又是一个奇怪的问题。我希望你们中有人能指点一下从哪里开始并调试这个问题(我只是不知道如何精确定位问题,这使得谷歌搜索变得非常困难)?
如果需要更多信息,请告诉我,提前谢谢!
编辑
经过进一步调查,似乎 Android 完全忽略了 DNS(即使配置为静态)。当我运行 NSLookup 工具时,我什么也没得到。当 NSLookup 专门针对我的服务器/google/等时,我会立即得到结果。
我曾尝试将接入点设置为路由器,并拥有自己的子网,服务器连接到 WAN。这样就不再有问题了,但这样连接就完全没有意义了……
编辑2
根据要求,对问题发生时的 IP 地址进行概述:
- Windows 服务器 (2012 R2):
- LAN(桥接)10.0.0.1(255.0.0.0)
- 广域网 192.168.1.10(255.255.255.0)网关:192.168.1.1
- 客户端(通过 DHCP):10.0.1.x (255.0.0.0) 网关 10.0.0.1,DNS 10.0.0.1
- 接入点:10.0.0.15 (255.255.255.0)
DHCP:
- 启用 DNS 动态更新:是(始终)
- 删除租约时丢弃 A 和 PTR 记录:是
- 租赁时间:1天
- 转发器:8.8.8.8、8.8.4.4
- 范围选项:
- 路由器:10.0.0.1
- DNS 服务器:10.0.0.1、8.8.8.8
- 名称服务器:10.0.0.1
答案1
与此同时,我尝试重新设计我的网络。我没有让 Windows Server 运行 RRAS,而是选择使用单独的路由器。然后让 DHCP 指向该路由器作为网关,但仍强制客户端使用本地 DNS。
这似乎在所有设备上运行都有效,但我仍然感到震惊,为什么 RRAS 的情况不起作用。
答案2
据悉,虽然您的设置是可行的,但需要进行大量调整。这可能是授权问题,Android 中的连接设置与服务器的设置不匹配,也可能是手机不支持的 RRAS 功能。
以下 Microsoft 支持文章中可能会提供提示 无法在 Android 设备和 TMG 服务器之间建立 L2TP VPN 连接:
出现此问题的原因是,在建立点对点协议 (PPP) 连接后,Android 设备重新启动了压缩控制协议 (CCP) 协商。此行为会触发 RRAS 服务器将 Android 设备视为支持网络访问保护 (NAP) 的设备并尝试对该设备进行身份验证。然后,TMG 服务器拒绝对该设备进行身份验证的请求,并出现此 Microsoft 知识库 (KB) 文章中描述的问题。
虽然本文没有直接解决您的问题,并且提供的修补程序很可能与您的 Windows 版本无关,但它确实指出问题可能是 RRAS 对 Android 设备识别错误,从而导致协议问题。
上述情况可能表明 RRAS 可能会错误地将您的手机识别为另一种设备,并可能使用您的手机无法理解的协议,因此事情可能会卡住。
不使用 RRAS,这是我能提供的所有信息。你有一个有效的解决方案,那就是避免使用 RRAS。但由于你打算继续分析问题,我希望上述提示会有所帮助。你可以尝试跟踪手机和 RRAS 之间传递的消息,以便准确找出它们何时卡住。