Content
IPv6
IPv6 (Internet Protocol version 6) is the sixth version of IP (Internet Protocol), an Internet based network interconnection protocol, and was developed as an update to the protocol IPv4, designed to solve the problem of address exhaustion
Before IPv6, there was IPv5, which was called IPng (IP Next Generation), but it was not the successor of IPv4, as it was used as an experimental streaming oriented protocol that attempted to support voice, video, and audio
Defined in the RFC 2460, IPv6 uses 128 bit (16 byte) addresses, limited to 2^{128}\approx 3.4 \cdot 10^{38} unique addresses
It can also be represented as 16^{32}, with 32 hexadecimal digits, each of which can take 16 values
IPv6 addresses are defined in the RFC 2373 and RFC 2374, but was redefined in April 2003 in the RFC 3513
According to the publication RFC 5952, IPv6 addresses, 128 bits long
Where the hexadecimal value of each of the four digits follows the following format:
XXXX . XXXX . XXXX . XXXX . XXXX . XXXX . XXXX . XXXX, which is composed of values in the range 0000-FFFF
Valid address example: 2001:0db8:85a3:08d3:1319:8a2e:0370:7334
A group of four digits can be compressed if it is null (that is, it takes the value “0000”)
Valid address example: 2001:0db8:85a3:0000:1319:8a2e:0370:7344
Valid compressed address example: 2001:0db8:85a3::1319:8a2e:0370:7344
The addresses in the example are equivalent and for that reason, for efficiency reasons, it is recommended to use the compressed one
Following this rule, if more than two consecutive groups are null, they can also be compressed as “::”
Si la dirección tiene más de una serie de grupos nulos consecutivos la compresión solamente se permite en uno de ellos, para evitar la ambigüedad
Example of compression of a valid address with many consecutive nulls: 2001:0DB8:0000:0000:0000:0000:1428:57ab
Examples of valid compressed addresses:
2001:0DB8:0000:0000:0000::1428:57ab
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:0DB8::1428:57ab
Leading zeros in a group can also be omitted
Valid address example: 2001:0DB8:02de::0e13
Valid compressed address example: 2001:DB8:2de::e13
When what you want is to identify a range of addresses by means of the first bits, this number of bits goes after the slash character “/”
Examples of valid addresses in bit range:
2001:0DB8::1428:57AB/96 sería equivalente a 2001:0DB8::
2001:0DB8::874B:2B34/96 would be equivalent to 2001:0DB8:: and of course also to 2001:0DB8::1428:57AB/96
IPv4 addresses compatible with IPv6
The addresses IPv4 IPv6 compatible addresses constitute a special class of IPv6 address
The first 96 bits are zeros, while the last 32 bits represent an address IPv4
IPv6 conversion methods no longer use addresses IPv4 compatibles
This type of addresses is used when we have an addressing table IPv4 fixed and we need to store addresses those addresses as IPv6
It should be noted that the undefined IPv6 address :: and the loopback IPv6 address ::1 are not really addresses IPv4 compatible, despite being included in the IPv6 address space ::/96
You can use a compatible IPv4 address (uses the format ::1.2.3.4) or a mapped IPv4 address (uses the format ::ffff:1.2.3.4)
Example of IPv4 to convert:
192.168.89.9
Example of compatible IPv4:
::c0a8:5909
Example of mapped IPv4:
::ffff:c0a8:5909
Reserved addresses
- ::/128
address with all zeros is used to indicate the absence of an address, it is used exclusively for the Internet, because it represents any network
- ::1/128
is reserved for testing, loopback
The Routers or local machines can use this address to send packets back to themselves
Therefore, it cannot be assigned to any network
- ::1.2.3.4/96
compatible IPv4 address is used as a transition mechanism in dual IPv4/IPv6 networks
It is used very little
- ::ffff:0:0/96
mapped IPv4 address is used as transition mechanism on dual terminals
- fe80::/10
link local prefix specifies that the address is only valid on the local physical link
- fec0::
site-local prefix specifies that the address is only valid within a local network
The RFC 3879 declared it obsolete, stating that future systems should not implement any support for this special address type
Instead they should be replaced by Local IPv6 Unicast addresses
- fc00::/7
unique local address prefix
Declared in the RFC 4193
Used in place of site-local addresses
- ff00::/8
multicast prefix
It is used for multicast addresses
It should be noted that there are no broadcast addresses in IPv6, although the functionality they provide can be emulated using the multicast address FF01::1/128, called "all nodes".
Transition mechanisms to IPv6
Faced with exhaustion of addresses IPv4, and the problems that this is already causing, especially in emerging Asian countries such as India or China, the change to IPv6 has already begun
There are a series of mechanisms that will allow coexistence and progressive migration of both networks and user equipment
In general, transition mechanisms can be classified into three groups:
Double stack
Dual stack refers to a “dual-stack IP level solution” (RFC 4213), which implements the stacks of both protocols, IPv4 and IPv6, in each node of the network
Each dual stack node on the network will have two network addresses, one IPv4 and one IPv6
In favor: easy to deploy and widely supported
In against: the network topology requires two routing tables and two routing processes
Each node in the network needs to have both stacks up to date
Tunnels
Tunnels allow you to connect to IPv6 networks by "jumping" over IPv4 networks
These tunnels work by encapsulating IPv6 packets into IPv4 packets, having protocol number 41 as the next IP layer, hence the name proto-41
In this way, IPv6 packets can be sent over an IPv4 infrastructure
There are many tunnel technologies available
The main difference is in the method that the encapsulating nodes use to determine the address at the exit of the tunnel
Translation
The translation is necessary when a node that only supports IPv4 tries to communicate with a node that only supports IPv6
The translation mechanisms can be divided into two groups based on whether the state information is saved or not: