Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
11.04.2015
Размер:
22.9 Mб
Скачать

Chapter 7 Multicast Listener Discovery and MLD Version 2

177

Alert Option described in RFC 2711. It is used to ensure that routers process MLD messages that are sent to multicast addresses for which the router is not a group member.

MLD Messages

There are three types of MLD messages:

1.Multicast Listener Query (ICMPv6 Type 130)

2.Multicast Listener Report (ICMPv6 Type 131)

3.Multicast Listener Done (ICMPv6 Type 132)

All three MLD messages share the same message structure.

Multicast Listener Query

An IPv6 multicast-capable router uses the Multicast Listener Query message to query a subnet for multicast group membership. It is equivalent to the IGMPv2 Host Membership Query message. There are two types of Multicast Listener Query messages:

General query The general query is used to periodically query all hosts on a subnet for the presence of multicast group members of any multicast address. The only multicast addresses that are not reported are the link-local scope, all-nodes multicast address (FF02::1), and all multicast addresses with a scope of 0 (reserved) or

1 (interface-local).

Multicast-address-specific query The multicast-address-specific query is used to query all hosts on a subnet that are members of a specific multicast group.

The two message types are distinguished by the Destination Address field in the IPv6 header and the Multicast Address field within the Multicast Listener Query message.

In the IPv6 header of a Multicast Listener Query message, you will find the following information:

The Hop Limit field is set to 1.

The Source Address field is set to the link-local address of the interface on which the query is being sent.

The Destination Address field is the specific multicast address being queried. For the general query, the Destination Address field is set to the link-local scope, all-nodes multicast address (FF02::1). For the multicast-address-specific query, the Destination Address field is set to the specific multicast address being queried.

Figure 7-2 shows the structure of the Multicast Listener Query message.

178 Understanding IPv6, Second Edition

Type = 130

Code = 0

Checksum

Maximum Response Delay

Reserved = 0

Multicast Address

Figure 7-2 The structure of the Multicast Listener Query message

The following list describes the fields in the Multicast Listener Query message:

Type The value of this field is 130.

Code The value of this field is 0.

Checksum The value of this field is the ICMPv6 checksum.

Maximum Response Delay The Maximum Response Delay field indicates the maximum amount of time in milliseconds within which a multicast group member must report its membership by using an MLD Multicast Listener Report message. The size of this field is 16 bits.

When a host that is a group member of a given multicast address receives a Multicast Listener Query, the host uses the value of the Maximum Response Delay field to calculate a random response time less than or equal to the current value of the field. Each host on the subnet that could report its membership sets a different random response time. The host on the subnet whose random response time expires first sends the Multicast Listener Report message. When the other hosts that could report group membership for the multicast address receive the Multicast Listener Report message, they abandon the attempt to send their own Multicast Listener Report message. This process results typically in only one host member reporting group membership for a given multicast address on each subnet.

Reserved This is a 16-bit field reserved for future use and set to 0.

Multicast Address For the general query, the Multicast Address field is set to the unspecified address (::). For the multicast-address-specific query, the Multicast Address field is set to the specific multicast address that is being queried. The size of this field is 128 bits.

Multicast Listener Report

The Multicast Listener Report message is used by a listening node to either immediately report its interest in receiving multicast traffic at a specific multicast address or respond to a Multicast Listener Query message (either a general or multicast-address-specific query). It is equivalent to the IGMPv2 Host Membership Report message.

Chapter 7 Multicast Listener Discovery and MLD Version 2

179

In the IPv6 header of a Multicast Listener Report message, you will find the following information:

The Hop Limit field is set to 1.

The Source Address field is set to the link-local address of the interface on which the report is being sent. If the Multicast Listener Report message is for a solicited-node multicast address corresponding to a unicast address for which duplicate address detection is not yet complete, the source address is set to the unspecified address (::).

The Destination Address field is the specific multicast address being reported.

Figure 7-3 shows the structure of the Multicast Listener Report message.

Type

 

= 131

Code

 

= 0

 

 

Checksum

 

 

 

 

Maximum Response Delay

 

= 0

 

Reserved

 

= 0

 

Multicast Address

 

 

 

 

 

 

 

 

 

 

 

 

Figure 7-3 The structure of the Multicast Listener Report message

The fields in the Multicast Listener Report message are:

Type The value of this field is 131.

Code The value of this field is 0.

Checksum The value of this field is the ICMPv6 checksum.

Maximum Response Delay This field is not used in the Multicast Listener Report message and is set to 0.

Reserved This is a 16-bit field reserved for future use and set to 0.

Multicast Address The Multicast Address field is set to the specific multicast address that is being reported.

Network Monitor Capture

Here is an example of an MLD Multicast Listener Report message as displayed by Network Monitor 3.1 (capture 07_01 in the \NetworkMonitorCaptures folder on the companion CD-ROM):

Frame:

-Ethernet: Etype = IPv6

+DestinationAddress: 3333FF B17480

+SourceAddress: 009027 66C140 EthernetType: IPv6, 34525(0x86dd)

-Ipv6: Next Protocol = ICMPv6, Payload Length = 32

180Understanding IPv6, Second Edition

+Versions: IPv6, Internet Protocol, DSCP 0 PayloadLength: 32 (0x20)

NextProtocol: HOPOPT, IPv6 Hop-by-Hop Option, 0(0)

HopLimit: 1 (0x1)

SourceAddress: FE80:0:0:0:290:27FF:FE66:C140

DestinationAddress: FF02:0:0:0:0:1:FFB1:7480

-HopbyHopHeader: NextHeader: ICMPv6 ExtHdrLen: 0(8 bytes)

-OptionRouterAlert:

-OptionType: Router Alert

Action: (00......) Skip over this option

C: (..0.....) Option Data does not change en-route

OptionType: (...00101) Router Alert

OptDataLen: 2 bytes

Value: Datagram contains a Multicast Listener Discovery message, 0 (0x0)

-OptionPadN:

-OptionType: PadN

Action:

(00......)

Skip over this option

C:

(..0.....)

Option Data does not change en-route

OptionType: (...00001)

PadN

OptDataLen: 0

bytes

 

OptionData: 0

bytes

 

- Icmpv6: Multicast

Listener Report

MessageType: Multicast Listener Report, 131(0x83)

-MulticastListener: Code: 0 (0x0)

Checksum: 44424 (0xAD88)

+MaximumResponseCode: 0 Reserved: 0 (0x0)

MulticastAddress: FF02:0:0:0:0:1:FFB1:7480

Notice the mapping of the destination IPv6 multicast address (FF02::1:FFB1:7480) and the destination MAC multicast address (3333FFB17480) (corresponding bits underlined), and note the use of the IPv6 Router Alert option (Option Type 5) and the Padding option in the Hop-by-Hop Options header.

Multicast Listener Done

The Multicast Listener Done message is equivalent to the IGMPv2 Leave Group message, and it is used to inform the local routers that there might not be any more group members of a specific multicast address on the subnet. A local router verifies that there are no more group members on the subnet.

The Multicast Listener Done message is sent when the group member that responded to the last Multicast Listener Query message for the multicast address on the subnet

leaves the multicast group. Notice that the group member sending the Multicast Listener Done message might not truly be the last group member on the subnet. This is why membership for the group is verified by a local router. This simple method of reporting what might be the last group member prevents a host from having to track the presence of

Chapter 7 Multicast Listener Discovery and MLD Version 2

181

other multicast group members on their subnet for each multicast group for which the host is a member.

Because IPv6 multicast routers do not track how many group members are on a subnet for a given multicast group, every subnet must be treated as if there were multiple group members present. The host that sends the Multicast Listener Done message might not be the last group member. Therefore, upon receiving a Multicast Listener Done message, the multicast querying router on the subnet immediately sends a multicast-address-specific query for the multicast address being reported in the Multicast Listener Done message. If there are additional group members, one of them will send a Multicast Listener Report message.

In the IPv6 header of a Multicast Listener Done message, you will find the following settings:

The Hop Limit field is set to 1.

The Source Address field is set to the link-local address of the interface on which the report is being sent.

The Destination Address field is set to the link-local scope, all-routers multicast address (FF02::2).

Figure 7-4 shows the structure of the Multicast Listener Done message.

Type

= 132

Code

= 0

 

 

Checksum

 

 

 

 

Maximum Response Delay

 

 

= 0

 

Reserved

 

 

= 0

 

Multicast Address

 

 

 

 

 

 

 

 

 

 

 

 

Figure 7-4 The structure of the Multicast Listener Done message

Following is a list of the fields in the Multicast Listener Done message:

Type The value of this field is 132.

Code The value of this field is 0.

Checksum The value of this field is the ICMPv6 checksum.

Maximum Response Delay This field is not used in the Multicast Listener Done message and is set to 0.

Reserved This is a 16-bit field reserved for future use and set to 0.

Multicast Address The Multicast Address field is set to the specific multicast address to which the sender is no longer listening.

Соседние файлы в папке Lecture 2_10