|
|
Installing and Administering Internet Services: HP 9000 Networking > Chapter 9 Configuring mroutedOverview of Multicasting |
|
mrouted implements the Distance-Vector Multicast Routing Protocol (DVMRP). DVMRP is an Interior Gateway Protocol (IGP) used for routing multicast datagrams within an autonomous network. The primary purpose of DVMRP is to maintain the shortest return paths to the source of the multicast datagrams. This is accomplished by using topological knowledge of the network to implement a multicast forwarding algorithm called Truncated Reverse Path Broadcasting (TRPB). mrouted structures routing information in the form of a pruned broadcast delivery tree, which contains only routing information to those subnets which have identified themselves as having members of the destination multicast group. In other words, each router determines which of its virtual network interfaces are in the shortest path tree. In this way, DVMRP can intelligently decide if an IP multicast datagram needs to be forwarded. Without such a feature, the network bandwidth can easily be saturated through the forwarding of unnecessary datagrams. Since DVMRP routes only multicast datagrams, routing of unicast or broadcast datagrams must be handled using a separate routing process. To support multicasting across subnets that do not support IP multicasting, DVMRP provides a mechanism called tunnelling. Tunnelling forms a point-to-point link between pairs of mrouted routers by encapsulating the multicast IP datagram within a standard IP unicast datagram using the IP-in-IP protocol (IP protocol number 4). This unicast datagram, containing the multicast datagram, is then routed through the intervening routers and subnets. When the unicast datagram reaches the tunnel destination, which is another mrouted router, the unicast datagram is stripped away and the mrouted daemon forwards the multicast datagram to its destination(s). The following figure shows a tunnel formed between a pair of mrouted routers. In this figure, mrouted router R1 receives a multicast packet from node M. Since R1 is configured as one end of a tunnel, R1 encapsulates the IP multicast packet in a standard unicast IP packet addressed to mrouted router R2. The packet, now treated as a normal IP packet, is sent through the intervening, non-multicast network to R2. R2 receives the packet and removes the outer IP header, thereby restoring the original multicast packet. R2 then forwards the multicast packet through its network interface to node N. IP internet addresses are 32-bit addresses. Each host on the internet is assigned a unique IP address. There are four classes of IP addresses, identified as Class A, Class B, Class C, and Class D. Class D IP addresses are identified as IP multicast addresses. Class A, Class B, and Class C IP addresses are composed of two parts, a netid (network ID) and a hostid (host ID). Class D IP addresses are structured differently and are of the form: Bits 0 through 3 identify the address as a multicast address. Bits 4 through 31 identify the multicast group. Multicast addresses are in the range 224.0.0.0 through 239.255.255.255. Addresses 224.0.0.0 through 224.0.0.255 are reserved, and address 224.0.0.1 is permanently assigned to the all hosts group. The all hosts group is used to reach, on a local network, all hosts that participate in IP multicast. The addresses of other well-known permanent multicast groups are published in the "Assigned Numbers" RFC (RFC-1060, March 1990). IP multicast addresses can be used only as destination addresses and should never appear in the source address field of a datagram. It should also be noted that ICMP (Internet Control Message Protocol) error messages are not generated for multicast datagrams. Since IP internet addressing is a software manifestation of the underlying physical network, IP addresses must be mapped to physical addresses that are understood by the hardware comprising the network. As such, IP multicast addresses are mapped to 802.3/Ethernet multicast addresses. The IP multicasting addressing scheme, like that of Ethernet's, uses the datagram's destination address to indicate multicast delivery. When mapping an IP multicast address to an Ethernet multicast address, the low-order 23 bits of the IP multicast address are placed into the low-order 23 bits of the special Ethernet multicast address. The hexadecimal value of the special Ethernet multicast address is 01-00-5E-00-00-00. The resultant Ethernet address, however, is not unique since only 23 of the 28 bits representing the multicast address are used. A multicast group is comprised of hosts that have indicated their intent to join the multicast group by listening to the same IP multicast address. Group membership is dynamic in that a host may join or leave a group at any time. A host may be a member of one or more groups simultaneously. Additionally, a host is allowed to send multicast datagrams to a group without being a member of the group. Multicast addresses are often temporary in that they are assigned to transient groups, such as when users run an application that dynamically registers to specific multicast addresses, and are then discarded when all members of the group have left. Some multicast addresses may be well-known addresses assigned to permanent groups that always exist, even when their membership is empty. Both hosts and mrouted routers that participate in IP multicast use the Internet Group Management Protocol (IGMP) to communicate multicast group information among themselves. Hosts use IGMP to inform mrouted routers that they are joining a group. mrouted routers use IGMP to pass multicast routing information to other mrouted routers as well as to poll the hosts to determine whether the host is still an active group member. IGMP uses IP datagrams to carry information and is a TCP/IP standard that must be present on all systems that participate in IP multicast. While IGMP defines a standard for communicating information, it does not define a standard for how the multicast information is propagated among multicast routers. Consequently, DVMRP enables multicast routers to efficiently communicate group membership information among themselves. DVMRP uses IGMP messages to carry routing and group membership information. DVMRP also defines IGMP message types that enable hosts to join and leave multicast groups and that allow multicast routers to query one another for routing information. |
|