How can I ping IPv6 from a Google cloud instance - google-cloud-platform

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.

Related

How to assign IPV6 on Google Cloud VM instances

Good day,
I am new to google cloud plateform please help.
How can i assgin ipv6 for my instance on google cloud, i have created an ipv6 but is says not in use just as in picture below.
Based on the documemtation shared by #Ferregina Pelona.
You can configure IPv6 addresses on a virtual machine instance (VM) if the subnet that the VM is connected to has an IPv6 range configured. First thing to do, make sure that there is a IPv6 configured into your network.
Though, Google Cloud Platform allows users to connect to Global Load Balancer (this has external IP) using IPv6 but VPC Network DO NOT support IPv6.
Check out this documentation on GCP's Global Load Balancer.

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.

VPC firewall rule for IPv6

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.

is there a way to open ICMP on an Azure Pipeline vm?

is there a way to open ICMP on an Azure Pipeline vm? my CI unit tests are expected to send ping requests to the google DNS (8.8.8.8)
According to your description, you are trying to access one external IP through Azure VM endpoint with Ping. This does not allowed.
Please due to this official blog which written by our Azure VM team engineer: HOW TO ALLOW PING FUNCTIONALITY TO WINDOWS AZURE MACHINES?
The Ping functionality on Windows Azure VM is blocked by default for
security reasons.
As we all know, the ICMP protocol which used by Ping can measure the latency of the connection between a local machine and a remote machine. Any connections exceeding a default latency are deemed to be unavailable. See the pic shown below, the only possible connection to that Azure virtual machine is via the Internet. Any internet traffic which trying to enter the virtual network must pass through the load balancer, and this balancer is filtering ICMP traffic, allow UDP and TCP traffic.
By default, Azure denies and blocks all public inbound traffic to an
Azure virtual machine, includes ICMP traffic. This is a good thing
because it can improve security by reducing the attack surface.
Note: This restrict only apply to the network traffic which going through the external IP through configured endpoints. But if the network traffic occurred between internal IPs of VMs which in the same virtual network or in the same cloud service, ICMP would be allowed.
This restrict does not limited permanently. We can set firefall or azure security group to allow this. But, unfortunately, for Azure Devops Pipeline, the hosted agent is using the VM DS2_V2 and DS3_V2, which are all could not be configured\modified with firefall and security group by external users. If build\release with private agent, ICMP will not be limit. You can set a private agent, and execute ping test in it.
(Sometimes, can use VPN or ExpressRoute to skip the load balancer filter and limit. But I don't recommend to use this way)
Since Ping is a very convenient and critical tool for troubleshooting connectivity, we are reviewing and considering to expand this feature in Azure VM. There has a such suggestion ticket raised in our uservoice forum: Enable ICMP traffic to Azure VMs over the Internet. You can vote for it as well to push it faster into the development queue.

How to limit Google Cloud VM Access to wifi domain

I'm trying to limit ssh access to a google cloud vm instance by using the firewall in "VPC Network". I only want to be able to access the vm when I'm on my university's wifi. I've added the DNS server IP addresses (listed here: https://accc.uic.edu/service/uic-net) but once I add them to the firewall I lose access even when I'm on them.
snapshot of firewall impl
*I've even tried using my specific machine IP address with no luck (even though I want the whole network to have access, not just my machine)
Adding the DNS server IP address to a Google VPC firewall rule will not enable access from your network. You need to know your network's public IP CIDR block and use that for the firewall.
From the document link that you provided, your network is using two netblocks: 131.193.0.0/16 and 128.248.0.0/16. Verify that the network you are connecting within uses one of these CIDR blocks. Go to any website that supports "What is my IP" such as https://www.whatismyip.com/
Then create a firewall rule specifying:
Direction of traffic: Ingress
Action on match:
Allow Source filter: IP ranges
Source IP ranges: 131.193.0.0/16, 128.248.0.0/16
Protocols and ports: Allow all