无法从 VPS 路由回 ipsec 隧道

无法从 VPS 路由回 ipsec 隧道

我正在尝试从我们公司网络边缘的 Draytek 路由器到 Digital Ocean 上的 VPS 建立 ipsec VPN。我已使用以下方式在 VPS 上设置 VPN这个脚本在 Ubuntu 14.04 机器上。我相信该脚本会下载并安装 libreswan,并提示一些基本配置问题等。我对脚本创建的 ipsec.conf 做了一些更改。我的问题是,我可以从路由器 ping 到 VPS,我可以看到到达 VPS 的数据包显示来自路由器的私有 IP 地址,但我尝试过的任何方法都无法让我将数据包路由回路由器。因此,从路由器的角度来看,ping 似乎超时了。

路由器通过其一个接口直接连接到互联网,并配置了本地 IP 地址 10.111.1.1。VPS 有一个直接连接到互联网的接口。

当 VPN 建立时,这是 VPS 上的路由表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         178.62.64.1     0.0.0.0         UG        0 0          0 eth0
10.111.1.1      *               255.255.255.255 UH        0 0          0 eth0
178.62.64.0     *               255.255.192.0   U         0 0          0 eth0

请注意,第二个条目是在建立 VPN 时创建的。

如果我尝试 ping 10.111.1.1,我会得到:

PING 10.111.1.1 (10.111.1.1) 56(84) bytes of data.
From <public IP address - eth0> icmp_seq=1 Destination Host Unreachable

以下是 ipsec verify 的输出:

Verifying installed system and configuration files

Version check and ipsec on-path                         [OK]
Libreswan 3.10 (netkey) on 3.13.0-37-generic
Checking for IPsec support in kernel                    [OK]
 NETKEY: Testing XFRM related proc values
         ICMP default/send_redirects                    [OK]
         ICMP default/accept_redirects                  [OK]
         XFRM larval drop                               [OK]
Pluto ipsec.conf syntax                                 [OK]
Hardware random device                                  [N/A]
Two or more interfaces found, checking IP forwarding    [OK]
Checking rp_filter                                      [OK]
Checking that pluto is running                          [OK]
 Pluto listening for IKE on udp 500                     [OK]
 Pluto listening for IKE/NAT-T on udp 4500              [OK]
 Pluto ipsec.secret syntax                              [OK]
Checking 'ip' command                                   [OK]
Checking 'iptables' command                             [OK]
Checking 'prelink' command does not interfere with FIPSChecking for obsolete ipsec.conf options             [OK]
Opportunistic Encryption                                [DISABLED]

/etc/ipsec.conf 的内容如下(注释掉的行是以前的实验结果,结果相同):

version 2.0

config setup
  dumpdir=/var/run/pluto/
  nat_traversal=yes
  virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.42.0/24
  oe=off
  protostack=netkey
  nhelpers=0
  interfaces=%defaultroute

conn vpnpsk
  connaddrfamily=ipv4
  auto=add
  left=178.62.73.215
#  leftid=178.62.73.215
#  leftsubnet=178.62.73.215/32
  leftsubnet=10.10.10.0/24
#  leftnexthop=%defaultroute
  leftnexthop=%direct
  leftprotoport=17/1701
  rightprotoport=17/%any
#  right=%any
  right=10.111.1.0/24
  rightsourceip=10.111.1.1
  leftsourceip=10.10.10.1
#  rightsubnetwithin=0.0.0.0/0
  forceencaps=yes
  authby=secret
  pfs=no
  type=transport
  auth=esp
  ike=3des-sha1,aes-sha1
  phase2alg=3des-sha1,aes-sha1
  rekey=no
  keyingtries=5
  dpddelay=30
  dpdtimeout=120
  dpdaction=clear

这是路由器路由表的相关部分:

Key: C - connected, S - static, R - RIP, * - default, ~ - private
*            0.0.0.0/ 0.0.0.0          via <public IP address>   WAN2
S~        10.10.10.0/ 255.255.255.0    via 178.62.73.215   VPN-10
C~        10.111.1.0/ 255.255.255.0    directly connected    LAN 
C    <public IP address>/ 255.255.255.224  directly connected    WAN2

如果有人指出我做错的事情我将非常感激。

谢谢。

答案1

好的,我偶然发现了解决方案,方法是删除 leftprotoport=17/1701 和 rightprotoport=17/%any 行。不知道为什么这个方法有效,但是嘿嘿!我现在可以从服务器 ping 到路由器,并且可以 ping 挂在路由器上的设备。我现在遇到了另一个问题,但我会为此发布另一个问题。谢谢大家。

相关内容