GCP 防火墙和 IPv6 地址支持吗?

GCP 防火墙和 IPv6 地址支持吗?

尽管 GCP 文档声称在制定防火墙规则时支持 IPv6 地址(https://cloud.google.com/vpc/docs/firewalls)我似乎无法实现它。来自此文档:

  • 防火墙规则支持 IPv4 连接。启用 IPv6 的 VPC 网络中也支持 IPv6 连接。通过地址指定入站规则的源或出站规则的目标时,您可以以 CIDR 表示法指定 IPv4 或 IPv6 地址或块。
  • 每个防火墙规则可以包含 IPv4 或 IPv6 范围,但不能同时包含两者。

但是,当我尝试使用 IPv6 地址创建防火墙规则时,出现错误,并且不允许我保存它,如下面的屏幕截图所示。

在此处输入图片描述

上面的示例显示了我尝试过的两个示例,但我尝试过使用单个地址、有和没有 CIDR 块等。它们都被拒绝了。我已确认 VPC 子网已启用 IPv6。

我是否遗漏了什么?

答案1

GUI 对我来说也不起作用,但我能够使用等效的 gcloud 命令成功创建防火墙规则。

为了测试,我创建了一个新的 VPC、新的子网和新的防火墙规则:

error@cloudshell:~ (strange-passage-193919)$ gcloud compute networks create ipv6test --project=strange-passage-193919 --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional
Created [https://www.googleapis.com/compute/v1/projects/strange-passage-193919/global/networks/ipv6test].
NAME      SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE  GATEWAY_IPV4
ipv6test  CUSTOM       REGIONAL

Instances on this network will not be reachable until firewall rules
are created. As an example, you can allow all internal traffic between
instances as well as SSH, RDP, and ICMP by running:

$ gcloud compute firewall-rules create <FIREWALL_NAME> --network ipv6test --allow tcp,udp,icmp --source-ranges <IP_RANGE>
$ gcloud compute firewall-rules create <FIREWALL_NAME> --network ipv6test --allow tcp:22,tcp:3389,icmp

error@cloudshell:~ (strange-passage-193919)$ gcloud compute networks subnets create ipv6test --project=strange-passage-193919 --range=10.16.0.0/20 --network=ipv6test --region=us-west2
Created [https://www.googleapis.com/compute/v1/projects/strange-passage-193919/regions/us-west2/subnetworks/ipv6test].
NAME      REGION    NETWORK   RANGE         STACK_TYPE  IPV6_ACCESS_TYPE  IPV6_CIDR_RANGE  EXTERNAL_IPV6_CIDR_RANGE
ipv6test  us-west2  ipv6test  10.16.0.0/20  IPV4_ONLY
error@cloudshell:~ (strange-passage-193919)$ gcloud compute networks subnets update ipv6test --project=strange-passage-193919 --stack-type=IPV4_IPV6 --ipv6-access-type=EXTERNAL --region=us-west2
Updated [https://www.googleapis.com/compute/v1/projects/strange-passage-193919/regions/us-west2/subnetworks/ipv6test].
error@cloudshell:~ (strange-passage-193919)$ gcloud compute --project=strange-passage-193919 firewall-rules create ruletest --direction=INGRESS --priority=1000 --network=ipv6test --action=ALLOW --rules=tcp:22 --source-ranges=2001:db8::/32
Creating firewall...⠹Created [https://www.googleapis.com/compute/v1/projects/strange-passage-193919/global/firewalls/ruletest].
Creating firewall...done.
NAME      NETWORK   DIRECTION  PRIORITY  ALLOW   DENY  DISABLED
ruletest  ipv6test  INGRESS    1000      tcp:22        False
error@cloudshell:~ (strange-passage-193919)$

相关内容