Windows VPN服务器可以与VPN客户端通信,但不会将数据包从其本地网络发送到VPN客户端

我想配置Windows Server 2012及其Windows 7和Windows 8 VPN客户端,使用分离隧道和子网外寻址的SSTP VPN,但我遇到了一个问题:RRAS服务器不会向VPN发送数据包来自任何其他机器的客户.

我的VPN服务器在亚马逊的“虚拟私有云”上运行,因此它只有一个NIC在私有的RFC1918网络上与所有其他Amazon VPC服务器共享的IP地址,以及一个公共IP,它将所有流量转发到该私有地址通过NAT(亚马逊称之为“弹性IP”).

我已经安装了RRAS并设置了VPN.亚马逊上的私有子网是172.16.0.0/17(这就是我称之为“亚马逊局域网”),但我希望所有的VPN客户端都使用10.128.0.0/20范围(我称之为“ VPN局域网“).

在我的亚马逊控制面板中,我完成了以下操作:

>禁用VPN服务器的源/目标检查
>在10.128.0.0/20池的路由表中添加了一个条目,该条目指向VPN服务器的网络接口.

在路由和远程访问MMC内部,在服务器名称的属性菜单中,我已完成以下操作:

>常规选项卡 – > IPv4路由器(已选中),启用LAN和请求拨号路由
>常规选项卡 – > IPv4远程访问服务器(已选中)
> IPv4选项卡 – >启用IPv4转发(已选中)
> IPv4选项卡 – >静态地址池,并指定10.128.0.1-10.128.15.154

在我的客户端和我的所有服务器上,我确保在防火墙中明确允许ICMP,或者完全禁用防火墙(当然不是永久计划).

在客户端上,为了启用拆分隧道,我已经转到VPN连接的属性 – >网络 – > IPv4 – > Propeties – >高级 – > “IP设置”选项卡,取消选中“在远程网络上使用默认网关”,然后选中“禁用基于类的路由添加”.

此时,我的客户端可以使用Windows 7/8 VPN客户端进行连接.它们被分配了10.128.0.0/20池中的IP,但由于它们没有自动设置任何路由,因此它们无法与远程网络通信.我可以设置到远程网络和VPN网络的路由,如下所示(在客户端上):

route add 172.16.0.0/17 <VPN IP ADDRESS> 
route add 10.128.0.0/20 <VPN IP ADDRESS> 

现在,客户端可以ping VPN服务器的VPN LAN地址(10.128.0.1),以及其Amazon LAN地址(172.16.1.32).但是,当尝试与亚马逊局域网上的其他机器通信时,它遇到了一个问题:ping没有收到回复.

因此,例如,如果客户端尝试ping我知道的系统并响应172.16.0.113这样的ping,则不会看到这些回复(它表示“Request timed out”). VPN服务器上的Wireshark确认它从客户端看到ping,它甚至看到172.16.0.113发送的回复,但该回复显然从未回复到客户端.

此外,如果我从172.16.0.113 ping客户端的VPN LAN地址,VPN服务器上的Wireshark会看到ping,但看不到回复.

所以,回顾一下:

> VPN服务器可以ping亚马逊LAN(172.16.0.0/17)上的其他计算机并接收回复,该网络上的其他计算机也可以执行相同的操作.
>在客户端添加如前所述的正确路由后,VPN客户端可以ping服务器的Amazon LAN地址并接收回复.
> VPN客户端可以ping服务器的VPN LAN地址10.128.0.1,并且VPN服务器可以在客户端添加路由正确路由后,在10.128.0.0/20范围内ping客户端的VPN LAN地址,如前所述.
> VPN客户端可以将ping发送到Amazon LAN上的计算机,但是当这些计算机发送回复时,它们会停在VPN服务器上 – 它们不会转发到客户端,从而导致“请求超时”消息客户.相反,当Amazon LAN上的计算机尝试ping客户端的10.128.0.0/20 VPN LAN地址时,VPN服务器会看到ping,但客户端从不这样做,因此不会生成回复.

为什么VPN服务器不会将数据包从Amazon LAN发送到VPN LAN上的客户端?它绝对可以与VPN LAN上的客户端通信,并且启用路由,并且它愿意从VPN LAN路由数据包 – >亚马逊局域网,但不是相反.我在这里想念的是什么?

路线

以下是VPN客户端的路由表.客户端是运行Windows 8的VirtualBox VM.它的vbox适配器的IP地址是/ 24上的10.0.2.15.这个客户端是NAT的背后(实际上,它是双NAT的背后,因为vbox适配器是NAT到我的本地网络,它是对Internet的NAT).此路由表来自手动将路由添加到10.128.0.0/20和172.16.0.0/17之后.

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0         10.0.2.2        10.0.2.15     10
         10.0.2.0    255.255.255.0         On-link         10.0.2.15    266
        10.0.2.15  255.255.255.255         On-link         10.0.2.15    266
       10.0.2.255  255.255.255.255         On-link         10.0.2.15    266
       10.128.0.0    255.255.240.0         On-link        10.128.0.3     15
       10.128.0.3  255.255.255.255         On-link        10.128.0.3    266
    10.128.15.255  255.255.255.255         On-link        10.128.0.3    266
    54.213.67.179  255.255.255.255         10.0.2.2        10.0.2.15     11
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
       172.16.0.0    255.255.128.0         On-link        10.128.0.3     15
   172.16.127.255  255.255.255.255         On-link        10.128.0.3    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link         10.0.2.15    266
        224.0.0.0        240.0.0.0         On-link        10.128.0.3    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link         10.0.2.15    266
  255.255.255.255  255.255.255.255         On-link        10.128.0.3    266
===========================================================================
Persistent Routes:
  None

以下是运行Windows Server 2012的RRAS服务器的路由表.如上所述,此服务器也位于NAT之后.它只有一个NIC.它的私有IP地址是172.16.1.32,位于/ 23(它本身是一个更大的/ 17网络的一部分;我认为忽略/ 23外部/ 17的部分是公平的,因为/ 23上的其他机器VPN客户端无法到达或达不到.

VPN虚拟适配器具有自己的地址10.128.0.1,该地址在客户端第一次连接时自动分配.您看到的10.128.0.1(自身)和10.128.0.2(到其唯一的客户端)的路由也会在此时自动添加.没有路由手动添加到VPN服务器.

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       172.16.0.1      172.16.1.32     10
       10.128.0.1  255.255.255.255         On-link        10.128.0.1    286
       10.128.0.2  255.255.255.255       10.128.0.2       10.128.0.1     31
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  169.254.169.250  255.255.255.255       172.16.0.1      172.16.1.32     10
  169.254.169.251  255.255.255.255       172.16.0.1      172.16.1.32     10
  169.254.169.254  255.255.255.255       172.16.0.1      172.16.1.32     10
       172.16.0.0    255.255.254.0         On-link       172.16.1.32     11
      172.16.1.32  255.255.255.255         On-link       172.16.1.32    266
     172.16.1.255  255.255.255.255         On-link       172.16.1.32    266
       172.16.2.0    255.255.254.0      172.168.0.1      172.16.1.32     11
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link       172.16.1.32    266
        224.0.0.0        240.0.0.0         On-link        10.128.0.1    286
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link       172.16.1.32    266
  255.255.255.255  255.255.255.255         On-link        10.128.0.1    286
===========================================================================
Persistent Routes:
  None

以下是服务器专用网络上另一台机器的路由表,也运行Server 2012.它有一个NIC,其私有IP地址为172.16.1.177 – 这意味着它与VPN服务器位于同一/ 23上. (请注意,10.128.0.0/20的路由是在由亚马逊控制的网关上设置的,因此您不会在此处看到它.我已经向亚马逊添加了正确的路由,这可以通过Wireshark在VPN服务器看到数据包.)

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       172.16.0.1     172.16.1.177     10
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  169.254.169.250  255.255.255.255       172.16.0.1     172.16.1.177     10
  169.254.169.251  255.255.255.255       172.16.0.1     172.16.1.177     10
  169.254.169.254  255.255.255.255       172.16.0.1     172.16.1.177     10
       172.16.0.0    255.255.254.0         On-link      172.16.1.177    266
     172.16.1.177  255.255.255.255         On-link      172.16.1.177    266
     172.16.1.255  255.255.255.255         On-link      172.16.1.177    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      172.16.1.177    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      172.16.1.177    266
===========================================================================
Persistent Routes:
  None

以下是亚马逊控制台中的路线.我确实认为这些是正确的 – 流量回到VPN服务器,毕竟只是消失在它内部 – 但是如果有人想看到它们,这里它们就是. (亚马逊做的事情有点奇怪.eni-2f3e8244 / i-77e26440指的是VPN服务器上的NIC,而igw-d4bc27bc指的是我所有实例用来与互联网通信的亚马逊控制的互联网NAT /网关. )

10.128.0.0/20   eni-2f3e8244 / i-77e26440   
172.16.0.0/17   local   
0.0.0.0/0       igw-d4bc27bc
最佳答案
如果您在服务器上添加静态路由,告诉他们为了达到10.128.0.0/20,他们必须通过VPN的服务器LAN地址,该怎么办?

route add 10.128.0.0 mask 255.255.240.0 a.b.c.d

用VPN服务器的LAN地址替换a.b.c.d.

这将至少排除亚马逊路由的问题.

转载注明原文:Windows VPN服务器可以与VPN客户端通信,但不会将数据包从其本地网络发送到VPN客户端 - 代码日志