Address Notations In IPv6

Mattias Geniar, Thursday, March 18, 2010 - last modified: Tuesday, March 16, 2010

From a visual point-of-view, the biggest change from IPv4 to IPv6 is the way addresses are formed. The IPv4 way of writing addresses, is by placing four 8 bit groups, seperated by a point ".".

  • 127.0.0.1 (local loopback)
  • 10.0.0.1 (typical local IP address)
  • 193.239.210.183 (public IP address of this blog)

IPv6 uses eight 16-bit hexadecimal values, seperated by a colon ":".

  • ::1 (local loopback)
  • fec0::3010:2ffe:fe21:2640 (typical local IP address)
  • 2001:db2:31:1041:204a::1337 (random public IPv6 address)

The first thing you should know, is that IPv6 addresses can beĀ abbreviated. The local loopback address, written in the example as "::1", is actually the shortened version of 0000:0000:0000:0000:0000:0000:0000:0001.

Leading zeros in IPv6 can usually be left out. This would shorten our local loopback address to 0:0:0:0:0:0:0:1.

To further reduce the length of the address (and add to its confusion, at first), one sequence of zeros, seperated by colons, can be removed and replaced by a double colon "::". Since our example holds seven zero's, it's shortened to ::1.

For instance, the IPv6 address 2001:af40:0401:0000:0000:a401:0000:f010 can be abbreviated like this.

2001:af40:0401:0000:0000:a401:0000:f010 (full form)
2001:af40:0401::a401:0000:f010 (series of zeros replaced by ::)
2001:af40:401::a401:0:f010 (leading zeros removed)

Replacing a series of zeros, can only occur once. The following isn't a legal IPv6 address: 2001:af1::50:1002::5, because there is no way to determine if the address should be

2001:af1:0:0:50:1002:0:5
or
2001:af1:0:50:1002:0:0:5

Since IPv6 no longer uses points to seperate values, but colons, it poses a direct problem for specifying portnumbers, as its default notation is <ip>:<port>. This can be solved by placing the IP address in between brackets, such as [::3]:8080 (which addresses the local loopback address, on port 8080). For websites that use the IP for access, this should be http://[ip-address]:port.



Hi! My name is Mattias Geniar. I'm a Support Manager at Nucleus Hosting in Belgium, a general web geek & public speaker. Currently working on DNS Spy & Oh Dear!. Follow me on Twitter as @mattiasgeniar.

Share this post

Did you like this post? Will you help me share it on social media? Thanks!

Comments

Frank Saturday, February 3, 2018 at 01:02 - Reply

I’m having problems figuring out something as I am studying for CCNA and what the heck I will post it here. This question is for SLAAC. I have an address at 2001:0DB8:FFCE::1/64. I have to use the EUI-64 method with the MAC. The MAC is 0000.CCDD.EEFF. I splice in the FFFE in the middle, put the colons in, change the seventh bit in the first part, and so forth.

My question is I get the answer but in the initial network ID that last 1 is dropped (before the mask). I don’t understand why. If it is a /64 that’s 4 sets of 8 bits so it should be 2001:0DB8:FFCE:0000. What is the ::1/64 for ? That 1 is mixing me up. Thanks for any assistance you can grant me !


    Timo Saturday, April 7, 2018 at 18:52 - Reply

    Forgot to hit the reply button when I wrote my answer to your previous question… So, just in case this will trigger some notification, here’s another try. You can find my answer to your question in the comments above this one.


Timo Saturday, April 7, 2018 at 18:50 - Reply

Hey Frank,

the 1 at the end our your address 2001:0DB8:FFCE::1/64 is superfluous if this address is to be used as a network prefix. Usually ::1 is used to indicate a host within the network (the first host, if they are numbered sequentially). But the network size /64 indicates that your dealing with a network and not a single host (that would be /128). So anything after the fourth octet of your IPv6 address or prefix can be omitted. As a network prefix, you can simply shorten this to 2001:0DB8:FFCE::/64 which is the usual form in which prefixes are given.

Our of curiousity: Where did you get that network prefix from in that form? Is this a prefix you get via DHCPv6 or is this some static assignment by your ISP or hoster?

Cheers!


Leave a Reply

Your email address will not be published. Required fields are marked *