Google-Cloud-Platform

GCP 防火牆和 IPv6 地址支持?

  • July 26, 2021

儘管 GCP 文件聲稱在製定防火牆規則 ( https://cloud.google.com/vpc/docs/firewalls ) 時支持 IPv6 地址,但我似乎無法實現。從這個文件:

  • 防火牆規則支持 IPv4 連接。啟用了 IPv6 的 VPC 網路也支持 IPv6 連接。按地址指定入口規則的源或出口規則的目標時,您可以使用 CIDR 表示法指定 IPv4 或 IPv6 地址或塊。
  • 每個防火牆規則都可以包含 IPv4 或 IPv6 範圍,但不能同時包含兩者。

但是,當我嘗試使用 IPv6 地址創建防火牆規則時,我收到一個錯誤,它不會讓我保存它,如下面的螢幕截圖所示。

在此處輸入圖像描述

上面的範例顯示了我嘗試過的兩個範例,但我已經嘗試過使用單個地址,有和沒有 CIDR 塊,等等。他們都被拒絕了。我已確認 VPC 子網已啟用 IPv6。

我錯過了什麼嗎?

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)$

引用自:https://serverfault.com/questions/1070695