为什么我的 Android 手机仅在使用 Windows Server 作为网关时无法进行 DNS 查询?

为什么我的 Android 手机仅在使用 Windows Server 作为网关时无法进行 DNS 查询?

(该问题最初在 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 之间传递的消息,以便准确找出它们何时卡住。

相关内容