Last modified on 21 September 2010, at 19:26

Linux Networking/IPv6

Just when you thought you were beginning to understand IP networking the rules get changed! IPv6 is the shorthand notation for version 6 of the Internet Protocol. The main driver of the design of IPv6, was the IPv4 address exhaustion. Also the number of devices that require IP addressing has grown, especially mobile devices with the explosion of the "mobile Internet". It is expected that in future there will be much more connected devices (with new trends in home automation and connectivity in cars). IPv6 addresses are 16 bytes long (128 bits). IPv6 incorporates a number of other changes, mostly simplifications, that will make IPv6 networks more manageable than IPv4 networks.

Linux already has a working, but not complete, IPv6 implementation in the 2.2.* series kernels.

The IPv6 addresses are normally written as eight groups of four hexadecimal digits, where each group is separated by a semi colon (:).

Syntax: XXXX: XXXX: XXXX: XXXX: XXXX: XXXX: XXXX: XXXX

For example: 2001:0 DB8: 85A3: 08D3: 1319:8 A2E: 0370:7334

Main FeaturesEdit

  • Larger address space
  • Address scopes
  • Stateless address configuration
  • Multicast
  • Mandatory network layer security
  • Simplified processing by routers

DHCPv6Edit

DHCPv6 is a protocol for dynamic host configuration for IPv6. The server is responsible for assigning IP addresses and maintaining the states of the client nodes. It maintains a database of the addresses that were assigned to the hosts, thus the name "statefull," as it maintains the status of allocations.

OperationEdit

The client host sends a request to the IPv6 network, all servers that are connected to the network, receives the request. But only the server assigns an IP to the client host.

Implementations of IPv6 in XOEdit

Three of the main possible implementations of IPv6 in the XO are described below:

Manual AllocationEdit

All the hosts should be awarded an IP within the same network. To do this, the command is:

ip -6 addr add <IP Global>/<prefix> dev <interface>

To run this command on the XO, the user must have root permissions.

Automatic AllocationEdit

To achieve this, a DHCPv6 server must be configured (in any host) and each node of the network must be configured for the DHCPv6 client.

The DHCPv6 server must be configured with the range of IPs that will be available in the pool of address and prefix of the network. On the client, the server that it will “listen” must be configured as well as the network interface that it will use to connect to the DHCPv6 server.

To perform this configuration, both the client and the server, the user must have root permissions.

Local IP AllocationEdit

Two or more XO connected together, set up an ad-hoc network, which is automatically configured. The IP that is assigned in each node is known as: local link.

ValidationEdit

To validate these implementations, this command must be executed:

ping6 –I <interface> <ipDestiny>

A broadcast ping can be done to test the network:

ping6 –I <interface>  ff02::1