300 likes | 894 Views
ICMPv6. Feng Z h ou SW2 ZyXEL Communications Corp. 03/27/2006. Outline. Review ICMPv4 Overview of ICMPv6 ICMPv6 Error Messages ICMPv6 Informational Messages ICMPv4 vs. ICMPv6 Path MTU Discovery Q&A. Review ICMPv4. ICMPv4 Header protocol field in IPv4 header is 1. Type Code
E N D
ICMPv6 Feng Zhou SW2 ZyXEL Communications Corp. 03/27/2006
Outline • Review ICMPv4 • Overview of ICMPv6 • ICMPv6 Error Messages • ICMPv6 Informational Messages • ICMPv4 vs. ICMPv6 • Path MTU Discovery • Q&A
Review ICMPv4 • ICMPv4 Header • protocol field in IPv4 header is 1 Type Code Chucksum Message Body ||||||| ||||||| ||||||||||||||| ……………
Overview of ICMPv6 • Next Header = 58 • Functions • Reporting errors • Diagnostic function for troubleshooting • Additional information message • ND (Neighbor Discovery) • MLD (Multicast Listener Discovery)
Overview of ICMPv6 • Types of ICMPv6 Messages • Error Messages • Report forwarding or delivery errors by either a router or the destination host • Informational Messages • Provide a simple diagnostic capability to aid in troubleshooting • MLD and ND
Overview of ICMPv6 • ICMPv6 Header Type(8bits): Indicates the type of ICMPv6 message. Code(8bits): Differentiates among multiple messages within a given message type. Chucksum(16bits): Stores a checksum of the ICMPv6 message. Message Body: Contains ICMPv6 message-specific data. Type Code Chucksum Message Body ||||||| ||||||| ||||||||||||||| ……………
ICMPv6 Error Messages • Type: 0~127 (the first bit of Type field is 0) • Consist • Destination Unreachable • The packet cannot be forwarded to the destination node or upper-layer protocol • Packet Too Big • The packet cannot be forwarded because the link MTU on the forwarding interface of a router is smaller than the size of the IPv6 packet • Time Exceeded • The Hop Limit field in the IPv6 header becomes zero after decrementing its value during the forwarding process • Parameter Problem • There is an error in the IPv6 header or an extension header that prevents IPv6 from performing additional processing
ICMPv6 Error Messages • Rate limiting • To conserve network bandwidth, ICMPv6 error messages are not sent for every error encountered, they are rate limiting • Rate limiting can be based on either of the following: • A timer ● One error message per source or any source for every T ms. RFC 2463 suggests a value of 1000 ms • A percentage of bandwidth ● Error messages sent per interface is some percentage P of the link's bandwidth. RFC 2463 suggests a value of 2%
Destination Unreachable • Message Structure • Portion of Discarded Packet: fit as much invoking packet as possible without exceeding the minimum IPv6 MTU Type Code Chucksum Unused Portion of Discarded Packet =1 ||||||| =0~4 ||||||| ||||||| ||||||| ||||||| ||||||||||||||||| |||||||| ………………………
Destination Unreachable • Code Field Value
+ Frame: Base frame properties + ETHERNET: EType = IPv6 IP6: Version = 6 (0x6) IP6: Traffic Class = 0 (0x0) IP6: Flow Label = 0 (0x0) IP6: Payload Length = 88 (0x58) IP6: Next Header = 58 (ICMP6) IP6: Hop Limit = 128 (0x80) IP6: Source Address = fec0::2:201:2ff:fe44:87d1 IP6: Destination Address = fec0::2:260:97ff:fe02:6e8f IP6: Payload: Number of data bytes remaining = 88 (0x0058) ICMP6: Destination Unreachable (No route) ICMP6: Type = 1 (Destination Unreachable) ICMP6: Code = 0 (No route) ICMP6: Checksum = 0xD498 ICMP6: Unused ICMP6: Data: Number of data bytes remaining = 80 (0x0050)
Packet Too Big • Message Structure • MTU: stores the link MTU of the interface over which the packet was being forwarded Type Code Chucksum MTU Portion of Discarded Packet =2 ||||||| =0 ||||||| ||||||| ||||||| ||||||| ||||||||||||||||| |||||||| ………………………
Time Exceeded • Message Structure • Code • 0 (Hop Limit Exceeded in Transit) • Sent by a router when the Hop Limit field in the IPv6 header is decremented to 0, or this value of an arriving packet is 0 • 1 (Fragment Reassembly Time Exceeded) • Sent by a host when the fragmentation reassembly time of the destination host expires Type Code Chucksum Unused Portion of Discarded Packet =3 ||||||| =0 or 1 ||||||| ||||||| ||||||| ||||||| ||||||||||||||||| |||||||| ………………………
Parameter Problem • Message Structure • Pointer: indicates the byte offset (starting at 0) in the IPv6 packet at which the error was encountered Type Code Chucksum Pointer Portion of Discarded Packet =4 ||||||| =0~2 ||||||| ||||||| ||||||| ||||||| ||||||||||||||||| |||||||| ………………………
Parameter Problem • Code Field Value • Unrecognized IPv6 Option Encountered message is used when both of the following are true: • An option in a Hop-by-Hop Options header or a Destination Options header is not recognized. • Within the option's Option Type field, the 2 high-order bits are set to either 10 (binary) or 11 (binary)
ICMPv6 Informational Messages • Type: 128~255 (the first bit of Type is 1) • Consist • Echo Request • Sent to a destination to solicit an immediate Echo Reply message. The Echo Request/Echo Reply message facility provides a simple diagnostic function to aid in the troubleshooting of a variety of reach ability and routing problems • Echo Reply • Sent in response to the receipt of an ICMPv6 Echo Request message
Echo Request • Message Structure • The Identifier and Sequence Number fields are set by the sending host so that they can be used to match an incoming Echo Reply message with a sent Echo Request message Type Code Chucksum Identifier Sequence Number Data =128 ||||||| =0 ||||||| ||||||| ||||||| ||||||| ||||||| ||||||| ||||||| ………………………
Echo Reply • Message Structure • The Identifier, Sequence Number, and Data fields are set with the same values as those in the Echo Request message that prompted the Echo Reply Type Code Chucksum Identifier Sequence Number Data =129 ||||||| =0 ||||||| ||||||| ||||||| ||||||| ||||||| ||||||| ||||||| ………………………
Path MTU Discovery • PMTU • the smallest link MTU supported by any link in the path between a source and a destination • Link MTU • the maximum-sized link-layer payload that can be sent on the link
Path MTU Discovery • PMTU Discovered Process 1. The sending node assumes that the destination PMTU is the link MTU of the interface on which the traffic is being forwarded 2. The sending node sends IPv6 packets at the assumed PMTU size 3. If a router on the path is unable to forward the packet, it sends an ICMPv6 Packet Too Big message back. The ICMPv6 Packet Too Big message contains the link MTU of the interface on which forwarding failed 4. The sending node sets the new assumed PMTU to the value of the MTU field in the ICMPv6 Packet Too Big message The sending node starts again at step 2 and repeats steps 2 through 4 until when either no Packet Too Big messages are received or an response oracknowledgment packet is received from the destination.
Changes in PMTU • Decreases in path MTU • Immediately discovered through the receipt of ICMPv6 Packet Too Big messages • Increases in path MTU • Detected by the sending node. The sending node can attempt to send a larger IPv6 packet after a minimum of 5 minutes (10mins are recommended) upon receiving an ICMPv6 Packet Too Big message
Path MTU Discovery Flowchart Set PMTU to Link MTU Send packet at PMTU Size Packet Too Big received Y Set PMTU to Link MTU N PMTU < Link MTU PMTU timer expired? Y Y N N
Q&A Q & A
Training course arrangement Date Subject Lecturer 03/10 Introduction to IPv6 Joe Zhao IPv6 Addressing 03/16 Milo Liu 03/23 IPv6 Header & Extensions Joe Zhao 03/27 ICMPv6 Feng Zhou Neighbor Discovery Protocol Billy Bian 03/30 Multicast Listener Discovery 03/30 Jeffrey Zhou Address Autoconfigurator Feng Zhou 04/06 IPv6 Routing 04/06 Milo Liu
Training course arrangement Date Subject Lecturer Joe Zhou 04/13 IPv6 Migration Mechanisms 04/20 IPv6 Mobility Milo Liu Setting Up an IPv6 Test Lab