我有一个防火墙,只允许特定的 IPv4 客户端访问。
不幸的是,Google 网络不允许网络内使用 ipv6 IP 地址。
有没有办法解决这个问题,以便我也可以允许 IPv6 地址?
虽然不太理想,但我可以完全禁用防火墙。
答案1
所有 VPC 网络均使用 IPv4 协议。Compute Engine 网络目前不支持 IPv6。不过,Google 是 IPv6 的主要倡导者,它是未来的一个重要方向。
换句话说,Compute Engine 不支持 IPv6。全局负载均衡器支持与客户端的 IPv6 连接,但它们将仅使用 IPv4 与您的 Compute Engine 资源进行通信。
答案2
这就是相关文件说:
防火墙规则
您必须创建一条防火墙规则,允许来自 130.211.0.0/22 和 35.191.0.0/16 的流量到达您的实例。此规则允许来自负载均衡器和健康检查器的流量。该规则必须允许全局转发规则配置为使用的端口上的流量,并且您的健康检查器应配置为使用同一端口。如果您的健康检查器使用不同的端口,则必须为该端口创建另一条防火墙规则。
请注意,防火墙规则在实例级别阻止和允许流量,而不是在网络边缘阻止和允许流量。它们无法阻止流量到达负载均衡器本身。
从互联网到 HTTP/HTTPS 负载均衡器的连接可以是 IPv4 或 IPv6(假设您已将每个系列的地址分配给负载均衡器)。从负载均衡器到虚拟机的连接目前仅为 IPv4,并将源自文档中提到的范围之一。客户端 IP 地址在 HTTP 标头中发送,可以是 IPv4 或 IPv6。
防火墙只能看到负载均衡器的 IPv4 地址,而看不到客户端的 IPv4 地址。如果您的虚拟机具有外部 IP 地址,并且您不想让客户端绕过负载均衡器,则可以使用防火墙规则仅允许来自为负载均衡器和健康检查分配的 IP 范围的 HTTP/HTTPS 连接。
答案3
Google Cloud 现在支持虚拟机实例上的外部 ipv6。每个实例都可以获得一个 /96 外部 IP 范围,可用于访问互联网(无需 NAT)或用于虚拟机到虚拟机的流量。
目前(2021 年 7 月)仅支持有限的地区:
- 亚洲-东部1
- 亚洲南部1
- 欧洲-西部2
- 美国西部2
详细内容请参阅
https://cloud.google.com/compute/docs/ip-addresses/configure-ipv6-address
https://cloud.google.com/vpc/docs/vpc#ipv6-addresses
VPC 防火墙规则现在也支持 IPv6: https://cloud.google.com/vpc/docs/firewalls#specifications
- 防火墙规则支持 IPv4 连接。启用 IPv6 的 VPC 网络中也支持 IPv6 连接。通过地址指定入站规则的源或出站规则的目标时,您可以以 CIDR 表示法指定 IPv4 或 IPv6 地址或块。
- 每个防火墙规则可以包含 IPv4 或 IPv6 范围,但不能同时包含两者。