我正在尝试在 AWS VPN 上禁用 IPv6 泄漏,目前它仅支持 IPv4。我查看了OpenVPN 文档和AWS 文档但我不明白这到底是干什么的。这条线在做什么ifconfig-ipv6 fd15:53b6:dead::2/64 fd15:53b6:dead::1
?为什么我不能只使用标志--block-ipv6
?
--block-ipv6
On the client, instead of sending IPv6 packets over the VPN tunnel, all IPv6 packets are
answered with an ICMPv6 no route host message. On the server, all IPv6 packets from
clients are answered with an ICMPv6 no route to host message. This options is intended for
cases when IPv6 should be blocked and other options are not available. --block-ipv6 will
use the remote IPv6 as source address of the ICMPv6 packets if set, otherwise will use
fe80::7 as source address.
For this option to make sense you actually have to route traffic to the tun interface. The
following example config block would send all IPv6 traffic to OpenVPN and answer all requests
with no route to host, effectively blocking IPv6 (to avoid IPv6 connections from
dual-stacked clients leaking around IPv4-only VPN services).
Client config
--ifconfig-ipv6 fd15:53b6:dead::2/64 fd15:53b6:dead::1
--redirect-gateway ipv6
--block-ipv6
Server config
Push a "valid" ipv6 config to the client and block on the server
--push "ifconfig-ipv6 fd15:53b6:dead::2/64 fd15:53b6:dead::1"
--push "redirect-gateway ipv6"
--block-ipv6
答案1
AWS 复制了有关 block-ipv6 的手册页,以说明当您不希望 IPv6 流量超出隧道范围(泄漏)但网络尚未准备好 IPv6 时的情况。这显然目前适用于 AWS Client VPN。
该手册进一步解释说,这并不总是必要的:
注意:此选项不会影响从服务器向客户端发送的流量(无论是在服务器端还是在客户端)。这被视为没有必要,因为最容易避免此类流量的方法是不在服务器 tun 上配置 IPv6,或设置服务器端防火墙规则。
换句话说,可以跳过在 VPN 中配置 IPv6。然后客户端理论上可以从其他接口获取 IPv6 互联网。泄漏可能是也可能不是你想要的。
需要一个 IP 地址来路由系统的 IPv6 流量,并接收 ICMP 不可达消息。
关于示例地址,fd00::/8 是唯一的本地范围,无法通过互联网路由。您应该生成 40 个随机位并组成自己的前缀。这是专为您准备的 /48。 (OpenVPN 在他们的示例中插入了一个巧妙的十六进制单词“dead”,但这并不特殊。)
无论你实施什么,在验证测试期间都要进行数据包捕获。分析并检查你是否了解正在发生的事情。