Tag: IPv6

IPv6 – SLAAC EUI-64 Address Format

UPDATE on 22 Mar 2018:
Article is correctly describing what is SLAAC and why is needed and describes how SLAAC uses RFC 2373 to generate interface IPv6 address. The thing is that today RFC 7217 describes an enhanced new way of SLAAC algorithm to improve user security and protect hosts from attacks. Details are available here in my new article about SLAAC.

Stateless autoconfiguration or SLAAC

SLAAC is a method in which the host or router interface is assigned a 64-bit prefix, and then the last 64 bits of its address are derived by the host or router with help of EUI-64 process which is described in next few lines. SLAAC uses NDP protocol to work.ipv6

As the format of the EUI-64 format is seen quite frequently, covering its details seems important too.

NDP – Neighbor Discovery Protocol

IPv6 Neighbor Discovery Protocol

In IPv6 we do not have ARP (address resolution protocol) anymore. ARP is replaced with ICMP based NDP protocol. NDP or ND protocol uses special IPv6 ICMP messages to find and resolve L2 neighbours IPv6 addresses.

It’s a simple way for hosts to learn IPv6 addresses of neighbours on L2 subnet around himself. That includes learning about other hosts and routers on local network. That is the biggest difference between IPv4 and IPv6, there’s no ARP but ICMP takes the function.

NDP is defined in RFC 2461 and this article will introduce you to NDP functions, main features’ lists, and the related ICMPv6 message types.

As the most precise description of NDP is that it belongs to the Link layer of the Internet Protocol suite in TCP/IP model. We can say that Link layer of TCP/IP model is basically a direct combination of the data link layer and the physical layer in the OSI Open Systems Interconnection protocol stack. As in this blog I always try to use OSI model this article was inserted both to Data-link and Physical layer category.

NDP function

In case of IPv6 networks, the NDP Protocol make use of ICMPv6 messages and solicited-node multicast addresses for operating its core function, which is tracking and discovering other IPv6 hosts that are present on the other side of connected interfaces. Another use of NDP is address autoconfiguration.

Let’s discuss some major roles of IPv6 NDP:

  • Stateless address autoconfiguration – SLAAC
  • Duplicate address detection DAD
  • Router discovery
  • Prefix discovery
  • Parameter discovery link MTU, hop limits 
  • Neighbor discovery
  • Neighbor address resolution – replaces ARP in IPv6
  • Neighbor and router reachability verification

In order to carry out work NDP uses five types of ICMPv6 messages. In the following list you can find the function as well as summary of their goals.

NDP message types:

PNRP the New DNS – Peer Name Resolution Protocol

PNRP – The Peer Name Resolution Protocol is new protocol made by Microsoft which is one of the first technology that will change the way we think about naming resolution in computer networking and possibly be the next DNS – Domain Name System like technology. PNRP is the new DNS but there are so much differences between them that it deserves an article on this blog.

Just to remind, is few simple words, DNS is a technology that enables us to type the domain name in the browser and leaves to Domain Name System to translate the domain name to IP address of the server where the web page is published.

As we are stepping forward to IPv6 implementation in the whole world in next years, there are technologies and future services that will not function at their best using DNS. In this case Microsoft was one of the first to develop a new technology, decentralized technology that will rely on neighbor computer for the name resolution and completely rely on IPv6 addressing. The Per Name Resolution protocol was the answer.

In case of DNS, it depends on a hierarchical structure of naming, while PNRP depends on peer systems in order to resolve the computer system’s location. Mainly, PNRP is a referral system that operates lookups on the basis of data it is familiar with.

PNRP - Peer Name Resolution ProtocolHere is a simple example, if you require to search Computer 1 and you are close to Computers 2 and 3, it is important for your system to know whether Computer 2 knows Computer 1 or not. If the response of Computer 2 is positive, only then a a link to Computer 1 is provided to you. If the reply is in negative, then the system asks Computer 3 whether it knows Computer 1 and the same method is used with Computer 2. If none of the computers knows Computer 1, then the request is sent to other computers close to the system till it successfully finds the one that is familiar with Computer 1.

There are number of ways in which PNRP is different from the DNS service:

IPv6 Day – 6 June 2012.

World IPv6 dayInternet Society is organizing today 6 of June 2012 the World IPv6 Launch. This will not mean that we will close the Internet on the IPv4 protocol and transfer it to IPv6. It will also not mean that everyone needs to make the transition today. Most of you reading this is already ready to use IPv6. Most of modern computers are able to manage and configure they network interface cards (NIC) to both IPv4 and IPv6 addresses. But what is then IPv6 launch day? Big and important websites and Internet Service Providers participate in today’s day in the way that they will begin the transition from IPv4 and permanently enable IPv6.

IPv6 addresses – What is IPv6?

IPv6 addresses – what is this all about?What is IPv6 – IPv6 addresses – what is this all about? Why we need IPv6 addresses? What is this buzz all about? When the IP protocol and addressing technology first came out, there was not even close so many devices in the world that could connect to the Internet. It was hard to imagine that we will have the need to make IP addresses longer that 32-bit. So we make them 32-bit addresses and call them IPv4 address. We were not able to imagine that we will have close to 4,294,967,296 devices online? This number is simple 232 = 4,294,967,296 that means the number of different IP addresses that we can generate with 32 digits (bit) number.