xStack
®
DGS-3600 Series Layer 3 Managed Gigabit Ethernet Switch
different than any other fragmented packet recently sent that include the same source and destination address. The original packet
is divided into two parts, a fragmentable part and an unfragmentable part. The unfragemntable part of the packet consists of the
IPv6 header and any extension headers present, up to the routing extension header. The fragmentable part has the payload plus any
extension headers that must be processed by the final destination node. This part will be divided into multiple packets that are of a
size that can be accepted by the Path MTU. The IPv6 header is then included with this fragmented part and sent to its destination.
Once all parts of the fragmented packet reach its destination, they are reassembled using the Fragment Identification value,
provided that the source and destination addresses are identical.
Address Format
To address the problem of finding a larger pool of IP addresses for IPv6, the size and format of the IPv4 format needed to be
changed. Quadrupling the size of the address, from 32 bits to 128 bits, and encoding addresses using the hexadecimal form were
used to solve the problem. In IPv4, the format of the address looked like xxx.xxx.xxx.xxx, where the x’s represent integers from
0-9 (ex. 136.145.225.121). Now in IPv6, the format of the address resembles xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx where a
set of xxxx represents a 16-bit hexadecimal value (ex. 2D83:0C76:3140:0000:0000:020C:417A:3214). Although this address
looks long and cumbersome, there are some compression rules that will shorten the format of the IPv6 address to make it more
compatible to the user.
One such compression rule that is used is to remove leading zeros from any 16-bit hexadecimal value. This is only for zeros that
begin the value, not for zeros within the value or ones that are ending the value. Therefore, if we take the previous example IPv6
address and use the compression rules, our IPv6 address would look like this:
2D83:0C76:3140:
0000:0000:020C
:417A:3214
Æ
2D83:C76:3140:
0:0:20C
:417A:3214
The second compression method is to change a string of zero bits into two colons. At times, there may be strings of empty values
in the IPv6 address that are unused for this address, but are necessary for the format of other IPv6 addresses with alternate
purposes. To compress these zero strings, the format “
::”
is used to represent multiple zero fields in the address. This double colon
can only be used once in the IPv6 address because when a computer finds a colon, it will expand this field with as many zeros as
is necessary to reach the 128-bit address size. If two strings of zeros are present, separated by another non-zero field, a zero must
be used to represent one of the two zero fields. So, if we reduce our example using this compression, it would look like this:
2D83:0C76:3140
:0000:0000:020C:
417A:3214
Æ
2D83:C76:3140
:0:0:20C:
417A:3214
Æ
2D83:C76:3140
::20C:
417A:3214
When IPv4 and IPv6 nodes are mixed in a network, the IPv6 notation overcomes the difficulty of using an IPv4 address by
converting it to the IPv6 format using zeros at the beginning of the IPv4 address. For example, an IP address of 192.168.1.1 is
represented in IPv6 format x:x:x:x:d.d.d.d where the x’s are a string of zeros and the d’s represent the normal IPv4 address. (ex.
0:0:0:0:192.168.1.1 or condensed ::192.168.1.1 or hex form ::C0A8:1:1).
Types
IPv6 addresses are classified into three main categories, unicast, multicast and anycast.
Unicast
– This address represents a single interface on an IPv6 node. Any packet with a unicast address as its destination address
will only be sent to that specific node. Two types of unicast addresses are mainly used for IPv6.
•
Link-Local
– Defined by the IPv6 address prefix FE80::/10, link-local addresses allow for communication to occur
between devices on a local link. These addresses are used in neighbor discovery and stateless autoconfiguration.
•
Global Aggregateable
- Defined using a global routing prefix in the range of 2000::/3 to E000::/3, global addresses are
aggregated using these routing prefixes to produce unique IPv6 addresses, which will limit global routing table entries.
The MAC address of the device is used to produce this address in this form:
Global Unicast Address
:
global interface identifier
(the interface indentifier is based on IEEE EUI-64:
xxxxxxux xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
, this is the 48 bit MAC address format, thereinto, u bit is
universal/local bit, we need to change the u bit to 1, and then insert the "FFFE") between the (first 3 bytes) of the MAC
address and the (last 3 bytes) of the MAC address.
For example,
00-0C-6E-6B-EB-0C >>> 00000000-0C-6E-6B-EB-0C >>> 00000010-0C-6E-6B-EB-0C >>> 02-0C-
6E-6B-EB-0C >>> 020C:6EFF:FE6B:EB0C
, this is the 64 bits interface ID. When received the prefix will be
2000::/3
,
so the ipv6 address will be
2000::20C:6EFF:FE6B:EB0C
Multicast
– Like IPv4, multicast addresses are used to send packets to multiple destinations on a network. These interfaces must
be a part of the multicast group. IPv6 multicast prefixes begin with the prefix FF00::/8. FF represents the binary 1111 1111 which
identifies a multicast address. The first zero, which is a 4-bit integer, represents the lifetime of the packet. An entry of zero in this
field represents a permanent multicast address and an entry of one represents a temporary multicast address. The second zero,
which is also a 4-bit integer, defines the scope of the multicast address. This scope defines to what places the multicast address is
valid. For example, a value of 1 defines the node, 2 defines the link, 5 defines a site, 8 defines a organization and so on. Not all
integers are in use for the scope field. An example of this would be FF02 where the 2 represents a multicast packet going to all the
nodes on a local link.
170