Ping over IPv6
Reachability test for IPv6 hosts: send an ICMPv6 Echo Request, wait for an Echo Reply, measure the round trip.
TL;DR
Ping6 sends ICMPv6 Echo Requests to a target IPv6 address and times the reply. It confirms whether an IPv6 host is online and reachable, and gives you a baseline latency figure between you and that host.
What it is
Ping over IPv6 tests whether a host with an IPv6 address (a AAAA record, in DNS terms) is reachable and how long round trips take.
It runs on ICMPv6, the diagnostic and control protocol for IPv6. ICMPv6 is not optional for IPv6 networks: core functions like Neighbour Discovery, address autoconfiguration, and Path MTU Discovery all depend on it. Operators who blanket-block ICMPv6 break their own networks, so ping6 tends to be more reliable than ICMP-based tests on IPv4.
How it works
A ping6 exchange uses two ICMPv6 message types:
- Echo Request (Type 128) — the probe you send
- Echo Reply (Type 129) — the answer the target sends back
Each packet carries an identifier, a sequence number, and a payload that the target must echo back verbatim. The IPv6 header carries a Hop Limit value (the IPv6 equivalent of TTL) that decrements at every router.
The flow:
- Your client builds an ICMPv6 Echo Request, sets a sequence number, starts a timer
- The packet traverses routers, each decrementing Hop Limit by 1
- The target receives it, swaps source and destination, changes type from 128 to 129, recomputes the checksum (which on ICMPv6 covers the IPv6 pseudo-header), sends it back
- Your client matches the reply by identifier and sequence, stops the timer
- RTT equals the timer value, typically reported in milliseconds
When to use it
- Test reachability of a host with a AAAA record
- Verify IPv6 connectivity from your network or from specific regions
- Diagnose dual-stack issues where IPv4 works but IPv6 does not
- Confirm IPv6 routing changes have propagated
- Validate that an AAAA record points somewhere that actually answers
Running it on networktoolkit.io
Select ping with ipv6 as the parameter, enter a hostname or IPv6 address, and the test runs from workers that have IPv6 connectivity. Sample output per worker:
PING6 example.com (2606:2800:220:1:248:1893:25c8:1946): 56 data bytes
64 bytes from 2606:2800:220:1:248:1893:25c8:1946: icmp_seq=0 hlim=55 time=14.2 ms
64 bytes from 2606:2800:220:1:248:1893:25c8:1946: icmp_seq=1 hlim=55 time=14.0 ms
64 bytes from 2606:2800:220:1:248:1893:25c8:1946: icmp_seq=2 hlim=55 time=14.1 ms
64 bytes from 2606:2800:220:1:248:1893:25c8:1946: icmp_seq=3 hlim=55 time=14.3 ms
--- example.com ping6 statistics ---
4 packets transmitted, 4 received, 0% packet loss
round-trip min/avg/max/stddev = 14.0/14.15/14.3/0.11 ms
Reading the results
| Field | Meaning |
|---|---|
2606:2800:... | Target IPv6 address, eight 16-bit groups separated by colons |
hlim=55 | Hop Limit remaining when the reply arrived |
icmp_seq | Sequence number; gaps indicate loss |
time=14.2 ms | Round-trip time |
0% packet loss | Reliability of the path |
stddev | Jitter; high values suggest an unstable path |
Common scenarios
| Outcome | What it likely means |
|---|---|
| All replies, healthy RTT | Host is up, IPv6 path is healthy |
| 100% loss, target has a AAAA record | IPv6 routing issue, broken AAAA, or host listens on IPv4 only |
No route to host | Your worker, or a router on the path, has no IPv6 route to the target |
Address family not supported | Target has no AAAA record |
| Higher RTT than expected | IPv6 path is longer or less optimised than the IPv4 path; common in legacy networks |
| Partial loss | Congestion, flaky link, or ICMPv6 rate limiting on the target |
Limitations & gotchas
- A successful ping6 does not prove a service is listening on IPv6. Many sites have AAAA records pointing to load balancers that only forward IPv4 to the backend.
- Some networks have partial IPv6 deployment. Workers in some regions may have no IPv6 at all. Compare across worker locations to see if the issue is local or global.
- ICMPv6 covers far more than Echo. Rate limiting on a target may apply to all ICMPv6, including the Neighbour Discovery the network itself depends on.
- Link-local addresses (
fe80::/10) cannot be pinged across the internet; they only work on the local segment and require a zone identifier. - IPv6 has no concept of broadcast. Multicast addresses replace it, and pinging multicast groups behaves differently from unicast.
Security & privacy notes
IPv6 addresses are 128 bits wide, so address-space scanning is impractical. A successful ping6 confirms an address is in use, which is itself useful information. RFC 4890 documents which ICMPv6 types are safe to filter at a firewall and which must be permitted for the protocol to function. Blanket-blocking ICMPv6 is a common misconfiguration that causes hard-to-diagnose breakage.
Standards & references
- RFC 4443 — Internet Control Message Protocol (ICMPv6) for IPv6
- RFC 8200 — Internet Protocol, Version 6 (IPv6) Specification
- RFC 4890 — Recommendations for Filtering ICMPv6 Messages in Firewalls
- IANA ICMPv6 Parameters
FAQ
What is ICMPv6 and how does it differ from ICMP?
ICMPv6 is the IPv6 version of ICMP. It uses different message type numbers (128 and 129 for Echo Request and Reply, versus 8 and 0 on IPv4), includes the IPv6 pseudo-header in its checksum, and carries far more responsibility because IPv6 features like Neighbour Discovery and address autoconfiguration are built on it.
Why does ping6 sometimes work when ping fails?
The host may have IPv6 connectivity that bypasses an IPv4-only firewall, or vice versa. Always test both when troubleshooting dual-stack hosts.
My site has a AAAA record but ping6 returns no route. Why?
Either your network has no IPv6 path to the target, the target's IPv6 routing is broken upstream, or the AAAA record points to an address that is not actually live.
Can I ping a link-local IPv6 address from the internet?
No. Link-local addresses (fe80::/10) are only valid on the local network segment and require a zone identifier such as fe80::1%eth0 to use locally.
Is IPv6 ping faster than IPv4 ping?
Not inherently. RTT depends on the path. Sometimes IPv6 is faster because of newer, less congested paths; sometimes slower because of suboptimal routing through tunnels or fewer peering points.