IGMP Overview, Features, and Configurations | PDF
Document Details
![ProsperousLlama2776](https://quizgecko.com/images/avatars/avatar-14.webp)
Uploaded by ProsperousLlama2776
Tags
Summary
This document from Huawei covers the core concepts and configurations of IGMP, a crucial protocol for managing multicast members in the TCP/IP suite. It explains IGMP's role in multicast networks, including features like snooping, SSM mapping, and proxy mechanism to enhance and improve multicast traffic forwarding, and addresses common challenges in an Ethernet network.
Full Transcript
Demands of Forwarding on a Multicast Network ⚫ IP multicast transmits packets from a source to a group of receivers. In the multicast communication model, the multicast source does not need to know the locations of receivers, and multicast data can be sent to multicast group m...
Demands of Forwarding on a Multicast Network ⚫ IP multicast transmits packets from a source to a group of receivers. In the multicast communication model, the multicast source does not need to know the locations of receivers, and multicast data can be sent to multicast group members only through the multicast network. ⚫ The multicast network needs to know the locations of multicast group members and the multicast groups that the members join so that the multicast network can forward multicast data to the members. ⚫ How does the multicast network discover multicast group members? Do group members Where are need to receive multicast group multicast data? Multicast members? packet Multicast group Multicast member source Multicast network Which multicast group do group members need to receive packets of? Multicast group member Are group members still in the group? Multicast group member 5 Huawei Confidential Multicast Group Member Discovery ⚫ A multicast network can discover multicast group members in either of the following modes: Manual static configuration: An interface connected to multicast group members is manually specified on a multicast router, and information about the multicast group members is statically configured. ◼ The manual static mode is not flexible and requires heavy configuration workload. However, it features high stability and can quickly establish a multicast forwarding path for new group members. Dynamic discovery: The multicast network obtains the interface connected to multicast group members and their group joining information through IGMP messages. ◼ Being flexible and easy to configure, the dynamic discovery mode is widely used on the live network. ⚫ After the multicast network obtains the locations of group members and the multicast groups that the group members join, multicast packets can be forwarded accordingly. Joins multicast group G1. Multicast data forwarding according to group joining information Multicast group Multicast member The multicast source packet sends packets of Multicast network multicast group G1. Multicast group member Joins multicast group G1. 6 Huawei Confidential Multicast packet forwarding on a multicast network depends on an MDT. For details about the MDT, see PIM Implementation and Configurations. IGMP Overview ⚫ In the TCP/IP protocol suite, IGMP is responsible for managing IP multicast members. It establishes and maintains multicast group memberships between IP hosts and the multicast routers that are directly adjacent to the IP hosts. ⚫ IGMP manages multicast members through IGMP messages exchanged between multicast group members and multicast routers. IGMP messages are encapsulated in IP packets. IGMP Group IGMP Routing Table ⚫ There are three versions of IGMP: Multicast Multicast Multicast Outbound network IGMPv1 Group Group Interface G1 G1 IF1 IGMPv2 G2 G2 IF1 IF1 IGMP message IGMPv3 IGMP-capable interface ⚫ After exchanging IGMP messages with group members, multicast routers generate IGMP routing entries and IGMP group entries. ⚫ IGMP routing entries and IGMP group entries help the Multicast group Multicast group multicast routers generate multicast routing entries. member 1 joins member 2 joins multicast group G1. multicast group G2. 7 Huawei Confidential IGMP Group Entries and Routing Entries ⚫ IGMP generates IGMP routing entries and IGMP group entries, based on which multicast routing entries are generated. ▫ An IGMP group entry is created when an IGMP Report ▫ IGMP routing entries are used to extend the outbound message is received from a host. This entry is used to interfaces of multicast routing entries. maintain group joining information and instruct multicast ▫ An IGMP routing entry is as follows: routing protocols (such as PIM) to create a corresponding (*, G) entry. ▫ An IGMP group entry is as follows: GigabitEthernet1/0/0(192.168.1.254): 00001. (*, 239.0.0.1) //Receives multicast data from any Total 1 IGMP Group reported multicast source. Group Address Last Reporter Uptime Expires List of 1 downstream interface 239.0.0.1 192.168.1.1 00:02:04 00:01:17 GigabitEthernet1/0/0 (192.168.1.254) //Outbound interface (Multicast group) (IP address of a group member) Protocol: IGMP 8 Huawei Confidential IGMP Entries and Multicast Routing Entries ⚫ On the last-hop multicast router (multicast leaf router), a multicast routing table is formed by summarizing IGMP routing entries, IGMP group entries, and the multicast protocol routing table (PIM routing table). ⚫ IGMP routing entries and IGMP group entries provide multicast group addresses and outbound interfaces for the multicast routing table. IGMP group entry GigabitEthernet1/0/0(192.168.1.254): Total 1 IGMP Group reported Group Address Last Reporter Uptime Expires 239.0.0.1 192.168.1.1 00:02:04 00:01:17 (Multicast group) (IP address of a group member) Multicast routing entry (1.1.1.1, 239.0.0.1) Instructs the multicast Upstream Interface: GigabitEthernet1/0/1 router to create a PIM PIM routing table Downstream interfaces routing entry. IGMP routing entry 1: GigabitEthernet1/0/0 Summarizes 00001. (1.1.1.1, 239.0.0.1) //Receives multicast data from any multicast multicast source. routing List of 1 downstream interface information. GigabitEthernet1/0/0 (192.168.1.254) //Outbound interface Protocol: IGMP 9 Huawei Confidential For details about the PIM protocol, see PIM Implementation and Configurations. Contents 1. IGMP Introduction ▫ Overview ◼ Implementation of IGMP 2. IGMP Feature Introduction 3. IGMP Configurations 10 Huawei Confidential IGMPv1 IGMPv2 IGMPv3 Basic Concepts of IGMPv1 ⚫ IGMPv1 uses a query-report mechanism to manage multicast groups. Multicast network ⚫ The query-report mechanism is implemented through two types of messages: IGMP querier General Query message: a message sent by a querier to all General Query hosts and routers on the local shared network to discover the multicast groups that have members. Report message: Hosts send Report messages to the querier to request to join a multicast group or respond to Query messages. Multicast group Multicast group ⚫ IGMP messages are multicast. Therefore, a multi-access member 2 joins member 1 joins network requires only one multicast router to send multicast group G1. multicast group G2. Query messages. This multicast router is called an General Query message Report message IGMP querier. IGMP-capable interface 11 Huawei Confidential IGMPv1 IGMPv2 IGMPv3 IGMPv1 Message Format ⚫ Both IGMPv1 General Query messages and Report messages are multicast messages with the destination address 224.0.0.1. ⚫ IGMPv1 General Query messages are similar to Report messages in format, including three major fields: Version, Type, and Group Address. 0 3 7 15 31 Version Type Unused Checksum Group Address Field Description Version IGMP version. In IGMPv1 messages, this field is 1. Message type. The following two message types are available: Type 0x11: General Query message 0x12: Report message Multicast group address. In a General Query message, this Group Address field is 0s. In a Report message, this field is set to the address of the multicast group that the member requests to join. 12 Huawei Confidential IGMPv1 IGMPv2 IGMPv3 IGMPv1 Group Joining Mechanism ⚫ Through General Query messages and Report messages, the IGMP querier can know which multicast groups have members on the network segment. ⚫ The basic process of IGMPv1 group joining is as follows: 3 After receiving the Report IGMP Routing Table IGMP Group message, the IGMP querier Multicast Outbound Multicast generates an IGMP routing Multicast Information Interface Group entry and an IGMP group entry. network *, G1 IF1 G1 IF2 IGMP querier 1 The IGMP querier IF1 sends a General General Query Query message. 2 Responds with a Report message. Does not respond with Report a Report message due to Report message General Query message suppression. Report message (member 1) Report message (member 2) Multicast group Multicast group member 1 joins member 2 joins IGMP-capable interface multicast group G1. multicast group G1. 13 Huawei Confidential The General Query and Report process is as follows: ▫ The IGMP querier sends a General Query message, with destination address 224.0.0.1 (indicating all hosts and routers on the network segment). All group members start a timer when they receive the General Query message. The IGMP querier sends General Query messages at intervals. The interval is configurable, and the default interval is 60 seconds. Group members 1 and 2 are members of G1, and start Timer-G1 upon reception of the General Query message. By default, the value of the timer is a random value ranging from 0 to 10, in seconds. ▫ The group member whose timer expires first sends a Report message for the group. ▫ After receiving the Report message from group member 1, the IGMP querier knows that members of G1 exist on the local network segment. Then, the IGMP querier generates an IGMP group entry and (*, G1) IGMP routing entry. The asterisk (*) indicates any multicast source. Once the IGMP querier receives data of G1, it forwards the data to this network segment. Report message suppression mechanism: ▫ The IGMP querier sends General Query messages at intervals. The interval is configurable, and the default interval is 60 seconds. Group members 1 and 2 are members of G1, and start Timer-G1 upon reception of the General Query message. By default, the value of the timer is a random value ranging from 0 to 10, in seconds. ▫ Assuming that Timer-G1 on group member 1 expires first, group member 1 sends a Report message with G1 address as the destination address to the network segment. When group member 2 receives the Report message from group member 1, it stops Timer-G1 and does not send a Report message for G1. This mechanism reduces the number of Report messages transmitted on the network segment. IGMPv1 IGMPv2 IGMPv3 IGMPv1 Querier Election Mechanism Both the IGMPv1 querier ⚫ General Query messages are multicast. Therefore, a and non-querier can receive Report messages network segment requires only one querier to query and generate IGMP entries. information about all group members. IGMP Group IGMP Group ⚫ IGMPv1 does not have its own querier election IGMP IGMP Routing Table Routing Table mechanism. Instead, it relies on the multicast routing IGMPv1 uses the PIM DR as the Multicast network protocol (PIM) to elect an IGMP querier. IGMPv1 querier. IGMP querier PIM DR election ⚫ IGMPv1 uses the unique assert winner or DR elected by General Query General Query PIM as the querier. The querier is the only device that sends Query messages on the local network segment. A non-IGMPv1 querier does not send General Query messages. ⚫ Both the querier and non-querier can receive Report Report messages with destination address 224.0.0.1. Therefore, they can generate both IGMP routing entries and IGMP Multicast group member group entries. General Query message Report message 14 Huawei Confidential The assert winner or DR is used to forward multicast traffic. Detailed functions of the assert winner or DR will be covered in the course of PIM Implementation and Configurations. IGMPv1 IGMPv2 IGMPv3 IGMPv1 Group Leaving Mechanism ⚫ IGMPv1 does not have Leave messages. After a group member leaves the multicast group, the member no longer responds to General Query messages. ⚫ If no group members exist in a multicast group on a network segment, the IGMP querier will not receive any Report messages from any group member on the network segment. In this case, the IGMP querier deletes the multicast forwarding entries of this group after a certain period (130s by default). IGMP Routing Table The multicast router can still 3 receive Report messages of G1 and Multicast Outbound therefore retains the IGMP routing Multicast Entries Interface entry of G1. network *, G1 IF1 IF2 *, G2 IF1 3 1 IGMP The multicast router does not receive The querier any Report messages of G2 within a querier periodically sends certain period. Then it deletes the General Query IF1 IGMP routing entry of G2. messages. General Query 2 All members in G2 have left the group, and the 2 Query message is not G1 still has a group responded to. Report General Query message member, and the member responds with Report message (member 1) a Report message. Report message (member 2) Multicast group member 1 Multicast group member 2 IGMP-capable interface joins multicast group G1. leaves multicast group G2. 15 Huawei Confidential Group Leaving Mechanism ▫ Assume that group member 2 wants to leave multicast group G2. ▪ When group member 2 receives the General Query messages from the IGMP querier, it does not respond with Report messages for G2. Because G2 no longer has members on this network segment, the IGMP querier will not receive Report messages for G2. After a certain period (130 seconds by default), the IGMP querier deletes the IGMP routing entry of G2. ▪ When group member 1 receives the General Query messages from the IGMP querier, it responds with Report messages for G1. The IGMP querier then retains the corresponding IGMP routing entry of G1. IGMPv1 IGMPv2 IGMPv3 IGMPv2 ⚫ IGMPv1 has the following defects in the group leaving IGMPv1 Defects and querier election mechanisms: Depends on PIM to IGMPv1 uses the timeout mechanism to monitor group elect an IGMP querier. Multicast network leaving status, and group members leave a group in silent PIM DR IGMP querier mode. Before the timer expires, multicast traffic is still IGMP querier election forwarded by the multicast router. General Query IGMPv1 querier election depends on PIM, which makes querier election inflexible. Before a multicast routing entry expires, the multicast ⚫ IGMPv2 overcomes the defects of IGMPv1. No group members exist router still sends multicast in the group, and no traffic according to the entry. IGMPv2 and IGMPv1 have similar group joining Report messages are responded with. mechanisms. The multicast IGMPv2 supports proactive group leaving. group member left the group. IGMPv2 supports querier election. Multicast traffic Report message General Query message IGMP-capable interface ⚫ IGMPv2 is compatible with IGMPv1. 16 Huawei Confidential IGMPv1 IGMPv2 IGMPv3 IGMPv2 Message Format ⚫ The following two types of messages are added to IGMPv2 to improve the group leaving mechanism: Leave message: sent by a group member to notify the querier on the local network segment that it has left a group. The destination address of Leave messages is 224.0.0.2. Group-Specific Query message: sent by a querier to a specified group on the local shared network to check whether the group has members. The destination address of Group-Specific Query messages is the address of the queried multicast group. ⚫ A new field, Max Response Time, is added to IGMPv2 General Query messages. This field can be configured to control members' response speed to Query messages. ⚫ The IGMPv2 message format is as follows: 0 7 15 31 Max Response Type Checksum Time Group Address 17 Huawei Confidential Fields in an IGMPv2 message: ▫ Type ▪ Message type. The four message type options are: ▪ 0x11: Query message. IGMPv2 Query messages include General Query and Group-Specific Query messages. ▪ 0x12: IGMPv1 Report message. ▪ 0x16: IGMPv2 Report message. ▪ 0x17: Leave message. ▫ Max Response Time: maximum time for a member to respond to a Query message with a Report message. ▪ For a General Query message, the default maximum response time is 10 seconds. ▪ For a Group-Specific Query message, the default maximum response time is 1 second. ▫ Group Address: ▪ In a General Query message, the group address is set to 0s. ▪ In a Group-Specific Query message, the group address is the address of the queried group. ▪ In a Report or Leave message, the group address is the address of the group that a member has joined or left. IGMPv1 IGMPv2 IGMPv3 IGMPv2 Querier Election Mechanism ⚫ The IGMPv2 group joining mechanism is the same as the IGMPv1 group joining mechanism, and is not mentioned here. ⚫ The querier election mechanism in IGMPv2 varies greatly from that in IGMPv1. IGMPv2 has an independent querier election mechanism. When multiple multicast routers exist on a shared network segment, the router with the lowest IP address is elected as the querier. 1 1 The multicast router Initially, each Initially, each with the lowest multicast router multicast router interface IP address is considers itself considers itself as elected as the querier. as a querier. Multicast network a querier. Multicast network RT1 RT2 IGMP querier Lowest High interface interface IP General Query General Query IP address address General Query Querier election Exchange IGMP General Query messages. 2 General Query message (RT1) Multicast General Query message (RT2) Multicast General Query message group member IGMP-capable interface group member IGMP-capable interface 18 Huawei Confidential Each non-querier starts a timer (Other Querier Present Timer). If a non-querier receives a Query message from the querier before the timer expires, it resets the timer; otherwise, it triggers a new round of querier election. IGMPv1 IGMPv2 IGMPv3 IGMPv2 Group Leaving mechanism ⚫ IGMPv2 uses Leave messages and Group-Specific Query messages to accelerate the discovery of IGMPv2 group 4 member leaving. Even if there is only one IGMP Routing Table group member, the multicast router still retains Multicast Outbound 2 After receiving a Leave the IGMP routing entry. Information Interface message, the querier sends Multicast Multicast *, G1 IF1 a Group-Specific Query network network message to check whether G1 has other members. IGMP IGMP querier querier 1 3 Group-Specific Query When a member of G1 If there are still other leaves the multicast group members on group, G1 sends a the network segment, Leave message to they reply with Report notify the querier. messages. Leave Report Multicast group member 1 Multicast group member 2 Multicast group member 1 Multicast group member 2 joins multicast group G1. leaves multicast group G1. joins multicast group G1. leaves multicast group G1. Group-Specific Query message Report message Leave message IGMP-capable interface IGMP-capable interface 19 Huawei Confidential A member sends a Leave message for G1 to all multicast routers on the local network segment. The destination address of the Leave message is 224.0.0.2. ▫ When the querier receives the Leave message, it sends Group-Specific Query messages for G1 to check whether G1 has other members on the network segment. The Group-Specific Query interval and Count are configurable. By default, the querier sends Group-Specific Query messages twice, at an interval of 1s. In addition, the querier starts the group membership timer (Timer-Membership). The value of the timer is the Group-Specific Query interval multiplied by Count. ▫ If G1 still has other members on the network segment, when receiving a Group-Specific Query message from the querier, they immediately respond with a Report message for G1. The querier then keeps maintaining the membership of G1 after receiving the Report message. ▫ If G1 has no members on the network segment, the querier will not receive any Report message for G1. When the Timer-Membership expires, the querier deletes the (*, G1) entry. Thereafter, if the querier receives multicast data of G1, it does not forward the data downstream. IGMPv1 IGMPv2 IGMPv3 Demand for the SSM Model ⚫ To ensure security, multicast group members can choose to receive only the multicast data from a specific multicast source. In this case, they need to inform the multicast network of the multicast source from which they want to receive multicast data. ⚫ IGMPv1 and IGMPv2 messages cannot carry multicast source information. As a result, IGMPv1 and IGMPv2 cannot meet the demand for source-specific multicast (SSM), unless SSM mapping is used. ⚫ IGMPv3 was developed to support the SSM model. IGMPv3 messages can carry multicast source information so that Multicast Multicast hosts can receive only data from a specific source. source 1 source 2 Multicast network (SSM) Receives only the multicast data from Notifies the multicast the specific source. network that it wants to Report receive only multicast data from multicast source 1. Multicast group member 20 Huawei Confidential In the SSM model, multicast addresses range from 232.0.0.0 to 232.255.255.255. For details about SSM mapping, see the chapter of "IGMP Features." IGMPv1 IGMPv2 IGMPv3 IGMPv3 ⚫ Most mechanisms of IGMPv3 are similar to those of IGMPv2. Their querier election mechanisms are the same. The multicast router with the lowest IP address is elected as the querier. General Query messages are used to query group memberships. Group-Specific Query messages are used to query group memberships of a specific multicast group. ⚫ IGMPv3 needs to report multicast source information. Compared with IGMPv2, IGMPv3 has the following changes: In addition to General Query and Group-Specific Query messages, IGMPv3 has a new Query message type: Group-and-Source- Specific Query. Each IGMPv3 Report message contains the group that a host wants to join and the multicast sources from which the host wants to receive data. Different members in the same multicast group may want to receive multicast data from different sources. Therefore, IGMPv3 does not require the Report message suppression mechanism. Unlike IGMPv2, IGMPv3 does not define a Leave message. Group members send Report messages of a specified type to notify multicast routers that they have left a group. 21 Huawei Confidential IGMPv1 IGMPv2 IGMPv3 IGMPv3 Query Message Format ⚫ There are three types of IGMPv3 Query messages: General Query message. This type of message has the same function as that in IGMPv1 or IGMPv2. Group-Specific Query message. This type of message has the same function as that in IGMPv2. Group-and-Source-Specific Query message. This type of message is used to query whether a group member wants to receive data from specific sources. Each such a message carries one or more multicast source addresses. ⚫ The IGMPv3 Query message format is as follows: 0 7 15 31 Type Max Resp Code Checksum Group Address Resv S QRV QQIC Number of Sources(N) Sources Address Sources Address … Sources Address [N] 22 Huawei Confidential Key fields in an IGMPv3 Query message: ▫ Type: message type. In IGMPv3 Query messages, this field is set to 0x11. ▫ Max Response Time: maximum response time. After receiving a General Query message, hosts must respond with a Report message within the maximum response time. ▫ Group Address: address of a multicast group. In a General Query message, this field is set to 0. In a Group-Specific Query or Group-and-Source-Specific Query message, this field is set to the IP address of the queried group. ▫ Number of Sources: number of multicast sources contained in the message. In a General Query or Group-Specific Query message, this field is set to 0. In a Group-and-Source-Specific Query message, this field is not 0. This number is limited by the maximum transmission unit (MTU) of the network over which the Query message is transmitted. ▫ Source Address: address of the multicast source. The value is subject to the Number of Sources field. IGMPv1 IGMPv2 IGMPv3 IGMPv3 Report Message Format ⚫ IGMPv3 Report messages are used to notify the querier of group memberships and the multicast sources from which the members want to receive multicast data. Multicast source information can be notified in either of the following modes: INCLUDE: The members want to receive multicast data from specified multicast sources. EXCLUDE: The members want to have multicast data from specified multicast sources filtered out. ⚫ The relationship between multicast group information and multicast source information in the Report message is recorded in the Group Record field and sent to the IGMP querier. The destination address of each IGMPv3 Report message is 224.0.0.22. The format of the message is as follows: 0 7 15 31 0 7 15 31 Type Reserved Checksum Record Type Aux Data Len Number of Sources (N) Multicast Address Reserved Number of Group Records(M) Source Address Group Record Source Address Group Record … … Auxiliary Data Group Record [N] 23 Huawei Confidential An IGMPv3 Report message can carry multiple groups, whereas an IGMPv1 or IGMPv2 Report message can carry only one group. Therefore, the number of IGMPv3 messages needed is greatly reduced. The key fields in an IGMPv3 Report message are described as follows: ▫ Type: message type. In IGMPv3 Report messages, this field is set to 0x22. ▫ Number of Group Records: number of group records contained in a message. ▫ Group Record: group record. Key fields in Group Record are described as follows: ▫ Record Type: type of a group record. There are three group record types. ▪ Current-State Record. It is used to respond to Query messages and advertise its current state. There are two types of states. One of the states is MODE_IS_INCLUDE, indicating that the member wants to receive only the multicast data sent from the sources in the source address list to the group. If the specified source address list is empty, the message is invalid. The other state is MODE_IS_EXCLUDE, indicating that the member rejects the multicast data sent from the sources in the source address list to the group. ▪ Filter-Mode-Change Record. In the case of a switchover between INCLUDE and EXCLUDE, the querier is notified of the filtering mode change. There are two filtering mode changes. One is CHANGE_TO_INCLUDE_MODE, indicating that the filtering mode is changed from EXCLUDE to INCLUDE; in this case, the member wants to receive the data sent by the multicast sources in the source address list to the multicast group. If the specified source address list is empty, the member will leave the multicast group. The other change is CHANGE_TO_EXCLUDE_MODE, indicating that the filtering mode is changed from INCLUDE to EXCLUDE; in this case, the member rejects the multicast data sent from the multicast sources in the source address list to the multicast group. ▪ Source-List-Change Record. When the specified sources change, the Source-List-Change Record is notified. There are two types of source list changes. One is ALLOW_NEW_SOURCES, indicating that the member wants to have the multicast source list updated. If the current mode is INCLUDE, the specified sources are added to the current source list. If the current mode is EXCLUDE, the specified sources are deleted from the current source list. The other source list change is BLOCK_OLD_SOURCES, indicating that the member wants to have the multicast source list updated in another way. If the current mode is INCLUDE, the specified sources are deleted from the current source list. If the current mode is EXCLUDE, the specified sources are added to the current source list. ▫ Number of Sources: number of source addresses contained in the record. ▫ Multicast Address: address of a multicast group. ▫ Sources Address: address of the multicast source. IGMPv1 IGMPv2 IGMPv3 IGMPv3 Group Joining Mechanism ⚫ The group joining mechanism of IGMPv3 is similar to that of IGMPv2 except the following differences: Report message (member 1) IGMPv3 Report messages carry multicast source information. IGMP Routing Table Report message IGMPv3 does not have a Report message suppression mechanism. Outbound (member 2) IGMP Entry Interface Report message ⚫ The process of group joining in IGMPv3 is as follows: S1, G1 IF1 (member 3) Multicast source S1 Multicast source S2 Multicast S2, G1 IF1 IGMP-capable source S1 interface 1 Multicast Multicast The IGMP querier network network sends General Multicast IGMP IGMP Query messages. source S2 querier 2 querie Each multicast group IF1 r General Query 2 Each multicast group member Responds to member sends a the Query Report message, which There is no sends a Report message, General Query message message. contains multicast Report message which contains multicast IGMP-capable interface group and multicast suppression group and multicast source source information. mechanism. information. Report Report Report Member 1 joins G1 Member 2 joins G1 Member 3 joins G1 Member 1 joins G1 Member 2 joins G1 Member 3 joins G1 and wants to and wants to and wants to and wants to and wants to and wants to receive multicast receive multicast receive multicast receive multicast receive multicast receive multicast data from S1. data from S1. data from S2. data from S1. data from S1. data from S2. 25 Huawei Confidential IGMPv1 IGMPv2 IGMPv3 IGMPv3 Group Leaving Mechanism ⚫ IGMPv3 does not have Leave messages, and group leaving is notified through Report messages. ⚫ After receiving a Report message with updated source-group mapping, the IGMP querier sends Group-and-Source-Specific Query messages to check whether there are still other members in the group. IGMP Routing Table Multicast 3 source S1 Outbound The IGMP querier sends IGMP Entry 2 Interface After receiving the Group-and-Source-Specific Multicast Multicast Multicast S1, G1 IF1 Report message, the Query messages to check network source S1 network whether there are still other 5 IGMP querier IGMP After receiving the IGMP considers that the members in the group. querier Report message, the querier group member needs querier retains the to leave the group. Group-and-Source-Specific Query IGMP routing entry. 1 4 The group member The group member sends a Report sends a Report message message with updated Responds with a that carries source- source-group mapping. Report message. group information. Report Report Member 1 leaves G1 Member 2 joins G1 and Member 1 leaves G1 Member 2 joins G1 and does not want to wants to receive and does not want to and wants to receive data from S1. multicast data from S1. receive data from S1. receive multicast Report message Group-and-Source-Specific Query message data from S1. IGMP-capable interface Report message 26 Huawei Confidential Various Report messages can be used to update source-group mapping. For example: ▫ A member used to receive multicast data from S1. It can send a (G1, EXCLUDE, S1) or (G1, CHANGE_TO_EXCLUDE_MODE, S1) message to update source-group mapping. Differences Between IGMP Versions Mechanism IGMPv1 IGMPv2 IGMPv3 Depends on another Uses its own Uses its own Querier election protocol. mechanism. mechanism. Group leaving Leave silently. Leave proactively. Leave proactively. Group-Specific Query Not supported Supported Supported Source-and-Group-Specific Query Not supported Not supported Supported Version mapping IGMPv1 IGMPv1, IGMPv2 27 Huawei Confidential Contents 1. IGMP Introduction 2. IGMP Feature Introduction ◼ IGMP Snooping Introduction ▫ IGMP SSM Mapping Introduction ▫ IGMP Proxy Introduction 3. IGMP Configurations 28 Huawei Confidential Problem Accompanying Multicast Forwarding on the Ethernet Network ⚫ The multicast data packets sent from the last-hop router to multicast group members usually pass through a switch. The destination MAC addresses of multicast data packets are multicast MAC addresses. By default, the switch floods such data frames. As a result, multicast traffic may be received across groups. IGMP snooping controls the flooding scope of multicast traffic on an Ethernet network, which prevents inter-group multicast traffic receiving. Multicast source S1 Multicast source S1 Multicast Multicast Multicast Multicast packet of G1 packet of G2 packet of G1 packet of G2 Multicast Multicast network network Multicast Multicast router Multicast traffic of G1 router Multicast traffic of G1 Multicast traffic of G2 Enable IGMP snooping. Multicast traffic of G2 Layer 2 Layer 2 switch Enable IGMP snooping. switch Receives Receives Only multicast Only multicast multicast traffic multicast traffic traffic of G1 is traffic of G2 is of G1 and G2. of G1 and G2. received. received. Multicast group member 1 Multicast group member 2 Multicast group member 1 Multicast group member 2 joins multicast group G1. joins multicast group G2. joins multicast group G1. joins multicast group G2. 29 Huawei Confidential After receiving multicast data packets from the router, the switch forwards the packets to the group members. Destination addresses of multicast packets are multicast group addresses and cannot be learned by a Layer 2 switch. Therefore, when a Layer 2 switch receives multicast packets from a router, it broadcasts the packets in the broadcast domain. All hosts in the broadcast domain receive the multicast packets, regardless of whether they are group members. This wastes network bandwidth and poses security risks. IGMP snooping solves this preceding problem. With IGMP snooping configured, the Layer 2 multicast switch listens to and analyzes IGMP messages exchanged between multicast users and the upstream router, and creates Layer 2 multicast forwarding entries accordingly. Multicast data packets are then forwarded based on the Layer 2 multicast forwarding entries. This prevents multicast data packets from being broadcast on the Layer 2 network. IGMP Snooping Introduction ⚫ IGMP snooping implements forwarding and control of multicast data packets at the data link layer. ⚫ IGMP snooping runs on a Layer 2 multicast device and analyzes received IGMP messages exchanged between a Layer 3 device and hosts to create and maintain a Layer 2 multicast forwarding table. Based on this table, the Layer 2 device forwards multicast packets at the data link layer. 2 The IGMP snooping-enabled Multicast device reads IGMP messages Multicast source S1 and generates a Layer 2 source S1 Multicast multicast forwarding table. Multicast network network L2 Multicast Forwarding IGMP querier Table IGMP querier 1 Group joining mechanism Multicast Outbound Group Interface General Query Forwards multicast Multicast flow of G1 Router Port IF3 IF3 data packets based on IF3 Multicast flow of G2 *, G1 IF1 the Layer 2 multicast Enable IGMP snooping. *, G2 IF2 forwarding table. IF1 IF2 IF1 IF2 Multicast group Multicast group Report Report member 1 receives member 2 receives only the multicast only the multicast traffic of G1. traffic of G2. Multicast group member 1 Multicast group member 2 Multicast group member 1 Multicast group member 2 joins multicast group G1. joins multicast group G2. joins multicast group G1. joins multicast group G2. 30 Huawei Confidential IGMP Snooping Port and Forwarding Table Introduction ⚫ Layer 2 multicast forwarding entries contain the following types of ports: Router port: a port on a Layer 2 multicast device, used to receive multicast packets from a Layer 3 multicast device such as a DR or IGMP querier Member port: a port on a Layer 2 multicast device, used to send multicast data packets to group members. Multicast Layer 2 multicast forwarding table network VLAN ID : 10, Forwarding Mode : IP IGMP ------------------------------------------------------------------------ L2-Multicast Forward-Table querier (Source, Group) Interface Out-Vlan Multicast Outbound Router port ------------------------------------------------------------------------ Group Interface IF3 Router-port IF3 (router port) 10 Router Port IF3 Member Port (*, 239.0.0.1) IF1 (member port) 10 (*, 239.0.0.2) IF2 (member port) 10 *, 239.0.0.1 IF1 ------------------------------------------------------------------------ *, 239.0.0.2 IF2 IF1 IF2 Total Group(s): 2 Multicast group Multicast group member 1 joins member 2 joins multicast group multicast group 239.0.0.1. 239.0.0.2. 31 Huawei Confidential Router port: ▫ A router port generated by a protocol is called a dynamic router port. A port becomes a dynamic router port when it receives an IGMP General Query message or PIM Hello message with any source address except 0.0.0.0. The PIM Hello messages are sent from the PIM port on a Layer 3 multicast device to discover and maintain neighbor relationships. ▫ A manually configured router port is called a static router port. Member port: ▫ A member port generated by a protocol is called a dynamic member port. A Layer 2 multicast device sets a port as a dynamic member port when the port receives an IGMP Report message. ▫ A manually configured member port is called a static member port. Implementation of IGMP Snooping — Forwarding Entry Generation ⚫ An IGMP snooping-enabled device listens for IGMP messages to generate a Layer 2 multicast forwarding table and determines the port type. The detailed process is as follows: Multicast network IGMP querier 1 Group joining mechanism 2 Receives a General Query Layer 2 multicast forwarding table General Query message and functions as IF3 a router port. VLAN ID : 10, Forwarding Mode : IP 2 Receives a Report ------------------------------------------------------------------------ Enable IGMP snooping. message and functions (Source, Group) Interface Out-Vlan as a member port. ------------------------------------------------------------------------ IF1 IF2 Reads the Report Router-port IF3 (router port) 10 message. Report Report (*, 239.0.0.1) IF1 (member port) 10 IF2 (member port) 10 Report messages of ------------------------------------------------------------------------ members in the same Total Group(s): 1 Multicast group Multicast group group no longer member 1 joins member 2 joins suppress each other. multicast group multicast group 239.0.0.1. 239.0.0.1. Router port Member port 32 Huawei Confidential When a router port takes effect, an aging timer (180s by default) is started. When the router port receives a new General Query message, it updates the timer. When a member port takes effect, an aging timer (Aging time = Robustness variable x General query interval + Maximum response time for General Query messages) is started. When the member port receives a new Report message, it updates the timer. IGMP snooping no longer uses the Report message suppression mechanism. ▫ IGMP snooping needs to listen for IGMP messages to determine the port role and guide packet forwarding. Therefore, all group members need to send Report messages. ▫ After receiving a Report message, the IGMP snooping-enabled device forwards the Report message only through the router port. This prevents other group members in this group from receiving the Report message, which will not trigger Report message suppression. Implementation of IGMP Snooping — Forwarding Entry Maintenance ⚫ An IGMP snooping-enabled device listens for IGMP Leave messages and IGMP Report messages to determine whether a specific interface needs to send multicast data. The detailed process is as follows: Multicast 3 The IGMP querier network responds with IF1 does not receive IGMP Query messages. Layer 2 multicast forwarding table any Report message querier 2 VLAN ID : 10, Forwarding Mode : IP and is deleted after Group-Specific Query Forwards the Leave the aging timer ------------------------------------------------------------------------ message through IF3 4 expires. Forwards the (Source, Group) Interface Out-Vlan the router port. Updates the ------------------------------------------------------------------------ Query messages to all member ports. forwarding table. Router-port IF3 (router port) 10 1 IF1 IF2 (*, 239.0.0.1) IF1 (member port) 10 Sends a Leave IF2 (member port) 10 Leave Report ------------------------------------------------------------------------ message. 5 Responds with a Total Group(s): 1 After IF2 receives a Report message. Report message, it Multicast group member Multicast group member 2 updates the timer. 1 leaves multicast group joins multicast group 239.0.0.1. 239.0.0.1. Group-Specific Query Router port Leave message Report message Member port 33 Huawei Confidential After receiving an IGMP Leave message, the switch uses the following formula to calculate the aging timer of member ports: Aging timer = Robustness variable (2 by default) x Group-Specific Query interval (1s by default). Contents 1. IGMP Introduction 2. IGMP Feature Introduction ▫ IGMP Snooping Introduction ◼ IGMP SSM Mapping Introduction ▫ IGMP Proxy Introduction 3. IGMP Configurations 34 Huawei Confidential IGMP SSM Mapping Introduction ⚫ If terminals on the live network do not support IGMPv3, multicast in SSM mode cannot be deployed because IGMPv1 or IGMPv2 messages cannot carry multicast source information. ⚫ IGMP SSM mapping allows IGMPv1 and IGMPv2 group members to access the SSM network if a multicast source is manually bound to a multicast group. Multicast Multicast Multicast source S1 network source S2 (SSM) Does not know the source IGMP (S1 or S2) from which each querier group member wants to receive multicast data. IGMPv1 or IGMPv2 IGMPv1 or IGMPv2 messages do not messages do not carry multicast carry multicast sources. sources. Report Report Report message (member 1) Multicast group member 1 Multicast group member running IGMPv1 joins 2 running IGMPv2 joins Report message (member 2) multicast group G1. multicast group G1. 35 Huawei Confidential The SSM group addresses range from 232.0.0.0 to 232.255.255.255, regardless of whether IGMPv1, IGMPv2, or IGMPv3 is used. Implementation of IGMP SSM Mapping ⚫ Configure static SSM mapping entries on the IGMP querier to map group information in IGMPv1 or IGMPv2 Report messages to source-specific group information. ⚫ The implementation of IGMP SSM mapping is as follows: IGMP SSM-Mapping conversion table Total 1 entry 1 entry matched Multicast 00001. (4.0.0.4, 232.0.0.10/32) //Static SSM mapping entry source Multicast 4.0.0.4 network (SSM) SSM Mapping IGMP Routing Table IGMP querier SSM multicast Multicast Outbound IGMP Entry Configure IGMP SSM group source Interface mapping. IF1 232.0.0.10 4.0.0.4 4.0.0.4, 232.0.0.10 IF1 1 Configure a static 3 Creates an IGMP 4 Generates an IGMP 2 mapping entry between routing entry after entry based on the Sends a Report a multicast group and a receiving the IGMP SSM mapping entry. message. multicast source. Report message. Report Report Multicast group member 1 Multicast group member 2 Report message (member 1) running IGMPv1 joins running IGMPv2 joins Report message (member 2) multicast group 232.0.0.10. multicast group 232.0.0.10. 36 Huawei Confidential With SSM mapping entries configured, an IGMP querier checks the group address G in each IGMPv1 or IGMPv2 Report message received, and processes the message based on the check result: ▫ If G is in the any-source multicast (ASM) group address range, the router provides the ASM service for the corresponding group member. ▫ If G is in the SSM group address range (232.0.0.0 to 232.255.255.255 by default): ▪ When the IGMP querier has no SSM mapping entry matching G, it does not provide the SSM service and drops the Report message. ▪ If the IGMP querier has an SSM mapping entry matching G, it converts (*, G) information in the Report message into (G, INCLUDE, (S1, S2...)) information and provides the SSM service for the corresponding group member. IGMP SSM mapping does not apply to IGMPv3 Report messages. To enable hosts running any IGMP version on a network segment to obtain the SSM service, IGMPv3 must run on interfaces of multicast routers on the network segment. Contents 1. IGMP Introduction 2. IGMP Feature Introduction ▫ IGMP Snooping Introduction ▫ IGMP SSM Mapping Introduction ◼ IGMP Proxy Introduction 3. IGMP Configurations 37 Huawei Confidential IGMP Proxy Introduction ⚫ On a live network, an IGMP querier may need to manage a large number of group members. When a large number of hosts frequently join or leave groups, a large number of IGMP Report/Leave messages are sent to the querier, which burdens the querier. ⚫ IGMP proxy reduces the number of IGMP Report/Leave messages received by the IGMP querier, reducing the burden on the IGMP querier. ⚫ IGMP proxy is usually deployed on a Layer 3 device between an IGMP querier and receiver hosts. Multicast Multicast network network IGMP querier IGMP querier Excessive IGMP The number of Report message Report message Report/Leave IGMP Report/Leave Leave message messages messages decreases. Leave message Layer 3 Configure IGMP proxy. Layer 3 Enable IGMP proxy. switch switch Report Report Report Report LEAVE LEAVE LEAVE LEAVE Multicast group Multicast group Multicast group Multicast group member 1 member 2 member 1 member 2 38 Huawei Confidential Basic Concepts of IGMP Proxy ⚫ To relieve the burden on the IGMP querier, the IGMP proxy-capable device aggregates Report/Leave messages before sending them to the IGMP querier. ⚫ An IGMP proxy-capable device can also act as an IGMP querier to send Query messages to receiver hosts, maintain group memberships, and forward multicast data based on group memberships. ⚫ To implement the preceding functions, IGMP proxy defines two types of interfaces: Host interface: IGMP proxy-enabled interface on an IGMP proxy-capable device. This interface generally points to an IGMP querier. Router interface: an interface configured with IGMP on an IGMP proxy-capable device. This interface generally points to group members. IGMP is enabled Multicast group IGMP proxy is on the router member 1 enabled on the interface. host interface. Multicast network Host Router Host interface IGMP interface Layer 3 interface querier switch Router interface Multicast group member 2 39 Huawei Confidential Implementation of IGMP Proxy – Group Joining ⚫ IGMP proxy reduces the number of Report messages as follows: A router interface functions as an IGMP interface and is presented as an IGMP querier. The router interface sends Query messages, processes Report messages, generates IGMP entries, and sends Report messages to the upstream IGMP querier through a host interface. When new hosts join the same multicast group, the IGMP proxy-capable device does not send Report messages to the IGMP querier. This reduces the number of Report messages sent to the IGMP querier. Multicast Multicast Host interface network Host interface network Router interface Router interface IGMP querier IGMP querier 3 3 Sends Report messages Does not forward Report to the upstream IGMP messages of new members in the A new member joins querier. same multicast group upstream. IGMP proxy- the same group. IGMP proxy- 2 2 The group information in capable device Generates the IGMP capable device 1 1 the Report message can be Group joining mechanism group entry and IGMP Group joining proxy routing entry. found in IGMP entries. General Query mechanism Report Report message suppression Report mechanism Multicast group Multicast group member Multicast group Multicast group member Multicast group member member 1 joins 3 (new member) joins member 2 joins 1 joins group G1. 2 joins group G1. group G1. group G1. group G1. 40 Huawei Confidential When the IGMP proxy-capable device receives a Report message for a group, it searches the multicast forwarding table for the group. ▫ If the group is not found in the multicast forwarding table, the IGMP proxy- capable device sends a Report message for the group to the access device and adds the group to the multicast forwarding table. ▫ If the group is found in the multicast forwarding table, the IGMP proxy device does not send a Report message to the access device. IGMPv1, IGMPv2, and IGMPv3 group joining mechanisms are not described here. Implementation of IGMP Proxy – Group Leaving ⚫ IGMP proxy reduces the number of Leave messages as follows: When a group member leaves a multicast group, the IGMP proxy-capable device uses the IGMP group leaving mechanism to determine whether there are still other members of the multicast group. If there is no member of the multicast group, the device sends a Leave message to the upstream IGMP querier. 3 Host interface The IGMP querier deletes the Multicast Multicast Router port corresponding entry. network network Host interface 2 IGMP querier The IGMP proxy-capable IGMP querier Router interface 2 There are still other device sends a Leave message only after all multicast group members, members leave the group. and no Leave message is All members sent upstream. leave the group. IGMP proxy-capable device IGMP proxy-capable device 1 1 Group leaving mechanism Group leaving mechanism Group-Specific Query Group-Specific Query Leave Leave Report Multicast group member Multicast group member Multicast group member Multicast group member 1 has left group G1. 2 leaves group G1. 1 leaves group G1. 2 joins group G1. 41 Huawei Confidential When the IGMP proxy-capable device receives a Leave message for G1, it sends a Group-Specific Query message through the interface where the Leave message was received, to check whether G1 has other members attached to the interface. ▫ If there are no other members of G1 attached to the interface, the IGMP proxy-capable device deletes the interface from the forwarding entry of G1. The IGMP proxy-capable device then checks whether G1 has members on other interfaces. ▪ If G1 has no members on other interfaces, the IGMP proxy-capable device sends a Leave message for G1 to the access device. ▪ If G1 has members on other interfaces, the IGMP proxy-capable device does not send a Leave message for G1 to the access device. ▫ If the group has other members attached to the interface, the IGMP proxy- capable device continues forwarding multicast data to the interface. IGMPv1, IGMPv2, and IGMPv3 group leaving mechanisms are not described here. Contents 1. IGMP Introduction 2. IGMP Feature Introduction 3. IGMP Configurations 42