Friday 24 August 2012

IPv6


IPv6:
IPv6 stands for  Internet protocol version 6.
IPv6 utilizes 128-bit Internet addresses. Therefore, it can support 2^128 Internet addresses — 340,282,366,920,938,000,000,000,000,000,000,000,000 of them to be exact. 

That’s a lot of addresses, so many that it requires a hexadecimal system to display the addresses.
In other words, there are more than enough IPv6 addresses to keep the Internet operational for a very, very long time.
IPv6 address generally represents in Hexa Decimal Format( Since it has bigger (128-bit) address space).

IPv6 address represented as XXXX: XXXX: XXXX : XXXX : XXXX: XXXX: XXXX: XXXX  ( XX -> 1 Byte XXXX->2 bytes , total 16 bytes = 128 bits and all the values are represented in the Hexa Decimal format).

IPv6 Address Representation:
 Like IPv4, IPv6 address also has network address and Interface Id. 64 bits represents Network address and 64 bits represents the Interface Id.
  
For example :   
 21DA:00D3:0000:2F3B: 02AA:00FF:FE28:9C5A  ( In this example first portion of 64 bits represents the network address and  remaining portion of 64 bits represents the host address.)

There are many ways of representing the IPv6 address:
Zero compression:   If there are zeros in the IPv6 address, then it can be compressed.

Way 1: Leading zeros in the address field are optional and can be compressed as mentioned below.
Example 1:     
2031:0000:130F:0000:0000:09C0:876A:130B  = 2031:0:130F:0:0:9C0:876A:130B
                                                                                                (compressed form)
Example 2:
            0000 = 0 (compressed form)

A pair of colons (::) represents successive fields of 0. However, the pair of colons is allowed only once in a valid IPv6 address.

Example 1:
            2031:0:130F:0:0:9C0:876A:130B = 2031:0:130F :: 9C0:876A:130B (compressed form)

Example 2:
FF01:0:0:0:0:0:1 = FF01 :: 1

Example 3:
2031:0000:130F:0000:0000:09C0:876A:130B 
2031:0:130F:0:0:9C0:876A:130B
            
              2031:0:130F::9C0:876A:130B 

IPv6 Address Prefix:

The prefix can defined as "Part of address indicates the bits have Fixed values or are the Bits of the   Network Identifier.
An IPv6 Address Prefix is represented in "address/prefix-length"
    
Note: Prefix Length indicates the No.of Bits represents the Network Address.
    
For Example: FE80:2233:4445:2244:1133:1122:0:1/64

In the above example prefix length is 64, first 64 bits represents the Network Address ( FE80:2233:4445:2244 )

IPv6 Sub-netting:


IPv6  sub netting is little different than IPv4 sub netting.Let’s take small example to understand about IPv6 sub netting.

2000: 4567 :7896/48 , The first 48 bits represents the NETWORK address and Next 16 bits used for Subnetting and Last 64 bits are Host bits. 

2000:   4567:   7896:             XXXX :                 3456:   7895:   1233:  9876
<Network Address>            <Subnet Id>             < HOST Bits(64)  address >

The Number of sub nets are (2^16) =65536 and each sub-net will have 2^64 hosts can be connected.
The Sub-net addresses are shown below.

2000:   4567:       7896:          0000:
2000:   4567:       7896:          0001:
2000:   4567:       7896:          0002:
|                                                |
|                                                |                      
2000:   4567:       7896:          FFFF:                 
 

What if Prefix length is not Multiply of 4?
     To properly express a subnet with a prefix where its prefix length is not a multiple of 4, we must complete hexadecimal to binary conversions to determine the appropriate subnet identifier.

For example:
    - To express the subnet of the address and prefix of

         21DA: D3: 0: 2F3B: 2AA: FF: FE28: 9C5A/5959 bits represents the Network Address, remaining 5 bits represents the subnet, so total of subnets are 2^5 = 32  and 64 Bits represents the Host Address.

         21DA:   D3:    0:    2F3 B:     2AA:FF:FE28:9C5A/59

         - we must convert the “3B” in “2F3B” to binary (0011 1011),

         21DA:   D3:    0:    2F  0011 1011:       
        
        <------59 bits-------------->                     (  MASK  with AND & operator)
       
         21DA:   D3:    0:    2F  1110  0000:

        ============================        
         21DA:   D3:    0:    2F  0010 0000 =>    21DA:   D3:    0:    2F20 is the Subnet Identifier


IPv6 Address Types ( Classes):

1. Unicast Addressing ( ONE- to - ONE Communication )
A unicast address identifies a single network interface.
The Internet Protocol delivers packets sent to a unicast address to that specific interface.

In Other words:
An address for a single interface. A packet that is sent to a unicast address is delivered to the interface identified by that address.

2. Multicast Addressing ( ONE- to - MANY Communication )
            A multicast address is also used by multiple hosts, which acquire the multicast address destination by participating in the multicast distribution protocol among the network routers. 
A packet that is sent to a multicast address is delivered to all interfaces that have joined the corresponding multicast group.
3. Anycast Addressing ( ONE- to - ONE -of MANY communication)

An anycast address is assigned to a group of interfaces, usually belonging to different nodes. A packet sent to an anycast address is delivered to just one of the member interfaces, typically the nearest host, according to the routing protocol’s definition of distance. 
Anycast addresses cannot be identified easily, they have the same format as unicast addresses, and differ only by their presence in the network at multiple points. Almost any unicast address can be employed as an anycast address.

Any cast addressing is used for one-to-one-of-many communication, with delivery to a single interface.

What about Broadcast in IPv6?  
There is no broadcast in IPv6.
This functionality is taken over by multicast.
A consequence of this is that the all 0’s and all 1’s addresses are legal.

Unicast Address Types:
IPv6 has several major unicast address types.
  • Unicast global addresses  (2000::1/3)
  • Unicast site-local addresses  (FEC0::/10)
  • Unicast link-local addresses  (FE80::/64)
  • Loop back Addresses ( the loopback routing prefix ::1/128 consists of only one address ::1 (0:0:0:0:0:0:0:1 in full notation,)
  • Unspecified Addresses(00::00/128) all are zeros)

Types of IPv6 Addresses in represented in Tabular format
Address type Binary prefix IPv6 notation
Unspecified 00 . . . 0 (128 bits) ::/128
Loopback 00 . . . 1 (128 bits) ::1/128
Multicast 11111111 FF00::/8
Link-local unicast 1111111010 FE80::/10
Site-local unicast 1111111011 FEC0::/10
Global unicast (everything else) starts from (2000::/3 - E000::/3)
  
 What Is an IPv6 Link-Local Unicast Address?

   A link-local unicast address is an IPv6 unicast address that is automatically configured on
an IPv6 node interface by using the link-local prefix FE80::/10 (1111 1110 11) and the interface ID in the EUI-64 format.
 

It is used to communicate with other nodes on the same link. The below figure shows two nodes on a single subnet using Link local IP addresses.  Two nodes on a same sub-net communicate using the Link local IP address ( No need of Routers)



Nodes on single subnet using link-local addresses 

Routers will not forward any packets with link-local source or destination addresses to other links.

How to Use of EUI-64 Format in IPv6 Addresses in link local Address or Global?

EUI- Extended Universal Identifier

To create the IPv6 interface identifier from the 48-bit (6-byte) Ethernet MAC address:

The hexadecimal digits 0xFF-FE are inserted between the third and fourth bytes of the MAC address.

The Universal/Local bit (the second low-order bit of the first byte of the MAC address) is complemented. If it is a 1, it is set to 0; and if it is a 0, it is set to 1.

For example, for the MAC address of 00-60-08-52-F9-D8:
 
The hexadecimal digits 0xFF-FE are inserted between 0x08 (the third byte) and 0x52 (the fourth byte) of the MAC address, forming the 64-bit address of 00-60-08-FF-FE-52-F9-D8.
 
The Universal/Local bit, the second low-order bit of 0x00 (the first byte) of the MAC address, is complemented. The second low-order bit of 0x00 is 0 which, when complemented, becomes 1. The result is that for the first byte, 0x00 becomes 0x02.

As a result, the IPv6 interface identifier that corresponds to the Ethernet MAC address of 00-60-08-52-F9-D8 is 02-60-08-FF-FE-52-F9-D8. 

The link-local address of a node is the combination of the prefix FE80::/64 and the 64-bit interface identifier expressed in colon-hexadecimal notation. 
As a result, the link-local address of this example node, with the prefix of FE80::/64 and the interface identifier 02-60-08-FF-FE-52-F9-D8, is FE80::260:8FF:FE52:F9D8.
 
For example

 
Uniqueness mask 000000X0 where X=1 is unique and X=0 in not unique. So if X=1 then the EUI-64 Address is 02 90 27 FF FE 17 FC 0F

Characteristics
  • Mandatory addresses that are used exclusively for communication between two IPv6 devices on the same link
  • Automatically assigned by device as soon as IPv6 is enabled
  • Not routable addresses (Their scope is link-specific only.)
  • Identified by the first 10 bits (FE80)
  • Typically created using the EUI-64 format
Addressing
  • Link Local Identifier (10 bits): Always begins with FE80::/10 (i.e. 1111 1110 10)
  • Remainder (54 bits): Could be all zeros or manually configured to another value.
  • Example: FE80:0000:0000:0000:0987:65FF:FE01:2345 or FE80::987:65FF:FE01:2345 (shorthand format)
What Is an IPv6 Global Unicast Address? 
A global unicast address is simply what we call a public IP address in IPv4—that is, an IP address that is routed across the whole Internet. 
You can make out a global unicast address easily: The first three bits are set to 001. Thus, the address prefix of a global IPv6 address is 2000::/3 because 0010000000000000 is 2000 in hex. 
However, in the future, the IANA (Internet Assigned Numbers Authority) might delegate currently unassigned portions of the IPv6 address space. Hence, 2000::/3 won’t always be the prefix for global unicast addresses.
 
IPv6 - tutorial - Global unicast address 


Characteristics
  • Routable and reachable across the Internet
  • IPv6 addresses for widespread generic use
  • Structured as a hierarchy to allow address aggregation
  • Identified by their three high-level bits set to 001 (2000::/3)
Addressing
  • Global Routing Prefix (32 bits): 001 + 29 bit global routing prefix. Assigned to a service provider by IANA.
  • Site Level Aggregator (16 bits): Assigned to a customer by a service provider.
  • LAN (16 bits): Assigned to an individual network by the customer.
3a9284ffe6c72fe5139010f28b07e7ba png


 Small Example with Routers:

 In this example, the routers R1, R2 and R3 are connected via serial interface and have the IPv6 addresses configured as mentioned in the network diagram. Loopback addresses are configured on the routers R1 and R3, and the routers use OSPFv3 to communicate with each other. This example uses the ping command to demonstrate the connectivity between the routers using link-local addresses. The routers R1 and R3 can ping each other with the IPv6 global unicast address, but not with their link-local address. However, router R2 being directly connected to R1 and R3 can communicate with both the routers using their link-local address, because link-local addresses are used only within that local network specific to the physical interface.ipv6-lla-01.gif 

What Is an IPv6  Multicast Address? 

A multicast address identifies not one device but a set of devices a multicast group. A packet being sent to a multicast group is originated by a single device; therefore a multicast packet normally has a unicast address as its source address and a multicast address as its destination address. A multicast address never appears in a packet as a source address.

The members of a multicast group might include only a single device, or even all devices in a network.
Characteristics
  • Contain an 8 bit prefix identifier – FF00::/8 (i.e 1111 1111)
  • The second octet defines the lifetime and scope of the multicast address
  • Multicast addresses are always destination addresses. Multicast addresses are used for router solicitations (RS), router advertisements (RA), DHCPv6, multicast applications, and so forth.
  • Important Note: A default gateway configuration is not required by IPv6 clients because routers are discovered using RSs and RAs.
Common Addresses
  • FF01::1 – Node local, within the same node
  • FF02::1 – Link-local, all nodes on a link
  • FF01::2 – Node-local, same router
  • FF02::2 – Link-local, all routers on a link
  • FF05::2 – Site-local, all routers on the Internet
  • FF02::1:FFxx:xxxx – Link-local, solicited node
59177c45262af7726b0f3fc5dac35ae1
 
 
Table  Examples of well-known IPv6 multicast addresses.
Address
Multicast Group
FF02::1
All Nodes
FF02::2
All Routers
FF02::5
OSPFv3 Routers
FF02::6
OSPFv3 Designated Routers
FF02::9
RIPng Routers
FF02::A
EIGRP Routers
FF02::B
Mobile Agents
FF02::C
DHCP Servers/Relay Agents
FF02::D
All PIM Routers