我的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
route add 10.128.0.0 mask 255.255.240.0 a.b.c.d
用VPN服务器的LAN地址替换a.b.c.d.
这将至少排除亚马逊路由的问题.