跳到主要内容
MyIPKit— 读懂你的网络。

IPv6 for people who already know IPv4

The six differences that actually change how you troubleshoot — no NAT, several addresses per device, /64 everywhere, and why blocking ICMP breaks it.

Updated 2026年9月25日3 min read

Information:

Shown in English

This guide has not been translated into your language yet, so you are reading the English original. The rest of the site stays in the language you chose.
Warning:

Before you run anything

These guides are reference material, not instructions for your particular network. Run commands only against networks you own or have explicit permission to examine — in many countries probing a network you are not authorised to touch is a criminal offence regardless of intent. Everything here is provided without warranty: you are responsible for what you run and for its effect on your systems.

If you are comfortable with IPv4, most of IPv6 will feel familiar: addresses, prefixes, routes, DNS. What follows are the differences that actually change how you work, and the ones that most often explain “it works on IPv4 but not on IPv6”.

1. The addresses are long, and there is a shorthand

An IPv6 address is 128 bits, written as eight groups of four hexadecimal digits. Leading zeros in a group can be dropped, and one run of all-zero groups can be replaced by :::

2001:0db8:0000:0000:0000:0000:0000:0001
2001:db8::1

:: may appear only once, or it would be ambiguous. The IPv6 calculator converts between the two forms and splits any address into its parts.

2. There is usually no NAT

IPv4 ran out of addresses, so home networks hide behind one public address. IPv6 has enough for every device to have its own globally routable one. That changes two things:

  • The address a website sees for you is your device’s own, not your router’s.
  • NAT used to block unsolicited inbound connections as a side effect. Under IPv6 that job belongs to the router’s firewall, which must be doing it deliberately. Almost every consumer router does, by default — but it is worth knowing that is what is protecting you.

3. Every device has several addresses

It is normal for one interface to hold:

  • a link-local address starting fe80::, used only on the local network and always present;
  • one or more global addresses, reachable from the internet;
  • temporary addresses that change regularly and are used for outgoing connections, so websites cannot follow one device over time.

Seeing four or five IPv6 addresses on one machine is not a misconfiguration.

4. /64 is the size of a network

Every LAN is a /64. That is not a recommendation: automatic address configuration (SLAAC) needs a 64-bit interface ID and does not work on anything smaller. Providers hand homes a larger block — commonly a /56 or /48 — so the router can carve it into many /64s.

This makes the maths easier than IPv4, not harder. You stop counting hosts and start counting networks.

5. ARP is gone, and ICMPv6 is not optional

IPv6 finds neighbours and routers with Neighbor Discovery, which runs over ICMPv6. It also relies on ICMPv6 to learn that a path needs smaller packets.

So the old habit of blocking all ICMP breaks IPv6 outright, not just ping. If IPv6 connects to some sites and hangs on others, a firewall dropping ICMPv6 “packet too big” messages is one of the first things to rule out.

6. Browsers try both, and hide the evidence

When a site has both an IPv4 and an IPv6 address, browsers try IPv6 and fall back to IPv4 within a fraction of a second if it does not answer. That makes a broken IPv6 path easy to miss — pages still load, perhaps a little slowly. The IPv4 / IPv6 test checks each separately, so you can see whether IPv6 genuinely works rather than whether the browser coped.

The commands, with -6

Task macOS Linux Windows
Addresses ifconfig | grep inet6 ip -6 addr ipconfig
Routes netstat -rn -f inet6 ip -6 route route print -6
Ping ping6 example.com ping -6 example.com ping -6 example.com
Trace a path traceroute6 example.com traceroute -6 example.com tracert -6 example.com

If ping -6 to a well-known host fails while the IPv4 ping succeeds, you do not have working IPv6 on that network, whatever the address list says.

All guides