<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://www.smithnet.org.uk/wiki/index.php?action=history&amp;feed=atom&amp;title=IPv6</id>
	<title>IPv6 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.smithnet.org.uk/wiki/index.php?action=history&amp;feed=atom&amp;title=IPv6"/>
	<link rel="alternate" type="text/html" href="https://www.smithnet.org.uk/wiki/index.php?title=IPv6&amp;action=history"/>
	<updated>2026-04-10T09:22:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.smithnet.org.uk/wiki/index.php?title=IPv6&amp;diff=237&amp;oldid=prev</id>
		<title>NickPGSmith: 2 revisions imported</title>
		<link rel="alternate" type="text/html" href="https://www.smithnet.org.uk/wiki/index.php?title=IPv6&amp;diff=237&amp;oldid=prev"/>
		<updated>2024-05-08T04:53:36Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:53, 8 May 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>NickPGSmith</name></author>
	</entry>
	<entry>
		<id>https://www.smithnet.org.uk/wiki/index.php?title=IPv6&amp;diff=236&amp;oldid=prev</id>
		<title>NickPGSmith: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.smithnet.org.uk/wiki/index.php?title=IPv6&amp;diff=236&amp;oldid=prev"/>
		<updated>2023-02-17T21:02:09Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:02, 17 February 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>NickPGSmith</name></author>
	</entry>
	<entry>
		<id>https://www.smithnet.org.uk/wiki/index.php?title=IPv6&amp;diff=235&amp;oldid=prev</id>
		<title>NickPGSmith at 08:01, 22 January 2023</title>
		<link rel="alternate" type="text/html" href="https://www.smithnet.org.uk/wiki/index.php?title=IPv6&amp;diff=235&amp;oldid=prev"/>
		<updated>2023-01-22T08:01:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Addresses ==&lt;br /&gt;
&lt;br /&gt;
* 128 bits&lt;br /&gt;
** 8 hextets&lt;br /&gt;
** 4 hex characters (16 bits) per hextet&lt;br /&gt;
** /64 (decimal): 64 bits in the network prefix&lt;br /&gt;
** remaining 64 bits for interface ID&lt;br /&gt;
** no subnet masks&lt;br /&gt;
* Address Compression:&lt;br /&gt;
** Leading zeros can be omitted in a hextet&lt;br /&gt;
** Single instance of continuous zeros represented by ::&lt;br /&gt;
** eg 2001:0eb8:00c1:2200:0001:0000:0000:00331/64 -&amp;gt; 2001:eb8::c1:2200:1::331/64&lt;br /&gt;
&lt;br /&gt;
* Unicast: Communication from one address to another.&lt;br /&gt;
* Multicast: Communication from one address to many. Clients subscribe to specific multicast addresses.&lt;br /&gt;
* Anycast: Distribution is done by router/switch&lt;br /&gt;
&lt;br /&gt;
Unicast Scopes:&lt;br /&gt;
* Global: everything (i.e. the whole internet)&lt;br /&gt;
** Unique local addresses have global scope but are not globally administered&lt;br /&gt;
** eg 2001:2eb8:adc1:54ed:1100:697a:3210:3331/64&lt;br /&gt;
*** 2001:2eb8:adc1:54ed : network&lt;br /&gt;
*** 1100:697a:3210:3331 : interface ID&lt;br /&gt;
* Link Local: will never be routed, valid in one collision domain, i.e. on the same switch)&lt;br /&gt;
** Link local addresses and loopback&lt;br /&gt;
** eg fe80::1100:697a:3210:3331/10&lt;br /&gt;
&lt;br /&gt;
Link-local addresses can be used to reach the neighbouring nodes attached to the same link; they do not need a globally unique address to communicate. Routers will not forward datagram using link-local addresses. IPv6 routers must not forward packets that have link-local source or destination addresses to other links. All IPv6 enabled interfaces have a link-local unicast address.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+IPv6 Address Types&lt;br /&gt;
!Prefix!!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|2000-3fff::/3||Global Unicast - Routable on Internet&lt;br /&gt;
|-&lt;br /&gt;
|2001:db8:1::/64 (all zeros ID)||Anycast - Shared address to nearest available interface (type of unicast)&lt;br /&gt;
|-&lt;br /&gt;
|fc00::/8 fd00::/8||Unique Local - Routable on private network only ([https://en.wikipedia.org/wiki/Unique_local_address ULA])&lt;br /&gt;
|-&lt;br /&gt;
|fe80::/10||Local link - network only&lt;br /&gt;
|-&lt;br /&gt;
|ff00::/8||Multicast - Sending to groups (~ IPv4 broadcast)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Subnetting:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Global Unicast Address Bits&lt;br /&gt;
!Cumulative Mask!!Bits!!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|/3||first 3 bits||001 defined for GUA&lt;br /&gt;
|-&lt;br /&gt;
|/23||next 20 bits||Regional registry (NA, Africa, etc)&lt;br /&gt;
|-&lt;br /&gt;
|/32||next 9 bits||Service provider&lt;br /&gt;
|-&lt;br /&gt;
|/48||next 16 bits||Site prefix (eg ISP)&lt;br /&gt;
|-&lt;br /&gt;
|/64||next 16 bits||Subnet prefix (eg consumer)&lt;br /&gt;
|-&lt;br /&gt;
|/128||last 64 bits||Interface ID&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[48 bit Network Address] + [16 bit subnet address] + [64 bit device address]&lt;br /&gt;
&lt;br /&gt;
eg: 2003:1000:1000:1600:1234::1&lt;br /&gt;
&lt;br /&gt;
would have the network 2003:1000:1000, the subnet 1600, so together the prefix 2003:1000:1000:1600. If the ISP delegated a part of the prefix to the consumer (e.g. 2003:1000:1000:1600/56) then the subnets from 2003:1000:1000:1600 to 2003:1000:1000:16FF could be used for private purposes (ie define 256 subnets).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+IPv6 Special Addresses&lt;br /&gt;
!Address!!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|:: /0||All networks, used for default route&lt;br /&gt;
|-&lt;br /&gt;
|::1/128||Loopback, like 127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|::/128||Unspecified&lt;br /&gt;
|-&lt;br /&gt;
|2000::/3||Global Unicast (Internet)&lt;br /&gt;
|-&lt;br /&gt;
|2001:0000:||Global Unicast - Teredo&lt;br /&gt;
|-&lt;br /&gt;
|2001:db8:||Global Unicast - teaching example&lt;br /&gt;
|-&lt;br /&gt;
|2002::/3||Global Unicast - 6to4&lt;br /&gt;
|-&lt;br /&gt;
|ff02::1||All-nodes mulitcast&lt;br /&gt;
|-&lt;br /&gt;
|ff02::1:2||All DHCP Servers and agents&lt;br /&gt;
|-&lt;br /&gt;
|ff02::1:ffxx:xxxx||All-solicited nodes multicast&lt;br /&gt;
|-&lt;br /&gt;
|ff02::2||All-routers mulitcast&lt;br /&gt;
|-&lt;br /&gt;
|ff02::101||All NTP Servers multicast&lt;br /&gt;
|-&lt;br /&gt;
|ff02::fb||mDNSv6 multicast&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Typically interfaces have multiple IPs in different scopes (localhost, unique local, global)&lt;br /&gt;
* Communucation between nodes happens at the smallest scope&lt;br /&gt;
&lt;br /&gt;
Scopes and special addresses&lt;br /&gt;
* 0xe, Global - everything (i.e. the whole internet)&lt;br /&gt;
* 0x8, Organisation Local&lt;br /&gt;
* 0x5, Site Local&lt;br /&gt;
* 0x4, Admin Local&lt;br /&gt;
* 0x3, Realm Local&lt;br /&gt;
* 0x2, Link Local: (will never be routed, valid in one collision domain, i.e. on the same switch)&lt;br /&gt;
* 0x1, Interface Local - localhost&lt;br /&gt;
&lt;br /&gt;
== Tools and usage ==&lt;br /&gt;
&lt;br /&gt;
* To use IPv6 in URLs, enclose in square brackets:&lt;br /&gt;
** http://[::1]&lt;br /&gt;
* Command line tools typically accept &amp;quot;-6&amp;quot;&lt;br /&gt;
** ping -6 f02::1&lt;br /&gt;
** ping fe80::6ab2:9b4f:5cea:6679%wlp12s0&lt;br /&gt;
** traceroute&lt;br /&gt;
&lt;br /&gt;
Note that ping for link-local addresses may need to specify the interface.&lt;br /&gt;
&lt;br /&gt;
== Protocols ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Protocols&lt;br /&gt;
!Number!!Protocol!!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|58||ICMP v6||Information, Error reporting, diagnostics&lt;br /&gt;
|-&lt;br /&gt;
|17||UDP v6||Stateless&lt;br /&gt;
|-&lt;br /&gt;
|6||TCP v6||Stateful&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ICMP v6 ===&lt;br /&gt;
&lt;br /&gt;
Instead of ports, types are used. Critical/important types have numbers ranging from 1-127, while rather informational types have the numbers 128 and above. Each type can have codes (subtypes) that can be used for further specifications. See [https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml here] for full list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ICMP v6 Types&lt;br /&gt;
!Type!!Code!!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|0||||Reserved&lt;br /&gt;
|-&lt;br /&gt;
|1||||Destination unreachable&lt;br /&gt;
|-&lt;br /&gt;
|1||0||No route to destination&lt;br /&gt;
|-&lt;br /&gt;
|1||2||Beyond scope of source address&lt;br /&gt;
|-&lt;br /&gt;
|3||||Time limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
|3||1||Hop limit exceeded&lt;br /&gt;
|-&lt;br /&gt;
|128||0||Echo request&lt;br /&gt;
|-&lt;br /&gt;
|129||0||Echo reply&lt;br /&gt;
|-&lt;br /&gt;
|128||0||Echo request&lt;br /&gt;
|-&lt;br /&gt;
|128||0||Echo request&lt;br /&gt;
|-&lt;br /&gt;
|133||0||Router solicitation&lt;br /&gt;
|-&lt;br /&gt;
|134||0||Router advertisement&lt;br /&gt;
|-&lt;br /&gt;
|135||0||Neighbour solicitation&lt;br /&gt;
|-&lt;br /&gt;
|136||0||Neighbour advertisement&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Assigning IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Ways to assign IPv6 addresses&lt;br /&gt;
* Static - fixed address&lt;br /&gt;
* SLAAC - Stateless Address Autoconfiguration (host generates itself)&lt;br /&gt;
* DHCPv6 - Dynamic host configuration protocol (assigned by central server)&lt;br /&gt;
&lt;br /&gt;
SLAAC is good for general purpose clients but not good for servers that require special firewall rules, etc where central management of DHCPv6 is better.&lt;br /&gt;
&lt;br /&gt;
Both SLAC and DHCPv6 could be used to assign IPs for a client, if interface is set to Automatic. Alternatively, set to Automatic-DHCPv6 to suppress SLAC. On the server side, flags in the RA can tell the clients whether they should use SLAC or DHCPv6.&lt;br /&gt;
&lt;br /&gt;
eg in OpenWRT:&lt;br /&gt;
* IPV6 RA Settings&lt;br /&gt;
** Enable SLAC&lt;br /&gt;
** RA Flags -&amp;gt; managed config (DHCPv6 is available)&lt;br /&gt;
&lt;br /&gt;
=== Stateless Address Autoconfiguration (SLAAC) ===&lt;br /&gt;
&lt;br /&gt;
* PC sends a Router Solicitation (RS) message using ICMPv6&lt;br /&gt;
** Type 133&lt;br /&gt;
** Source address :: /128 (unspecified)&lt;br /&gt;
** Destination address: ff02::2 (all-routers mulitcast)&lt;br /&gt;
* Router sends Router Advertisement (RA) message&lt;br /&gt;
** Type 134&lt;br /&gt;
** Source address: fe80::x (router link-local)&lt;br /&gt;
** Destination address: ff02::1 (all-nodes mulitcast)&lt;br /&gt;
** PC learns&lt;br /&gt;
*** IPv6 prefix(es)&lt;br /&gt;
*** Router lifetime information (0: not default, 1: 9000 seconds)&lt;br /&gt;
*** Flag information (M: managed address and DNS by dhcpv6 / O: other ie DNS only from dhcpv6)&lt;br /&gt;
*** Gateway/source address&lt;br /&gt;
* PC autoconfigures interface ID, EUI-64 (from MAC or random)&lt;br /&gt;
* PC sends Neighbour Solicitation (NS) message (Duplicate Address Detection, pings itself to make sure it&amp;#039;s a unique address) &lt;br /&gt;
&lt;br /&gt;
SLAAC: convert 48 bit MAC 08:00:27:00:00:08 to 64 bit interface ID 0a00:27ff:fe00:0008&lt;br /&gt;
* ff:ee inserted in the middle&lt;br /&gt;
* 7th bit flip&lt;br /&gt;
&lt;br /&gt;
Neighbour Discovery (similar to ARP): type 135&lt;br /&gt;
Neighbour Advertisement : type 136&lt;br /&gt;
&lt;br /&gt;
=== DHCPv6 ===&lt;br /&gt;
&lt;br /&gt;
* DHCP Solicitation from UDP 546 to 547 on the DHCP multicast address ff02::1:2&lt;br /&gt;
* The server then replies to the client (UDP/547 to UDP/546) with DHCP advertisement&lt;br /&gt;
* The client then sends out a DHCP request&lt;br /&gt;
* The server finishes with a DHCP reply&lt;br /&gt;
&lt;br /&gt;
=== Duplicate Address Detection ===&lt;br /&gt;
&lt;br /&gt;
Multicast into the network the use of a particular address: if no response, assume no duplicates present.&lt;br /&gt;
&lt;br /&gt;
== IPv4 Compatibility ==&lt;br /&gt;
&lt;br /&gt;
IPv4 addresses are represented within IPv6 space:&lt;br /&gt;
*10.0.176.93 as ::ffff:10.0.176.93, or ::ffff:a00:b05d&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/6in4 6in4]&lt;br /&gt;
** IP protocol 41&lt;br /&gt;
** &lt;br /&gt;
* [https://en.wikipedia.org/wiki/6to4 6to4]&lt;br /&gt;
** Address starts 2002&lt;br /&gt;
* [https://en.wikipedia.org/wiki/ISATAP ISATAP]&lt;br /&gt;
** Interface ID starts 0:5efe followed by IPv4 w.x.y.z&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Teredo_tunneling Teredo]&lt;br /&gt;
** Allows IPv6 clients to work with IPv4 NAT&lt;/div&gt;</summary>
		<author><name>NickPGSmith</name></author>
	</entry>
</feed>