Add Book to My BookshelfPurchase This Book Online

Chapter 3 - Internet Group Management Protocol

Cisco Multicast Routing & Switching
William R. Parkhurst
  Copyright © 1999 The McGraw-Hill Companies

RFC 1112, Host Extensions for IP Multicasting (IGMP Version 1)
RFC 1112 obsoletes RFCs 988 and 1054 and details the requirements of a host in order for it to be able to support IP multicasting. The multicasting support needed is for hosts to be able to join and leave multicast groups with IP addresses in the range 224.0.0.0 to 239.255.255.255. Also specified are the mechanisms for hosts to be able to receive and send multicast traffic.
A host can have one out of three levels of multicasting capabilities. Level 0 defines a host that has no multicasting functionality beyond being able to detect and discard an IP Class D multicast packet. A level 1 host can send but not receive IP multicast traffic, while a level 2 host is a fully capable multicast entity and can send and receive multicast traffic. Level 2 hosts are required to implement IGMP and we will assume that all hosts in the following discussion are level 2 hosts. The relationship between IGMP and IP layered models is shown in Figure 3-3.
Figure 3-3: IGMP resides at the network layer of the IP layered model.
Sending an IGMP packet is really no different than sending a broadcast or unicast IP packet, although additional functionality is required for a level 2 host. The first required function concerns the TTL field in the IGMP packet. If a TTL value is not explicitly set, then the default TTL value should be set to 1 to prevent the IGMP traffic from leaving the host’s network. The second required function is for hosts that are connected to more than one network. The host should only transmit multicast traffic on one of the directly connected networks because, in the multicasting paradigm, routers have the responsibility of forwarding multicast traffic to other networks. The third and last function specifies what a host should do when sending a multicast packet to a group of which the host is also a member. The transmitted multicast packet should be looped back to the host and the received packet that the host just sent should be discarded.
Ethernet Multicast Addressing
The datalink layer also requires additional functionality for mapping Class D IP addresses to ethernet MAC addresses. The procedure outlined in the RFC also applies to FDDI, but a procedure is not specified for a token ring. The mapping from multicast to token ring layer 2 addresses presented here are the implementation on Cisco routers. The ethernet and FDDI layer 3 to layer 2 address mapping is relatively straightforward. The low-order 23 bits of the IP multicast address replace the low-order 23 bits of the ethernet multicast address 01:00:5E:00:00:00, as shown in Figure 3-4.
Figure 3-4: Formation of the ethernet multicast address
As you can see in Figure 3-4, nine bits in the group IP address do not take place in the mapping, the upper byte, and the most significant bit of the next-to-upper byte. The upper four bits of the upper byte are always 1110 because these are all Class D IP addresses. This means that in reality there are only five bits that are not involved in the mapping. Whatever the value of these bits, the multicast ethernet address is the same. Because there are 32 possible combinations of five bits, the mapping is not unique. In the example in Figure 3-2, 31 other Class D IP addresses map to the same multicast ethernet address.
Table 3-1: Class D multicast IP addresses that map to the multicast ethernet address 01:00:5E:41:0A:9A
224.65.10.154
225.65.10.154
226.65.10.154
227.65.10.154
228.65.10.154
229.65.10.154
230.65.10.154
231.65.10.154
232.65.10.154
223.65.10.154
234.65.10.154
235.65.10.154
236.65.10.154
237.65.10.154
238.65.10.154
239.65.10.154
224.193.10.154
225.193.10.154
226.193.10.154
227.193.10.154
228.193.10.154
229.193.10.154
230.193.10.154
231.193.10.154
232.193.10.154
233.193.10.154
234.193.10.154
235.193.10.154
236.193.10.154
237.193.10.154
238.193.10.154
239.193.10.154
Let’s examine the most significant byte of the IP address, 225.65.10.154. The byte 225 is represented in binary as 1110 0001. The upper four bits do not change because they are always 1110 for a Class D IP multicast address. The lower four bits have a range of values from 0000 to 1111, so the decimal range of values for the upper byte is 224 (224 + 0) to 239 (224 + 15). The most significant bit of the next-to-upper byte can be either 0 or 1, so this byte can be either 65 (0 + 65) or 193 (65 + 128). The upper byte can take on 16 values and the next-to-upper byte can take on two values, so there is a total of 32 Class D IP multicast addresses (16 x 2) that map to the multicast ethernet address 01 00 5E 41 0A 9A, as listed in Table 3-1. A host implementation must not only examine the ethernet address of the received multicast ethernet frame at layer 2 but must also examine the multicast IP address at layer 3 to determine if the packet is destined for a group that the host has joined.
Exercise 3-1
Determine which Class D IP multicast addresses map to the multicast ethernet address 01:00:5E:5F:00:01.
Solution.  We need to add the low-order 23 bits of the multicast ethernet address to the partial IP address 1110 xxxxx000 0000 0000 0000 0000 0000, which gives us
1110 xxxxx101 1111 0000 0000 0000 0001
where xxxx x = 0000 0—1111 1.
    With xxxx x = 0000 0, the IP address is 224.95.0.1.
    With xxxx x = 1111 1, the IP address is 239.223.0.1.
The other 30 possible IP addresses are found by substituting xxxx x with 0000 1—1111 0.
Token Ring Multicast Addressing
The bit order of the transmitted bytes for token ring is the opposite of ethernet. For example, the token ring address C0:00:00:05:00:01 has the binary representation
1100 0000 0000 0000 0000 0000 0000 0101 0000 0000 0000 0001
When written in ethernet form, the order of the bits in each byte is reversed, so the ethernet binary representation would be
0000 0011 0000 0000 0000 0000 1010 0000 0000 0000 1000 0000
which has the hexadecimal form
03:00:00:A0:00:80.
The mapping of a multicast Class D IP address for token ring can be accomplished using one of two methods. The first method is to map all Class D multicast IP addresses to a single token ring functional address as shown:
224.x.x.x-> C0:00:00:04:00:00
The general form of a token ring functional address is C0:00:00:04:xx:xx. Functional addresses are used for token ring functions, such as Ring Error Monitor. The last two bytes usually have only one bit set to 1 and a bit in the third byte is used to determine if this address is a functional address. The third byte of an ethernet multicast address is 5E, which, if used in a token ring to multicast IP address mapping, would trick the token ring hosts into accepting that the multicast address is functional. This is the reason that the same mapping method used for ethernet cannot be used for token ring. Mapping all IP multicast addresses to the same token ring functional address means that token ring end stations cannot determine if the multicast traffic is destined for them until the packet is examined at layer three. If multicast traffic is present on the token ring, then every host must examine the packet at layer three (in software), instead of at layer two (by the network interface card). This can put a strain on end stations that are not listening for packets of that particular multicast group.
The other method of mapping multicast IP addresses to token ring addresses is to simply map every multicast IP address to the broadcast address:
224.x.x.x -> FF:FF:FF:FF:FF:FF
To force the token ring interface to use the functional address, use the following command in interface configuration mode:
interface Token-ring 0
ip multicast use-functional

 


 
Books24x7.com, Inc © 2000 –  Feedback