
GCP 문서에서는 방화벽 규칙을 만들 때 IPv6 주소가 지원된다고 주장하지만(https://cloud.google.com/vpc/docs/firewalls) 저는 그렇게 할 수 없을 것 같습니다. 이 문서에서:
- 방화벽 규칙은 IPv4 연결을 지원합니다. IPv6 연결은 IPv6가 사용 설정된 VPC 네트워크에서도 지원됩니다. 주소별로 수신 규칙의 소스나 송신 규칙의 대상을 지정할 때 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)$