4. ICMPv6
• ICMPv6 gives important information about the
health of the network
• ICMPv6 reports errors if packets cannot be
processed properly and sends informational
messages about the status of the network
• ICMPv6 is much more powerful than ICMPv4 and
contains new functionality (for instance, the
Internet Group Management Protocol (IGMP)
function)
• ICMPv6 also supports Mobile IPv6
5. ICMPv6 (cont.)
• There are two classes of ICMP messages:
– ICMP error messages
– ICMP informational messages
6. ICMPv6 error messages
• ICMPv6 error messages
– Destination Unreachable (message type 1)
– Packet Too Big (message type 2)
– Time Exceeded (message type 3)
– Parameter Problem (message type 4)
7. ICMPv6 informational messages
• ICMPv6 informational messages
– Echo Request (message type 128)
– Echo Reply (message type 129)
9. ICMPv6 header format (cont.)
• Type (1 Byte)
– This field specifies the type of message, which
determines the format of the remainder of the message
10. ICMPv6 header format (cont.)
• Code (1 Byte)
– The Code field depends on the message type and
allows for more granular information in certain cases
11. ICMPv6 header format (cont.)
• Checksum (2 Bytes)
– The Checksum field is used to detect data corruption in
the ICMPv6 header and in parts of the IPv6 header.
– In order to calculate the checksum, a node must
determine the source and destination address in the
IPv6 header
12. ICMPv6 header format (cont.)
• Message Body (Variable Size)
– Depending on the type and code, the message body
will hold different data.
– In the case of an error message, it will contain as much
as possible of the packet that invoked the message to
assist in troubleshooting.
– The total size of the ICMPv6 packet should not exceed
the minimum IPv6 MTU, which is 1280 bytes.
17. Neighbor Discovery
• Neighbor discovery (ND) is specified in RFC 2461
(obsoletes RFC 1970)
• IPv6 nodes use neighbor discovery for the
following purposes:
– To determine layer 2 addresses of nodes on the same
link
– To find neighboring routers that can forward their
packets
– To keep track of which neighbors are reachable and
which are not, and detect changed link-layer addresses
18. Neighbor Discovery Protocol
• Router Discovery: A node can discover, when it is connected to an
IPv6 link, the local routers without the aid of Dynamic Host
Configuration Protocol (DHCP).
• Prefix Discovery: A node can discover, when it is connected to an
IPv6 link, the prefix or prefixes assigned to that link.
• Parameter Discovery: A node can discover parameters such as the
link MTU and hop limits for its connected link.
• Address Autoconfiguration: A node can determine its full address,
again without the aid of DHCP.
• Address Resolution: A node can discover the link-layer addresses of
other nodes on the link without the use of Address Resolution
Protocol (ARP).
19. Neighbor Discovery Protocol (cont.)
• Next-Hop Determination: A node on a link can determine the link-
layer next hop for a destination, either as a local destination or a
router to the destination.
• Neighbor Unreachability Detection: A node can determine when a
neighbor on a link, either another host or a router, is no longer
reachable.
• Duplicate Address Detection: A node can determine if an address it
wants to use is already being used by another node on the link.
• Redirect: A router can notify a host of a better next-hop than itself to
an off-link destination. The redirect function is a part of basic ICMP
functionality in IPv4, but is redefined as part of NDP in IPv6.
21. Autoconfiguration
• Autoconfiguration capability of IPv6 saves network
administrators a lot of work. It has been designed to
ensure that manually configuring hosts before connecting
them to the network is not required.
• Even larger sites with multiple networks and routers
should not need a DHCP server to configure hosts.
• The autoconfiguration features of IPv6 will be a key
feature of the protocol when all sorts of devices, such as
TVs, refrigerators, DVD players, and mobile phones, use
IP addresses. You don't want to depend on a DHCP
server to use your home devices.
22. Autoconfiguration
• IPv6 knows both stateless and stateful autoconfiguration.
Stateful autoconfiguration is what we call DHCP in the
IPv4 world
• To generate their IP address, hosts use a combination of
local information, such as their MAC address, and
information received from routers.
• Routers can advertise multiple prefixes, and hosts
determine prefix information from these advertisements.
• This allows for simple renumbering of a site: only the
prefix information on the router has to be changed.
• If there is no router present, a host can generate a link-
local address only with the prefix FE80. But this address
is sufficient for communication of nodes attached with the
same link.
23. Autoconfiguration
• Stateless and stateful autoconfiguration can also
be combined. For instance, a host can use
stateless autoconfiguration to generate an IPv6
address but then use stateful autoconfiguration
for additional parameters.
• An IPv6 address is leased to a node for a certain
lifetime. When the lifetime expires, the address
becomes invalid. To make sure an address is
unique on a link, a node runs the DAD process.
The DAD algorithm is defined in RFC 2462.
24. State of IPv6 Address
• Tentative address
– This is an address that has not yet been assigned. It is the state
prior to the assignment, when uniqueness is being verified.
• Preferred address
– This is the address that has been assigned to an interface and
that can be used without any restrictions.
• Deprecated address
– The use of this address is discouraged but not forbidden. A
deprecated address might be one whose lifetime is about to
expire. It can still be used to continue a communication that would
disrupt a service if the address changed. It is no longer used as a
source address for newly established communications.
26. Path MTU Discovery
• With IPv4, every router can fragment packets, if needed.
If a router cannot forward a packet because the MTU of
the next link is smaller than the packet it has to send, the
router fragments the packet. It cuts it into slices that fit the
smaller MTU and sends it out as a set of fragments. The
packet is then reassembled at the final destination.
Depending on the network design, an IPv4 packet may be
fragmented more than once during its travel through the
network.
• With IPv6, routers do not fragment packets anymore; the
sender takes care of it. Path MTU discovery tries to
ensure that a packet is sent using the largest possible
size that is supported on a certain route. The Path MTU is
the smallest link MTU of all links from a source to a
destination.
27. Path MTU Discovery (cont.)
• First, a host assumes that the Path MTU is the same as the MTU of
the first hop link and it uses that size.
• If the packet is too big for a certain router along the path to deliver the
packet to the next link, the router discards the packet and sends back
an ICMPv6 Packet Too Big message.
• Recall that this message type includes the MTU size of the next hop
link.
• The host now uses this MTU for sending further packets to the same
destination.
• The host will never go below the IPv6 minimum MTU size of 1280
bytes, however the process of receiving a Packet Too Big message
and reducing the size of the packets can happen more than once,
before the packet reaches its destination.
• The discovery process ends when the packets arrive at the final
destination.
28. Multicast Group Management
• Multicast group addresses are used as an identifier for a group of
nodes.
• They are identified by a high-order byte of FF. A protocol is required
to manage the efficient routing of packets with multicast group
addresses as a destination.
• Multicast group management in IPv4 is done through Internet Group
Management Protocol (IGMP).
• IPv6 uses ICMPv6 messages for the same functionality; development
was based on IGMPv2 specifications. It is now called Multicast
Listener Discovery (MLD),
• All MLD messages are sent with a link-local IPv6 source address and
a hop limit of one to make sure they remain in the local network. If the
packet has a Hop-by-Hop Options header, it has the Router Alert flag
set. Thus, routers will not ignore the packet, even if they are not
listening to the multicast group address in question.
29. Multicast Group Management (cont.)
• The Type field is 130 for Multicast Listener Queries,
131 for Multicast Listener Reports, or 132 for
Multicast Listener Done messages.
• There are two types of query messages. One is a
general query that is used to determine which
multicast group addresses have listeners on a link.
• The other is an address specific query that is used
to determine whether there are listeners for a
specific address on a link.
• The Maximum Response Delay field is used only in
query messages. This is the maximum allowed
delay (in milliseconds) in which a node has to send
a report if it has a listener. In all other messages,
this field is set to 0.
• The Multicast Address field is set to 0 in a general
query. In an address-specific query, it contains the
multicast group address to be queried. In report and
done messages, this field contains the multicast
group to which a member listens or the group it is
leaving.
30. Multicast Group Management (cont.)
• Routers use MLD to discover which multicast addresses have
listeners on each of their links. For each attached link, the router
keeps a list of listener addresses.
• General queries are sent to the link-local scope all-nodes multicast
address FF02::1. Any station that wants to send a report in answer to
a query starts a timer when it receives the query and is supposed to
wait some random delay before sending the report. The maximum
delay is the one specified in the Maximum Response Delay field in the
query. If within that delay, the station sees another station sending a
report, it stops the process. Thus, multiple reports for the same
address can be avoided. Group membership join reports and
terminations are sent to the address in question.
• The link-local scope all-nodes address (FF02::1) is a special address.
It never sends a membership report or a done message. If an address
has a scope of 1 (node-local), MLD messages are never sent.