如何在 AWS 上配置 IPv6 隧道?

如何在 AWS 上配置 IPv6 隧道?

我在 AWS VPC 中的双栈 AWS EC2 实例(Ubuntu 18)上运行 openvpn。

连接到 VPN 软件和隧道 IPv6 似乎工作正常;我可以建立 VPN 链接并在 VPN 子网周围 ping6,没有任何问题。

现在我想通过 VPN 路由整个子网,但我无法让 AWS 将数据包路由到实例。

我的 VPC 被分配了 2600:1f18:6655:5c00::/56

我的实例位于 AWS 子网 ...:5c01::/64 中。

我想要将 ...:5c02::/64 路由到 VPN。

  1. sysctl net.ipv6.conf.all.forwarding=1在实例上设置
  2. 实例及其接口上的源/目标地址检查均被禁用
  3. VPC 的网络 ACL 和实例的安全组都允许所有流量
  4. VPC 的主路由表包含指向实例接口的 /56

我可以从实例 ping6 到公共互联网,没有问题。

当我尝试从 VPN 上的地址 ping6 时,tcpdump 显示在实例的 AWS 接口上传输的请求,但没有返回任何答复。

我尝试添加 ...:5c02::/64 作为 AWS 子网,并在主路由表中放置一条将该子网指向实例的路由,但没有效果。

知道哪里出了问题吗?非常感谢!

答案1

我不是 100% 确定,但我开始认为这是不可能的。

AWS 设置了限制(见这里) 每个接口允许的 IP 地址数量(v4 和 v6)。

如果您可以将整个子网路由到一个接口,这将是打破这些限制的简单方法。

答案2

经过大量的研究和努力(因为我对这个主题还不熟悉),我设法创建了类似于您提到的东西(使用tunnelbroker.net提供的IPv6隧道的双栈VPN(IPv6 + IPv4))并按照本教程:

https://encomhat.com/2021/01/wireguard-he-tunnel/

还有一些其他设置需要在 AWS 面板/实例上进行,例如为您的服务器生成 IPv6 CIDR 块、为其分配 IPv6 地址等。我希望它能帮助很多人。我认为下面的内容也可以提供帮助:

https://4sysops.com/archives/assign-an-ipv6-address-to-an-ec2-instance-dual-stack/

相关内容