
Хотя в документации GCP утверждается, что адреса IPv6 поддерживаются при создании правил брандмауэра (https://cloud.google.com/vpc/docs/firewalls) Кажется, у меня не получается это сделать. Из этого документа:
- Правила брандмауэра поддерживают соединения IPv4. Соединения IPv6 также поддерживаются в сетях VPC, в которых включен IPv6. При указании источника для правила входящего трафика или назначения для правила исходящего трафика по адресу можно указать адреса или блоки IPv4 или IPv6 в нотации CIDR.
- Каждое правило брандмауэра может содержать либо диапазоны IPv4, либо диапазоны IPv6, но не оба одновременно.
Однако при попытке создать правило брандмауэра с адресом IPv6 возникает ошибка, и мне не удается его сохранить, как показано на снимке экрана ниже.
В примере выше показаны два примера, которые я пробовал, но я пробовал с отдельными адресами, с блоками CIDR и без них и т. д. И все они отклонены. Я подтвердил, что подсеть VPC имеет включенный IPv6.
Я что-то пропустил?
решение1
У меня графический интерфейс тоже не работает, но мне удалось успешно создать правила брандмауэра с помощью эквивалентной команды 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)$