路由和远程访问 VPN 设置

路由和远程访问 VPN 设置

我正在尝试使用路由和远程访问来设置 VPN。

我尝试了两种配置,一种使用单网卡,一种使用双网卡。

我可以通过 VPN 连接并由 DHCP 服务器分配 IP 地址,但我无法“看到”任何东西。我的意思是,客户端似乎完全看不到办公室网络,这意味着:

  • 无法 ping 通任何办公室服务器,包括 VPN 服务器(我已停止 ICMP 的过滤)
  • 没有 DNS 解析(如果我无法通过 IP 地址连接,这并不奇怪。我尝试使用域名和 IP 地址访问 VPN 服务器共享及其上托管的网页,例如http://host.com/abchttp://192.169.254.199/abc
  • 无法访问任何网络资源(考虑到上述情况,这也不足为奇)

我连接 VPN 时根本没有遇到任何问题(我以为遇到了,但这与我提供的测试路由器有关)。

这似乎不是防火墙/路由器的问题,因为我将其配置为允许 VPN 流量通过并转发到正确的服务器。

我认为,这已得到证实,因为 VPN 服务器事件日志显示成功审核(即登录事件)。

然而,它确实在成功审核登录事件发生后直接显示以下事件(我不知道这是否正常,但不希望如此 - VPN 客户端不会断开连接)。

An account was logged off.

Subject:
    Security ID:        [DomainName]\[UserName]
    Account Name:       [UserName]
    Account Domain:     [DomainName]
    Logon ID:       0x[xxxxxx]

Logon Type:         3

当登录会话被破坏时会生成此事件。它可能与使用登录 ID 值的登录事件正相关。登录 ID 仅在同一台计算机上的重新启动之间是唯一的。

我不确定这是否有用,但是Wireshark显示连接成功,然后加载了一堆加密数据包,这正是我所怀疑的:

  • 有一个 PPP LCP/CHAP 配置对话,是客户端连接。
  • 当我对 VPN 公共接口执行 ping 操作时,我在任何一侧都看不到任何 ICMP(我认为这是因为它被封装在 GRE 数据包中)。

然而下面的内容很有趣(我无法解释):

  1. 对 VPN 服务器的公共接口 (A) 执行 ping 操作时,我发现 PPP 和 GRE 流量增加
  2. 如果我 ping 私有接口 (B) (VPN 服务器) 也是一样
  3. 如果我 ping 网络上的另一台服务器 (C),我可以看到 ICMP 数据包请求,但没有回复(我不确定 (C) 服务器是否直接回复客户端 (D) 的 VPN IP - 确实如此,因为我看到 (A) 中的流量)

我无法解释第 1 点或第 2 点 - 我期望看到 ICMP,但问题似乎是向 (D) 发送流量。为了检查这一点,我从 (C) ping 了 (D) 并收到了回复,但我没有看到 (D) 上相关的 ICMP 流量(这可能是 GRE 流量吗?)。我觉得这很奇怪,但 (C) 肯定在 ping 正确的机器,因为当我断开 (D) 与 VPN 的连接时,它停止响应。

另请注意,我没有看到 (D) 上有任何到 VPN 网络地址的流量,只有到设置了端口转发的路由器的流量。这可能是某种路由问题吗?

VPN 服务器似乎在 ping 时出现问题(D)- 显示“无资源”,路径平显示它正在使用接口 (A)。并且该问题仅在 ping (D) 时发生,它可以 ping 其余所有内容而没有任何问题。

我将 RRAS 更改为单 NIC 设置,无资源问题就消失了 - 我似乎可以从所有机器 ping 客户端,但无法从客户端 ping 任何东西。我说似乎,是因为当我 ping 客户端时,它花费的时间不到 1 毫秒(请记住,这是通过互联网和不同的 ISP 进行的),而且我没有在 VPN 服务器上看到任何 ICMP 流量 - 而且当我断开客户端时,它仍然可以 ping !?!(好像 VPN 服务器正在代表客户端回复 ping。)当这种情况发生时,VPN 服务器在 ping 断开连接的客户端时会超时。非常奇怪!

放置一段时间后(喝茶、吃饭之类的时间),VPN 服务器又回到了无资源问题,而且我无法在两个方向 ping 通。禁用 RRAS 并再次启用它让我回到刚才的状态,我现在可以从 LAN ping 通客户端。

答案1

您的术语“...看到 LAN 上的任何东西...”不准确。您所说的“看到”是什么意思?您是指您无法 PING 或与 LAN 上的主机建立 TCP 连接吗?您是指某些“网络邻居”或此类功能不起作用吗?

您要做的事情会很顺利。您可能无法通过 VPN 获得 NetBIOS 名称解析,因为您可能没有在 LAN 上使用 WINS 服务器。这就是我“超自然力量”对您遇到问题的原因的猜测。

在域控制器上安装 RRAS 可使其实现多宿主。它可以工作,但 Microsoft 不推荐这样做。您应该考虑阻止 RRAS 适配器在 DNS 和 WINS 中注册

编辑:

我认为我的回答没有任何“做作”之处。我试图根据您对问题的不精确描述(使用“看到”一词,而不是准确说明连接时出现的问题)以及我对此类问题的经验来提供帮助。您关于使用 RADIUS 的含糊陈述让我感觉您不是专业的系统管理员(后来您的评论证实了您的工作),并且您可能试图使用某种图形工具或应用程序来访问 LAN 上的资源,但尚未执行验证第 3 层通信、名称解析等基本故障排除步骤。

我在连接到 NAT 防火墙后面的 Internet 的 LAN 上的域控制器上设置了 RRAS 服务器。我每周连接它们几次。您尝试执行的操作运行正常。

您是否允许 RRAS 服务器从 DHCP 为客户端分配 IP 地址,或者您是否指定了地址范围?如果您指定了地址范围,该范围是 LAN 子网内的范围,还是不同的子网?当“连接”时分配给客户端的 IP 是否符合您的预期?

我仍然不清楚您在“连接”后尝试做了什么,让您认为您无法“看到” LAN。您可以 PING RRAS 服务器的 IP 地址吗?您可以通过 IP 地址与 RRAS 服务器或 LAN 上的其他服务器托管的服务建立 TCP 连接吗?您是否获得了 DNS 解析?

最后,我并不是说将 RRAS 移到另一台服务器就能解决问题。我只是想说微软不推荐使用多宿主域控制器。只要您了解这样做的后果,RRAS 就可以在域控制器上正常运行。

编辑2:

通过设置 RRAS 服务器从 DHCP 分配 IP 地址,您会看到一个好的 LAN IP 地址被分配给客户端,是吗?

假设您已经安装了,但无法从客户端 PING RRAS 服务器的 LAN IP 地址,那么是时候开始嗅探流量了。我会嗅探 RRAS 服务器在客户端上查看 PING 请求是否正确路由出 VPN 连接(作为加密的 GRE 负载 - 假设您使用的是 PPTP)。如果嗅探不方便,您可以通过“路由和远程访问”管理控制台管理单元中“远程访问客户端”节点中已连接客户端的“状态”对话框查看传输的字节数。不过我会嗅探 - 没有什么可以替代查看线路上的数据。

我认为,连接后客户端的路由表看起来也和您预期的一样。默认情况下,Microsoft VPN 客户端会将您的默认网关分配给远程网络(VPN 连接的“高级”TCP/IP 属性中的“在远程网络上使用默认网关”复选框)。如果您关闭该功能,您不会看到默认网关更改,而是会看到远程网络的条目,其中的网关为分配给客户端 VPN 适配器的 IP 地址。您没有提到客户端操作系统是什么,但 Microsoft VPN 客户端的行为在 Windows 7 中略有变化(允许您明确禁用愚蠢的“有类”路由添加行为)。

可能不用问就可以,但是 VPN 服务器的 LAN IP 子网和客户端连接的 LAN 子网使用不同的地址范围,不是吗?

答案2

在我看来,您的 VPN 连接配置不正确。为了使 VPN 正常工作,客户端必须更改其部分 IP 配置详细信息,特别是:

  1. 您的名称服务器必须能够解析目标网络中的名称。这通常是通过让 VPN 服务器转发合适的 DNS 服务器的 IP 地址来实现的。
  2. 您的 VPN 服务器必须转发使流量流动所需的相关路由。通常,VPN 连接在非常小的 (/30) 子网上运行,您的 VPN 服务器将处理其所拥有的各种隧道的分发。但是,您的客户端需要知道目标网络的 IP 地址可以通过隧道到达,因此客户端路由表中需要额外的路由。

您可以按如下方式检查这些内容:在 VPN 上,在客户端上打开一个 shell(DOS 提示符,无论什么)并运行(在 Windows 下)

ipconfig /全部
或(在 Linux 下)
猫/etc/resolv.conf
这将显示您正在使用的 DNS 服务器。此 DNS 服务器必须位于目标网络上(最常用的解决方案),或者必须能够将目标网络中的计算机名称解析为 IP 地址。

第二个测试是检查你的路由。在 Windows 下输入

路线打印
在 Linux 下,使用
sudo 路线-nv
这将给你如下输出:

# 路线 -nv
内核 IP 路由表
目标网关 Genmask 标志 指标参考使用 Iface
10.180.0.1 10.180.0.169 255.255.255.255 UGH 0 0 0 tun0
10.180.0.169 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.172.0.0 10.180.0.169 255.255.0.0 UG 0 0 0 tun0
10.171.0.0 10.180.0.169 255.255.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.10.254 0.0.0.0 UG 0 0 0 eth0

上图中,网络 10.171.0.0/16 和 10.172.0.0/16 被路由到隧道。

如果客户端缺少上述任何一项,请检查您的 VPN 服务器配置,看它是否确实设置为将相关位转发到客户端。这显然取决于您使用的 VPN 服务器类型。

答案3

我建议更改您的 IP 子网。如果您在本地网络上的 IP 地址是 192.168.x.100,并且您尝试通过 VPN 连接到也使用 x 子网的远程站点,那么您的问题可能很有意义。

更改您的 IP 子网。我知道这并不容易……哈哈。

答案4

这似乎是 DHCP 流量的问题。我不知道为什么。

为了解决这个问题,我手动添加了一个静态地址池(如果在设置 RRAS 时这样配置它,它将不起作用)。

现在我可以 ping 通了。尽管客户端选择了正确的 DNS 服务器,但 DNS 似乎还是有问题 - 要解决这个问题,您需要在客户端上配置 VPN 网络连接以附加 DNS 后缀。

相关内容