VPC firewall rule for IPv6 - google-cloud-platform

It seems that the firewall rules for the current VPN setting doesn't allowing entering IPv6 address at all, ::/0 etc are not implemented.
Is there a way to work around this? It's interesting if that's the case that VPC allowing creating IPv6 network but not allowing firewall to allow incoming.

IPv6 is not supported: https://cloud.google.com/vpc/docs/vpc#specifications
VPC networks only support IPv4 unicast traffic. They do not support broadcast, multicast, or IPv6 traffic within the network: VMs in the VPC network can only send to IPv4 destinations and only receive traffic from IPv4 sources. It is possible to create an IPv6 address for a global load balancer, however.

Google cloud now supports external ipv6 on VM instances. Each instance can get a /96 external ip range and it can be used to access internet (without NAT) or be used for VM to VM traffic.
At this moment (July 2021) it's only supported limited regions:
asia-east1
asia-south1
europe-west2
us-west2
See more detailed in
https://cloud.google.com/compute/docs/ip-addresses/configure-ipv6-address
https://cloud.google.com/vpc/docs/vpc#ipv6-addresses
VPC firewall rules also supports IPv6 now:
https://cloud.google.com/vpc/docs/firewalls#specifications
Firewall rules support IPv4 connections. IPv6 connections are also supported in VPC networks that have IPv6 enabled. When specifying a source for an ingress rule or a destination for an egress rule by address, you can specify IPv4 or IPv6 addresses or blocks in CIDR notation.
Each firewall rule can contain either IPv4 or IPv6 ranges, but not both.

Related

How can I ping IPv6 from a Google cloud instance

I have a Google cloud instance. I do not need IPv6 but I need to be able to connect to public IPv6. I have added a firewall rule which allows ::/0 for outgoing traffic. Now When I try to ping ipv6.google.com, it gives response- network is unreachable.
What do I need to do to be able to ping any IPv6 like ipv6.google.com.
Thank you.
Google cloud now supports external ipv6 on VM instances. Each instance can get a /96 external ip range and it can be used to access internet (without NAT) or be used for VM to VM traffic.
At this moment (July 2021) it's only supported limited regions:
asia-east1
asia-south1
europe-west2
us-west2
See more detailed in
https://cloud.google.com/compute/docs/ip-addresses/configure-ipv6-address https://cloud.google.com/vpc/docs/vpc#ipv6-addresses
Note that connecting to Google APIs and services using external IPv6 addresses is currently not supported and will result in a destination unreachable ICMP response. Most applications will fallback to IPv4 transparently. So don't be surprise if you cannot ping ipv6.google.com. You should able to ping other ipv6 websites.

I cannot connect by ipv6 from aws ec2 after all the essential steps (I learned from the internet)

After referencing many of the websites teaching me how to use ipv6 from AWS EC2 instances, I find it not working. Why?
From AWS EC2 Console,
it seems that my only instance has its ipv6 address.
And I've opened the ICMP IPV6, together with other necessary ipv6 ports, with source identified both 0.0.0.0/0, ::/0.
I've configured the VPC and subnet associated with that instance so they have ipv6 CIDR, and will automatically dispatch ipv6 addresses.
I've also configured that the router associated with the subnet, to have both 0.0.0.0/0, ::/0 paired with igw-xxx (Internet gateway? I guess)
After all these operations, I still can't find any correct records when in shell, typing
ip -6 addr which I believe there should be some v6 address not starting with fe80:, but actually not.
Is there anything else I should do?
Egress Only Internet Gateway(EOIG) is needed to access IPv6 websites from the EC2 instances in private subnet.
In addition, NAT Gateway(NATG) is needed to access IPv4 websites from the EC2 instances in private subnet.
EOIG (Only IPv6 outgoing traffic)
NATG (Only IPv4 outgoing traffic)
You can find EOIG on the left pane which NAT Gateway also is. Then, make one EOIG then set it to the route table associated with private subnet.

Does gcp allow vm to have internal or external IPv6 address to vm instances

When I log onto vm in shell. I can find addresses of vm to have both ipv4 and ipv6 addresses. But I am unable to use IPv6 address within the same network to ping onto the vm. I had a question that does GCP block these
Google cloud now supports external ipv6 on VM instances. Each instance can get a /96 external ip range and it can be used to access internet (without NAT) or be used for VM to VM traffic.
At this moment (July 2021) it's only supported limited regions:
asia-east1
asia-south1
europe-west2
us-west2
See more detailed in
https://cloud.google.com/compute/docs/ip-addresses/configure-ipv6-address
https://cloud.google.com/vpc/docs/vpc#ipv6-addresses
Google Cloud Platform allows users to connect to Global Load Balancer (this has external IP) using IPv6 but VPC Network DO NOT support IPv6 .
This article explains how GCP Global Load balancer allows IPv6 connection and then proxies to VM instances using IPv4.
Note from the GCP Documentation
VPC networks only support IPv4 unicast traffic. They do not support broadcast, multicast, or IPv6 traffic within the network; VMs in the VPC network can only send to IPv4 destinations and only receive traffic from IPv4 sources. However, it is possible to create an IPv6 address for a global load balancer.
So, you can connect to GCP Instances using IPv6 over public internet (external IP) and VM instances DO Not have internal IPv6 IP.

AWS EC2: What is difference between 0.0.0.0/0 Vs ::/0

Part of EC2 setup, in the configuration of Security Group, I am trying to add the rule for HTTP/HTTPS for allowing internet traffic. Isn't enough to add CIDR notation 0.0.0.0/0? Do we need both 0.0.0.0/0, ::/0?
:: is a shorthand for the IPv6 address of 0:0:0:0:0:0:0:0. You need it allow IPv6 communication. For more information see Getting Started with IPv6 for Amazon VPC
.

AWS: What does 0.0.0.0/0 and ::/0 mean?

In security group, every inbound port I add, two rules are added, one for 0.0.0.0/0, the other ::/0. What do they each mean?
The default route in Internet Protocol Version 4 (IPv4) is designated
as the zero-address 0.0.0.0/0 in CIDR notation, often called the
quad-zero route. The subnet mask is given as /0, which effectively
specifies all networks, and is the shortest match possible.
The other would be for IPv6
Source Default Route
AWS Documentation
Security Groups for Your VPC
A security group acts as a virtual firewall for your instance to
control inbound and outbound traffic. When you launch an instance in a
VPC, you can assign the instance to up to five security groups.
Security groups act at the instance level, not the subnet level.
Therefore, each instance in a subnet in your VPC could be assigned to
a different set of security groups. If you don't specify a particular
group at launch time, the instance is automatically assigned to the
default security group for the VPC.
For each security group, you add rules that control the inbound
traffic to instances, and a separate set of rules that control the
outbound traffic.
Default Security Group for Your VPC
Your VPC automatically comes with a default security group. Each EC2
instance that you launch in your VPC is automatically associated with
the default security group if you don't specify a different security
group when you launch the instance.
The following table describes the default rules for a default security
group.
Inbound
Source The security group ID (sg-xxxxxxxx)
Protocol All
Port Range All
Comments Allow inbound traffic from instances assigned to the same security group.
Outbound
Destination 0.0.0.0/0
Protocol All
Port Range All
Comments Allow all outbound IPv4 traffic.
Destination ::/0
Protocol All
Port Range All
Comments Allow all outbound IPv6 traffic. This rule is added by default if you create a VPC with an IPv6 CIDR block or if you associate an IPv6 CIDR block with your existing VPC.
Recommended Network ACL Rules for Your VPC
0.0.0.0/0,::/0 - Means source can be any ip address, means from any system request is accepted, 0.0.0.0/0 represents ipv4 and ::/0 represents ipv6. To know CIDR (Classless Inter-Domain Routing) representation see this video - https://www.youtube.com/watch?v=1xsmbe5s6j0
0.0.0.0/0 refers to all IPv4 addresses and ::/0 refers All IPv6 addresses.
0.0.0.0 means that any IP either from a local system or from anywhere on the internet can access.
It is everything else other than what is already specified in routing table.
When we add /0 is for the IPv4 whereas ::/0 is for IPv6 is known as CIDR
Coming back to your AWS part, when you define 0.0.0.0/0 or ::/0 that means all the IPv4 and IPv6 ranges respectively can access your AWS service(s).
Ranges for IPv4 is from 0.0.0.0 to 255.255.255.255 where as IPv6 have 2^128 addresses.
An IP address is built by 32 bits, the slash tells you how many bits are used to identify the network section, the rest of the bits are used for the host. For example, 255.0.0.0/8 tells you 8 bits are for the network and 24 are for the host, so you migth have 16777214 possible IPs comming from that 255 network.
In case of the notation 0.0.0.0/0, it means you dont use any identifier for the network, therefore you have the whole 32 bits for the IP, meanining ALL possible IPs, which means all requests are allowed.