设置

设置

设置

我在 AWS 上有一个运行良好的 OpenVPN 服务器。我团队中的每个人都可以使用它来访问 AWS 中的任何服务器。

需要

现在我有了一个新的需求。现在 AWS 中的服务器需要能够访问通过 VPN 连接的一台机器(但所有机器都可以)。从 VPN 服务器本身,我可以访问该机器(即路由器)及其网络上可以看到的所有机器。但是,AWS 中的其他服务器都无法访问。

问题

哪里是向(数据中心内的机器)宣传 10.10.10.0/16(远程 VPN 连接站点)的请求应通过我的 VPN 服务器路由的正确位置?

我应该使用 VPN 服务器地址上的哪个接口?

细节

  • AWS VPC CIDR:172.31.0.0/16
    • openvpn.conf:push "route 172.31.0.0 255.255.0.0"
  • OpenVPN 服务器 IP:172.31.17.151
  • OpenVPN 服务器客户端 CIDR:172.141.0.0/17
    • openvpn.conf:server 172.141.0.0 255.255.128.0
  • 要联系的客户端:10.10.10.1
    • openvpn.conf:route 10.10.10.0 255.255.255.0
    • openvpn.conf:push "route 10.10.10.0 255.255.255.0"
    • ccd/通用名称:ifconfig-push 10.10.10.1 10.10.10.2
    • ccd/通用名称:iroute 10.10.10.0 255.255.255.0
  • 要联系的客户端对等点:10.10.10.101

OpenVPN ifconfig

eth0      Link encap:Ethernet  HWaddr 06:52:B7:00:71:F9
          inet addr:172.31.17.151  Bcast:172.31.17.255  Mask:255.255.255.0

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:172.141.0.1  P-t-P:172.141.0.2  Mask:255.255.255.255

OpenVPN iptables:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:1194
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     all  --  172.31.0.0/16        0.0.0.0/0
3    ACCEPT     tcp  --  172.127.0.0/20       172.31.6.110        tcp dpt:22
4    REJECT     tcp  --  172.127.0.0/20       0.0.0.0/0           tcp dpt:22 reject-with icmp-host-prohibited
5    ACCEPT     all  --  172.127.0.0/20       0.0.0.0/0
6    ACCEPT     tcp  --  172.141.0.0/17       172.31.6.110        tcp dpt:22
7    REJECT     tcp  --  172.141.0.0/17       0.0.0.0/0           tcp dpt:22 reject-with icmp-host-prohibited
8    ACCEPT     all  --  172.141.0.0/17       0.0.0.0/0
9    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)

答案1

将 VPN 路由通告给 AWS 中其他机器的正确位置是在子网路由表中。

要做到这一点:

  • VPC > 子网 > [授予访问权限的子网] > 路由表 > [路由表名称]
  • 路线 > 编辑 > 添加另一条路线
    • 目的地:(10.10.10.0/24匹配“路由 10.10.10.0 255.255.255.0”)
    • 目标:(eni-a1b2c3d4与 172.31.17.151 关联的网络接口的 ID)

您还必须更改网络接口的“源/目标检查”。

要做到这一点:

  • EC2 > 网络接口 > [与 VPN 内部 IP 关联的接口]
  • 操作 > 更改来源/目标检查
    • 源/目标检查:已禁用

不起作用的是将路由添加到单台机器。

我期望可以通过以下方式在单台机器上获得相同的效果:

sudo ip addr add 172.31.17.151 dev eth0
sudo ip route add 10.10.10.0/24 via 172.31.17.151 dev eth0

这对我来说不起作用。我很想知道为什么。

相关内容