| < draft-ietf-magma-snoop-04.txt | draft-ietf-magma-snoop-05.txt > | |||
|---|---|---|---|---|
| MAGMA Working Group M. Christensen | Network Working Group M. Christensen | |||
| Internet Draft mjc@jcaps.com | Internet Draft Thrane & Thrane | |||
| November 2002 K. Kimball | Expiration Date: July 2003 K. Kimball | |||
| Expiration Date: May 2003 Hewlett-Packard | Category: Informational Hewlett-Packard | |||
| F. Solensky | F. Solensky | |||
| Bluejavelin | Bluejavelin | |||
| January 2003 | ||||
| Considerations for IGMP and MLD snooping switches | Considerations for IGMP and MLD snooping switches | |||
| <draft-ietf-magma-snoop-04.txt> | <draft-ietf-magma-snoop-05.txt> | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| all provisions of Section 10 of RFC2026 [RFC2026]. | all provisions of Section 10 of RFC2026 [RFC2026]. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six | Internet-Drafts are draft documents valid for a maximum of six | |||
| months and may be updated, replaced, or obsoleted by other docu- | months and may be updated, replaced, or obsoleted by other | |||
| ments at any time. It is inappropriate to use Internet-Drafts as | documents at any time. It is inappropriate to use Internet-Drafts | |||
| reference material or to cite them other than as "work in | as reference material or to cite them other than as "work in | |||
| progress." | progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| Abstract | Abstract | |||
| This memo describes the requirements for IGMP and MLD snooping | This memo describes the requirements for IGMP- and MLD-snooping | |||
| switches. The requirements for IGMPv2 snooping switches are based | switches. These are based on best current practices for IGMPv2, | |||
| on best current practices. IGMPv3 and MLDv2 snooping are also cov- | with further considerations for IGMPv3- and MLDv2-snooping. Addi- | |||
| ered in this draft although we are not aware of any such implemen- | tional areas of relevance, such as link layer topology changes and | |||
| tations at the time of writing. | Ethernet-specific encapsulation issues, are also considered. | |||
| Note that IGMP snooping is related only to IPv4 multicast. Other | ||||
| multicast packets, such as IPv6, might be suppressed by the snoop- | ||||
| ing functionality if additional care is not taken in the implemen- | ||||
| tation. It is desired not to restrict the flow of non-IPv4 multi- | ||||
| casts other than to the degree which would happen as a result of | ||||
| regular bridging functions. The same note can be made of MLD | ||||
| RFC DRAFT October 2002 | ||||
| snooping switches with respect to suppression of IPv4. | ||||
| Areas which are of relevance to IGMP and MLD snooping switches, | ||||
| such as link layer topology changes and Ethernet specific encapsu- | ||||
| lation issues, are also considered. | ||||
| Interoperability issues that arise between different versions of | Interoperability issues that arise between different versions of | |||
| IGMP are not discussed in this document. Interested readers are | IGMP are not the focus of this document. Interested readers are | |||
| directed to [IGMPv3] for a thorough description of problem areas. | directed to [IGMPv3] for a thorough description of problem areas. | |||
| This document is intended as an accompanying document to the IGMPv3 | This document is intended to accompany the IGMPv3 and MLDv2 | |||
| and MLDv2 specifications. | ||||
| RFC DRAFT January 2003 | ||||
| specifications. | ||||
| 1. Introduction | 1. Introduction | |||
| When a packet with a broadcast or multicast destination address is | When a packet with a broadcast or multicast destination address is | |||
| received, the switch will forward a copy into each of the remaining | received, the switch will forward a copy into each of the remaining | |||
| network segments in accordance with [BRIDGE]. Eventually, the | network segments in accordance with [BRIDGE]. Eventually, the | |||
| packet is made accessible to all nodes connected to the network. | packet is made accessible to all nodes connected to the network. | |||
| This approach works well for broadcast packets that are intended to | This approach works well for broadcast packets that are intended to | |||
| be seen or processed by all connected nodes. In the case of multi- | be seen or processed by all connected nodes. In the case of multi- | |||
| cast packets, however, this approach could lead to less efficient | cast packets, however, this approach could lead to less efficient | |||
| use of network bandwidth, particularly when the packet is intended | use of network bandwidth, particularly when the packet is intended | |||
| for only a small number of nodes. Packets will be flooded into | for only a small number of nodes. Packets will be flooded into | |||
| network segments where no node has any interest in receiving the | network segments where no node has any interest in receiving the | |||
| packet. While nodes will rarely incur any processing overhead to | packet. While nodes will rarely incur any processing overhead to | |||
| filter packets addressed to unrequested group addresses, they are | filter packets addressed to unrequested group addresses, they are | |||
| skipping to change at page 2, line 53 ¶ | skipping to change at page 2, line 42 ¶ | |||
| tions layers in the ISO model, and instead utilize information in | tions layers in the ISO model, and instead utilize information in | |||
| the upper- level protocol headers as factors to be considered in | the upper- level protocol headers as factors to be considered in | |||
| the processing at the lower levels. This is analogous to the man- | the processing at the lower levels. This is analogous to the man- | |||
| ner in which a router can act as a firewall by looking into the | ner in which a router can act as a firewall by looking into the | |||
| transport protocol's header before allowing a packet to be for- | transport protocol's header before allowing a packet to be for- | |||
| warded to its destination address. | warded to its destination address. | |||
| In the case of multicast traffic, an IGMP snooping switch provides | In the case of multicast traffic, an IGMP snooping switch provides | |||
| the benefit of conserving bandwidth on those segments of the net- | the benefit of conserving bandwidth on those segments of the net- | |||
| work where no node has expressed interest in receiving packets | work where no node has expressed interest in receiving packets | |||
| addressed to the group address. This is in contrast to normal | addressed to the group address. This is in contrast to normal | |||
| RFC DRAFT October 2002 | ||||
| switch behavior where multicast traffic is typically forwarded on | switch behavior where multicast traffic is typically forwarded on | |||
| all interfaces. | all interfaces. | |||
| Many switch datasheets state support for IGMP snooping, but no | Many switch datasheets state support for IGMP snooping, but no | |||
| requirements for this exist today. It is the authors' hope that the | requirements for this exist today. It is the authors' hope that | |||
| information presented in this draft will supply this foundation. | the information presented in this draft will supply this founda- | |||
| tion. | ||||
| The requirements presented here are based on the following informa- | The requirements presented here are based on the following informa- | |||
| tion sources: The IGMP specifications [RFC112][RFC2236][IGMPv3], | tion sources: The IGMP specifications [RFC112][RFC2236][IGMPv3], | |||
| vendor-supplied technical documents [CISCO], bug reports [MSOFT], | vendor-supplied technical documents [CISCO], bug reports [MSOFT], | |||
| RFC DRAFT January 2003 | ||||
| discussions with people involved in the design of IGMP snooping | discussions with people involved in the design of IGMP snooping | |||
| switches, MAGMA mailinglist discussions, and on replies by switch | switches, MAGMA mailinglist discussions, and on replies by switch | |||
| vendors to an implementation questionnaire. | vendors to an implementation questionnaire. | |||
| The discussions in this document are based on IGMP which applies to | The discussions in this document are based on IGMP, which applies | |||
| IPv4 only. For IPv6 we must use MLD instead. Because MLD is based | only to IPv4. For IPv6, MLD must be used instead. Because MLD is | |||
| on IGMP we do not repeat the whole discussion and requirements for | based on IGMP, we do not repeat the whole discussion and require- | |||
| MLD snooping switches. Instead we point out the few cases where | ments for MLD snooping switches. Instead, we point out the few | |||
| there is a difference compared to IGMP. | cases where there are differences from IGMP. | |||
| Note that the IGMP snooping function should apply only to IPv4 mul- | ||||
| ticasts. Other multicast packets, such as IPv6, might be suppressed | ||||
| by IGMP snooping if additional care is not taken in the implementa- | ||||
| tion. It is desired not to restrict the flow of non-IPv4 multi- | ||||
| casts other than to the degree which would happen as a result of | ||||
| regular bridging functions. The same note can be made of MLD snoop- | ||||
| ing switches with respect to suppression of IPv4. | ||||
| 2. IGMP Snooping Requirements | 2. IGMP Snooping Requirements | |||
| The following sections list the requirements for an IGMP snooping | The following sections list the requirements for an IGMP snooping | |||
| switch. The requirement is stated and is supplemented by a discus- | switch. The requirement is stated and is supplemented by a discus- | |||
| sion. All implementation discussions are examples only and there | sion. All implementation discussions are examples only and there | |||
| may well be other ways to achieve the same functionality. | may well be other ways to achieve the same functionality. | |||
| 2.1. Forwarding rules | 2.1. Forwarding rules | |||
| The IGMP snooping functionality is here separated into a control | The IGMP snooping functionality is here separated into a control | |||
| section (IGMP forwarding) and a data section (Data forwarding). | section (IGMP forwarding) and a data section (Data forwarding). | |||
| 2.1.1. IGMP Forwarding Rules | 2.1.1. IGMP Forwarding Rules | |||
| 1) A snooping switch SHOULD forward IGMP Membership Reports only | 1) A snooping switch should forward IGMP Membership Reports only | |||
| to those ports where multicast routers are attached. Alterna- | to those ports where multicast routers are attached. Alterna- | |||
| tively stated: a snooping switch SHOULD NOT forward IGMP Mem- | tively stated: a snooping switch should not forward IGMP Mem- | |||
| bership Reports to ports on which only hosts are attached. An | bership Reports to ports on which only hosts are attached. An | |||
| administrative control MAY be provided to override this | administrative control may be provided to override this | |||
| restriction, allowing the report messages to be flooded to | restriction, allowing the report messages to be flooded to | |||
| other ports. | other ports. | |||
| This is the main IGMP snooping functionality. Sending member- | This is the main IGMP snooping functionality. Sending member- | |||
| ship reports (as described in IGMP versions 1 and 2) to other | ship reports (as described in IGMP versions 1 and 2) to other | |||
| hosts can result in unintentionally preventing a host from | hosts can result in unintentionally preventing a host from | |||
| joining a specific multicast group. This is not a problem in | ||||
| RFC DRAFT October 2002 | RFC DRAFT January 2003 | |||
| joining a specific multicast group. This is not a problem in | ||||
| an IGMPv3-only network because there is no cancellation of IGMP | an IGMPv3-only network because there is no cancellation of IGMP | |||
| Membership reports. | Membership reports. | |||
| The administrative control allows IGMP Membership Report mes- | The administrative control allows IGMP Membership Report mes- | |||
| sages to be processed by network monitoring equipment such as | sages to be processed by network monitoring equipment such as | |||
| packet analyzers or port replicators. | packet analyzers or port replicators. | |||
| The switch supporting IGMP snooping MUST maintain a list of | The switch supporting IGMP snooping must maintain a list of | |||
| multicast routers and the ports on which they are attached. | multicast routers and the ports on which they are attached. | |||
| This list can be constructed in any combination of the follow- | This list can be constructed in any combination of the follow- | |||
| ing ways: | ing ways: | |||
| a) This list SHOULD be built by the snooping switch sending | a) This list should be built by the snooping switch sending | |||
| Multicast Router Solicitation messages as described in IGMP | Multicast Router Solicitation messages as described in IGMP | |||
| Multicast Router Discovery [MRDISC]. It MAY also snoop | Multicast Router Discovery [MRDISC]. It may also snoop | |||
| Multicast Router Advertisement messages sent by and to | Multicast Router Advertisement messages sent by and to | |||
| other nodes. | other nodes. | |||
| b) The arrival port for IGMP Queries (sent by multicast | b) The arrival port for IGMP Queries (sent by multicast | |||
| routers) where the source address is not 0.0.0.0. | routers) where the source address is not 0.0.0.0. | |||
| c) Ports explicitly configured by management to be IGMP-for- | c) Ports explicitly configured by management to be IGMP-for- | |||
| warding ports, in addition to or instead of any of the | warding ports, in addition to or instead of any of the | |||
| above methods to detect router ports. | above methods to detect router ports. | |||
| 2) IGMP snooping switches MAY also implement "proxy-reporting" in | 2) IGMP snooping switches may also implement "proxy-reporting" in | |||
| which reports received from downstream hosts are summarized and | which reports received from downstream hosts are summarized and | |||
| used to build internal membership states as described in | used to build internal membership states as described in | |||
| [PROXY]. The IGMP proxy-reporting switch would then report its | [PROXY]. The IGMP proxy-reporting switch would then report its | |||
| own state in response to upstream queriers. If the switch does | own state in response to upstream queriers. If the switch does | |||
| not already have an IP address assigned to it, the source | not already have an IP address assigned to it, the source | |||
| address for these reports SHOULD be set to all-zeros. | address for these reports should be set to all-zeros. | |||
| An IGMP proxy-reporting switch may act as Querier for the down- | An IGMP proxy-reporting switch may act as Querier for the down- | |||
| stream hosts while proxy reporting to the 'real' upstream | stream hosts while proxy reporting to the 'real' upstream | |||
| queriers. | queriers. | |||
| It should be noted that there may be multiple IGMP proxy- | It should be noted that there may be multiple IGMP proxy- | |||
| reporting switches in the network all using the 0.0.0.0 source | reporting switches in the network all using the 0.0.0.0 source | |||
| IP address. In this case the switches can be uniquely identi- | IP address. In this case the switches can be uniquely identi- | |||
| fied through their link layer source MAC address. | fied through their link layer source MAC address. | |||
| IGMP membership reports MUST NOT be rejected because of a | IGMP membership reports must not be rejected because of a | |||
| source IP address of 0.0.0.0. | source IP address of 0.0.0.0. | |||
| 3) The switch that supports IGMP snooping MUST flood all unrecog- | 3) The switch that supports IGMP snooping must flood all unrecog- | |||
| nized IGMP messages to all other ports and MUST NOT attempt to | nized IGMP messages to all other ports and must not attempt to | |||
| make use of any information beyond the end of the network layer | ||||
| RFC DRAFT October 2002 | RFC DRAFT January 2003 | |||
| make use of any information beyond the end of the network layer | ||||
| header. | header. | |||
| In addition, earlier versions of IGMP SHOULD interpret IGMP | In addition, earlier versions of IGMP should interpret IGMP | |||
| fields as defined for their versions and MUST NOT alter these | fields as defined for their versions and must not alter these | |||
| fields when forwarding the message. When generating new mes- | fields when forwarding the message. When generating new mes- | |||
| sages, a given IGMP version should set fields to the appropri- | sages, a given IGMP version should set fields to the appropri- | |||
| ate values for its own version. If any fields are reserved or | ate values for its own version. If any fields are reserved or | |||
| otherwise undefined for a given IGMP version, the fields SHOULD | otherwise undefined for a given IGMP version, the fields should | |||
| be ignored when parsing the message and MUST be set to zeroes | be ignored when parsing the message and must be set to zeroes | |||
| when new messages are generated by implementations of that IGMP | when new messages are generated by implementations of that IGMP | |||
| version. | version. | |||
| 4) An IGMP snooping switch SHOULD be aware of link layer topology | 4) An IGMP snooping switch should be aware of link layer topology | |||
| changes. Following a topology change the switch SHOULD initi- | changes. Following a topology change the switch should initi- | |||
| ate the transmission of a General Query on all ports in order | ate the transmission of a General Query on all ports in order | |||
| to reduce network convergence time. If the switch is not the | to reduce network convergence time. If the switch is not the | |||
| Querier, it SHOULD use the 'all-zeros' IP Source Address in | Querier, it should use the 'all-zeros' IP Source Address in | |||
| these proxy queries. When such proxy queries are received, | these proxy queries. When such proxy queries are received, | |||
| they MUST NOT be included in the Querier election process. | they must not be included in the Querier election process. | |||
| 5) An IGMP snooping switch MUST NOT make use of information in | 5) An IGMP snooping switch must not make use of information in | |||
| IGMP packets where the IP or IGMP headers have checksum or | IGMP packets where the IP or IGMP headers have checksum or | |||
| integrity errors. The switch SHOULD NOT flood such packets but | integrity errors. The switch should not flood such packets but | |||
| if it does, it SHOULD take some note of the event (i.e., incre- | if it does, it should take some note of the event (i.e., incre- | |||
| ment a counter). These errors and their processing are further | ment a counter). These errors and their processing are further | |||
| discussed in [IGMPv3], [MLD] and [MLDv2]. | discussed in [IGMPv3], [MLD] and [MLDv2]. | |||
| 6) The snooping switch MUST NOT rely exclusively on IGMP announce- | 6) The snooping switch must not rely exclusively on IGMP group | |||
| ments to determine when entries should be removed from the for- | leave announcements to determine when entries should be removed | |||
| warding table. The reason for this is that changes in the | from the forwarding table. The snooping switch should imple- | |||
| local topology may cause the snooping switch to fall off the | ment a membership timeout feature to ensure unneeded forwarding | |||
| path between the router and recipient system. As a result, the | table entries will be appropriately removed if downstream mem- | |||
| switch cannot be assured of seeing an annoucement message asso- | bers silently leave the group or become unavailable for any | |||
| ciated with the recipient leaving the group. | reason. If the switch implements this timeout behavior, it must | |||
| have a feature to override it if the switch is also configured | ||||
| to forward unregistered multicast packets on all ports. Addi- | ||||
| tionally, if timeout is implemented, a group's forwarding table | ||||
| entry should be removed from a port when no IGMP report has | ||||
| been received for [(Query Interval x Number of Queries) + Query | ||||
| Response Time] seconds. These variables may be learned dynami- | ||||
| cally but IGMP snooping switches implementing timeout should | ||||
| have a configuration option that allows these variables to be | ||||
| set manually. | ||||
| RFC DRAFT January 2003 | ||||
| 2.1.2. Data Forwarding Rules | 2.1.2. Data Forwarding Rules | |||
| 1) Packets with a destination IP (DIP) address in the 224.0.0.X | 1) Packets with a destination IP (DIP) address in the 224.0.0.X | |||
| range which are not IGMP MUST be forwarded on all ports. | range which are not IGMP must be forwarded on all ports. | |||
| This requirement is based on fact that many hosts exist today | This requirement is based on fact that many hosts exist today | |||
| which do not Join IP multicast addresses in this range before | which do not Join IP multicast addresses in this range before | |||
| sending or listening to IP multicasts. Furthermore since the | sending or listening to IP multicasts. Furthermore since the | |||
| 224.0.0.X address range is defined as link local (not to be | 224.0.0.X address range is defined as link local (not to be | |||
| routed) it seems unnecessary to keep state for each address in | routed) it seems unnecessary to keep state for each address in | |||
| RFC DRAFT October 2002 | ||||
| this range. Additionally, some vendors' applications, which | this range. Additionally, some vendors' applications, which | |||
| are not IGMP, use this 224.0.0.X address range, and these | are not IGMP, use this 224.0.0.X address range, and these | |||
| applications would break if the switch were to prune them due | applications would break if the switch were to prune them due | |||
| to not seeing a Join. | to not seeing a Join. | |||
| 2) Packets with a destination IP address outside 224.0.0.X which | 2) Packets with a destination IP address outside 224.0.0.X which | |||
| are not IGMP SHOULD be forwarded according to group-based port | are not IGMP should be forwarded according to group-based port | |||
| membership tables and MUST also be forwarded on router ports. | membership tables and must also be forwarded on router ports. | |||
| This is the core IGMP snooping requirement for the data path. | This is the core IGMP snooping requirement for the data path. | |||
| Discussion: An implementation could maintain separate member- | Discussion: An implementation could maintain separate member- | |||
| ship and multicast router tables in software and then "merge" | ship and multicast router tables in software and then "merge" | |||
| these tables into a current forwarding cache. | these tables into a current forwarding cache. | |||
| 3) If a switch receives a non-IGMP IPV4 multicast packet without | 3) If a switch receives a non-IGMP IPV4 multicast packet without | |||
| having first processed Membership Reports for the group | having first processed Membership Reports for the group | |||
| address, it MAY forward the packet on all ports, but it MUST | address, it may forward the packet on all ports, but it must | |||
| forward the packet on router ports. A switch MAY forward an | forward the packet on router ports. A switch may forward an | |||
| unregistered packet only on router ports, but the switch MUST | unregistered packet only on router ports, but the switch must | |||
| have a configuration option that suppresses this restrictive | have a configuration option that suppresses this restrictive | |||
| operation and forces flooding of unregistered packets on all | operation and forces flooding of unregistered packets on all | |||
| ports. In environments with v3 hosts where the snooping switch | ports. In environments with v3 hosts where the snooping switch | |||
| does not support v3, failure to flood unregistered streams | does not support v3, failure to flood unregistered streams | |||
| could prevent v3 hosts from receiving their traffic. Alterna- | could prevent v3 hosts from receiving their traffic. Alterna- | |||
| tively, in environments where the snooping switch supports all | tively, in environments where the snooping switch supports all | |||
| of the IGMP versions that are present, flooding unregistered | of the IGMP versions that are present, flooding unregistered | |||
| streams may cause IGMP hosts to be overwhelmed by multicast | streams may cause IGMP hosts to be overwhelmed by multicast | |||
| traffic, even to the point of not receiving Queries and failing | traffic, even to the point of not receiving Queries and failing | |||
| to issue new membership reports for their own groups. | to issue new membership reports for their own groups. | |||
| 4) All non-IPv4 multicast packets SHOULD be flooded, except where | 4) All non-IPv4 multicast packets should be flooded, except where | |||
| normal IEEE bridging operation would result in filtering multi- | normal IEEE bridging operation would result in filtering multi- | |||
| cast packets. Discussion: This ensures that enabling IGMP | cast packets. Discussion: This ensures that enabling IGMP | |||
| snooping does not break, for example, IPv6 multicast. | snooping does not break, for example, IPv6 multicast. | |||
| 5) IGMP snooping switches MAY maintain forwarding tables based on | 5) IGMP snooping switches may maintain forwarding tables based on | |||
| either MAC addresses or IP addresses. If a switch supports | either MAC addresses or IP addresses. If a switch supports | |||
| RFC DRAFT January 2003 | ||||
| both types of forwarding tables then the default behavior | both types of forwarding tables then the default behavior | |||
| SHOULD be to use IP addresses. | should be to use IP addresses. | |||
| Discussion: Forwarding based on MAC addresses is subject to the | Discussion: Forwarding based on MAC addresses is subject to the | |||
| problem associated with the 32-fold IP address to 1 MAC address | problem associated with the 32-fold IP address to 1 MAC address | |||
| mapping. | mapping. | |||
| 6) Switches which rely on information in the IP header SHOULD ver- | 6) Switches which rely on information in the IP header should ver- | |||
| ify that the IP header checksum is correct. If the checksum | ify that the IP header checksum is correct. If the checksum | |||
| fails, the information in the packet MUST NOT be incorporated | fails, the information in the packet must not be incorporated | |||
| into the forwarding table. Further, the packet should be dis- | ||||
| RFC DRAFT October 2002 | ||||
| into the forwarding table. Further, the packet SHOULD be dis- | ||||
| carded. | carded. | |||
| 7) The "include source" and "exclude source" options in IGMPv3 do | 7) When IGMPv3 "include source" and "exclude source" membership | |||
| not work on shared segments. These options are used to register | reports are received on shared segments, the switch needs to | |||
| for multicast traffic only from certain senders, or from all | forward the superset of all received membership reports onto | |||
| except certain senders. On shared segments, if one host has | the shared segment. Forwarding of traffic from a particular | |||
| registered to receive a multicast data stream but has used the | source S to a group G must happen if at least one host on the | |||
| "include source" or "exclude source" option, any additional | shared segment reports an IGMPv3 membership of the type | |||
| hosts that later request membership for that same multicast | INCLUDE(G, Slist1) or EXCLUDE(G, Slist2) where S is an element | |||
| group must accept the restrictions issued in the first host's | of Slist1 and not an element of Slist2. | |||
| request. | ||||
| 2.2. IGMP snooping related problems | 2.2. IGMP snooping related problems | |||
| A special problem arises in networks consisting of IGMPv3 routers | A special problem arises in networks consisting of IGMPv3 routers | |||
| as well as IGMPv2 and IGMPv3 hosts interconnected by an IGMPv2 | as well as IGMPv2 and IGMPv3 hosts interconnected by an IGMPv2 | |||
| snooping switch. The router will continue to maintain IGMPv3 even | snooping switch. The router will continue to maintain IGMPv3 even | |||
| in the presence of IGMPv2 hosts, and thus the network will not | in the presence of IGMPv2 hosts, and thus the network will not | |||
| likely converge on IGMPv2. But it is likely that the IGMPv2 snoop- | likely converge on IGMPv2. But it is likely that the IGMPv2 snoop- | |||
| ing switch will not recognize or process the IGMPv3 membership | ing switch will not recognize or process the IGMPv3 membership | |||
| reports. Groups for these unrecognized reports will then either be | reports. Groups for these unrecognized reports will then either be | |||
| flooded (with all of the problems that may create for hosts in a | flooded (with all of the problems that may create for hosts in a | |||
| network with a heavy multicast load) or pruned by the snooping | network with a heavy multicast load) or pruned by the snooping | |||
| switch. | switch. | |||
| Therefore it is recommended that in such a network, the multicast | Therefore it is recommended that in such a network, the multicast | |||
| router be configured to use IGMPv2. | router be configured to use IGMPv2. | |||
| 3. IPv6 Considerations | 3. IPv6 Considerations | |||
| In order to avoid confusion, the previous discussions have been | In order to avoid confusion, the previous discussions have been | |||
| based on the IGMP protocol which only applies to IPv4 multicast. | based on the IGMP protocol which only applies to IPv4 multicast. | |||
| In the case of IPv6 most of the above discussions are still valid | In the case of IPv6 most of the above discussions are still valid | |||
| with a few exceptions which we will describe here. | with a few exceptions which we will describe here. | |||
| RFC DRAFT January 2003 | ||||
| The control and data forwarding rules in the IGMP section can, with | The control and data forwarding rules in the IGMP section can, with | |||
| a few considerations, also be applied to MLD. This means that the | a few considerations, also be applied to MLD. This means that the | |||
| basic functionality of intercepting MLD packets, and building mem- | basic functionality of intercepting MLD packets, and building mem- | |||
| bership lists and multicast router lists, is the same as for IGMP. | bership lists and multicast router lists, is the same as for IGMP. | |||
| In IPv6, the data forwarding rules are more straight forward | In IPv6, the data forwarding rules are more straight forward | |||
| because MLD is mandated for addresses with scope 2 (link-scope) or | because MLD is mandated for addresses with scope 2 (link-scope) or | |||
| greater. The only exception is the address FF002::1 which is the | greater. The only exception is the address FF02::1 which is the | |||
| all hosts link-scope address for which MLD messages are never sent. | all hosts link-scope address for which MLD messages are never sent. | |||
| Packets with the all hosts link-scope address should be forwarded | Packets with the all hosts link-scope address should be forwarded | |||
| RFC DRAFT October 2002 | ||||
| on all ports. | on all ports. | |||
| MLD messages are also not sent to packets in the address range | MLD messages are also not sent to packets in the address range | |||
| FF00X::/16 when X is 0 or 1 (which are reserved and node-local, | FF0X::/16 when X is 0 or 1 (which are reserved and node-local, | |||
| respectively), and these addresses should never appear in packets | respectively), and these addresses should never appear in packets | |||
| on the link. | on the link. | |||
| The three main differences between IPv4 and IPv6 in relation to | The three main differences between IPv4 and IPv6 in relation to | |||
| multicast are: | multicast are: | |||
| - The IPv6 protocol for multicast group maintenance is called Mul- | - The IPv6 protocol for multicast group maintenance is called Mul- | |||
| ticast Listener Discovery (MLDv2). MLDv2 uses ICMPv6 message | ticast Listener Discovery (MLDv2). MLDv2 uses ICMPv6 message | |||
| types instead of IGMP message types. | types instead of IGMP message types. | |||
| - The ethernet encapsulation is a mapping of 32 bits of the 128 | - The ethernet encapsulation is a mapping of 32 bits of the 128 | |||
| bit DIP addresses into 48 bit DMAC addresses [IPENCAPS]. | bit DIP addresses into 48 bit DMAC addresses [IPENCAPS]. | |||
| - Multicast router discovery is done using Neighbor Discovery Pro- | - Multicast router discovery is done using Neighbor Discovery Pro- | |||
| tocol (NDP) for IPv6. NDP uses ICMPv6 message types. | tocol (NDP) for IPv6. NDP uses ICMPv6 message types. | |||
| The IPv6 packet header does not include a checksum field. Never- | The IPv6 packet header does not include a checksum field. Never- | |||
| theless, the switch SHOULD detect other packet integrity issues. | theless, the switch should detect other packet integrity issues. | |||
| When the snooping switch detects such an error, it MUST NOT include | When the snooping switch detects such an error, it must not include | |||
| information from the corresponding packet in the MLD forwarding ta- | information from the corresponding packet in the MLD forwarding ta- | |||
| ble. The forwarding code SHOULD drop the packet and take further | ble. The forwarding code should drop the packet and take further | |||
| reasonable actions as advocated above. | reasonable actions as advocated above. | |||
| The fact that MLDv2 is using ICMPv6 adds new requirements to a | The fact that MLDv2 is using ICMPv6 adds new requirements to a | |||
| snooping switch because ICMPv6 has multiple uses aside from MLD. | snooping switch because ICMPv6 has multiple uses aside from MLD. | |||
| This means that it is no longer sufficient to detect that the next- | This means that it is no longer sufficient to detect that the next- | |||
| header field of the IP header is ICMPv6 in order to identify pack- | header field of the IP header is ICMPv6 in order to identify pack- | |||
| ets relevant for MLD snooping. | ets relevant for MLD snooping. | |||
| Discussion: If an implementation was software-based, wrongly iden- | Discussion: If an implementation was software-based, wrongly iden- | |||
| tifying non-MLD packets as candidates for MLD snooping would poten- | tifying non-MLD packets as candidates for MLD snooping would poten- | |||
| tially fill the CPU queue with irrelevant packets thus preventing | tially fill the CPU queue with irrelevant packets thus preventing | |||
| the snooping functionality. Furthermore, ICMPv6 packets destined | the snooping functionality. Furthermore, ICMPv6 packets destined | |||
| for other hosts would not reach their destinations. | for other hosts would not reach their destinations. | |||
| RFC DRAFT January 2003 | ||||
| A solution is either to require that the snooping switch looks fur- | A solution is either to require that the snooping switch looks fur- | |||
| ther into the packets, or to be able to detect a multicast DMAC | ther into the packets, or to be able to detect a multicast DMAC | |||
| address in conjunction with ICMPv6. The first solution is desir- | address in conjunction with ICMPv6. The first solution is desir- | |||
| able only if it is configurable which message types should trigger | able only if it is configurable which message types should trigger | |||
| a CPU redirect and which should not. The reason is that a hardcod- | a CPU redirect and which should not. The reason is that a hardcod- | |||
| ing of message types is inflexible for the introduction of new mes- | ing of message types is inflexible for the introduction of new mes- | |||
| sage types. The second solution introduces the risk of new proto- | sage types. The second solution introduces the risk of new proto- | |||
| cols which use ICMPv6 and multicast DMAC addresses but which are | cols which use ICMPv6 and multicast DMAC addresses but which are | |||
| not related to MLD, wrongly being identified as MLD. It is | not related to MLD, wrongly being identified as MLD. It is sug- | |||
| gested that solution one is preferred if the switch is capable of | ||||
| RFC DRAFT October 2002 | triggering CPU redirects on individual ICMPv6 message types. If | |||
| suggested that solution one is preferred if the switch is capable | ||||
| of triggering CPU redirects on individual ICMPv6 message types. If | ||||
| this is not the case, then use solution two. | this is not the case, then use solution two. | |||
| The mapping from IP multicast addresses to multicast DMAC addresses | The mapping from IP multicast addresses to multicast DMAC addresses | |||
| introduces a potentially enormous overlap. The structure of an IPv6 | introduces a potentially enormous overlap. The structure of an | |||
| multicast address is shown in the figure below. Theoretically | IPv6 multicast address is shown in the figure below. Theoretically | |||
| 2**80, two to the power of 80 (128 - 8 - 4 - 4 - 32) unique DIP | 2**80, two to the power of 80 (128 - 8 - 4 - 4 - 32) unique DIP | |||
| addresses could map to one DMAC address. This should be compared to | addresses could map to one DMAC address. This should be compared | |||
| 2**5 in the case of IPv4. | to 2**5 in the case of IPv4. | |||
| Initial allocation of IPv6 multicast addresses, however, uses only | Initial allocation of IPv6 multicast addresses, however, uses only | |||
| the lower 32 bits of group ID. This eliminates the address ambigu- | the lower 32 bits of group ID. This eliminates the address ambigu- | |||
| ity for the time being, but it should be noted that the allocation | ity for the time being, but it should be noted that the allocation | |||
| policy may change in the future. Because of the potential overlap | policy may change in the future. Because of the potential overlap | |||
| it is recommended that IPv6 address based forwarding is preferred | it is recommended that IPv6 address based forwarding is preferred | |||
| to MAC address based forwarding. | to MAC address based forwarding. | |||
| | 8 | 4 | 4 | 112 bits | | | 8 | 4 | 4 | 112 bits | | |||
| +--------+----+----+---------------------------------------+ | +--------+----+----+---------------------------------------+ | |||
| |11111111|flgs|scop| group ID | | |11111111|flgs|scop| group ID | | |||
| +--------+----+----+---------------------------------------+ | +--------+----+----+---------------------------------------+ | |||
| 4. Security Considerations | 4. Normative References | |||
| [BRIDGE] IEEE 802.1D, "Media Access Control (MAC) Bridges" | ||||
| [IGMPv3] Cain, B., "Internet Group Management Protocol, Version | ||||
| 3", RFC3376, October 2002. | ||||
| [IPENCAPS] Crawford, M., "Transmission of IPv6 Packets over Ether- | ||||
| net Networks", RFC2464, December 1998. | ||||
| [MLD] Deering, S., Fenner, B., and Haberman, B. "Multicast | ||||
| Listener Discovery (MLD) for IPv6", RFC2710, October | ||||
| 1999. | ||||
| RFC DRAFT January 2003 | ||||
| [MLDv2] Vida, R., "Multicast Listener Discovery Version 2 | ||||
| (MLDv2) for IPv6", draft-vida-mld-v2-06.txt, November | ||||
| 2002. | ||||
| [MRDISC] Biswas, S. "IGMP Multicast Router Discovery", draft- | ||||
| ietf-idmr-igmp-mrdisc-10.txt, January 2003. | ||||
| [PROXY] Fenner, B. et al, "IGMP-based Multicast Forwarding | ||||
| (IGMP Proxying)", draft-ietf-magma-igmp-proxy-01.txt, | ||||
| November 2002. | ||||
| [RFC1112] Deering, S., "Host Extensions for IP Multicasting", RFC | ||||
| 1112, August 1989. | ||||
| [RFC2026] Bradner, S. "The Internet Standards Process -- Revision | ||||
| 3", RFC2026, October 1996. | ||||
| [RFC2236] Fenner, W., "Internet Group Management Protocol, Version | ||||
| 2", RFC2236, November 1997. | ||||
| [RFC2375] Hinden, R. "IPv6 Multicast Address Assignments", | ||||
| RFC2375, July 1998. | ||||
| 5. Informative References | ||||
| [IANA] | ||||
| Internet Assigned Numbers Authority, "Internet Multicast | ||||
| Addresses", http://www.isi.edu/in-notes/iana/assignments/mul- | ||||
| ticast-addresses | ||||
| [CISCO] | ||||
| Cisco Tech Notes, "Multicast In a Campus Network: CGMP and | ||||
| IGMP snooping", http://www.cisco.com/warp/public/473/22.html | ||||
| [MSOFT] | ||||
| Microsoft support article Q223136, "Some LAN Switches with | ||||
| IGMP Snooping Stop Forwarding Multicast Packets on RRAS | ||||
| Startup", http://support.microsoft.com/support/kb/arti- | ||||
| cles/Q223/1/36.ASP | ||||
| 6. Security Considerations | ||||
| Security considerations for IGMPv3 are accounted for in [IGMPv3]. | Security considerations for IGMPv3 are accounted for in [IGMPv3]. | |||
| The introduction of IGMP snooping switches adds the following con- | The introduction of IGMP snooping switches adds the following con- | |||
| siderations with regard to IP multicast. | siderations with regard to IP multicast. | |||
| RFC DRAFT January 2003 | ||||
| 1) The exclude source failure, which could cause traffic from | 1) The exclude source failure, which could cause traffic from | |||
| sources that are 'black listed' to reach hosts that have requested | sources that are 'black listed' to reach hosts that have requested | |||
| otherwise. This can also occur in certain network topologies with- | otherwise. This can also occur in certain network topologies with- | |||
| out IGMP snooping. | out IGMP snooping. | |||
| 2) It is possible to generate packets which make the switch wrongly | 2) It is possible to generate packets which make the switch wrongly | |||
| believe that there is a multicast router on the segment on which | believe that there is a multicast router on the segment on which | |||
| the source is attached. This will potentially lead to excessive | the source is attached. This will potentially lead to excessive | |||
| flooding on that segment. The authentication methods discussed in | flooding on that segment. The authentication methods discussed in | |||
| [IGMPv3] will also provide protection in this case. | [IGMPv3] will also provide protection in this case. | |||
| 3) IGMP snooping switches which rely on the IP header of a packet | 3) IGMP snooping switches which rely on the IP header of a packet | |||
| for their operation and which do not validate the header checksum | for their operation and which do not validate the header checksum | |||
| potentially will forward packets on the wrong ports. Even though | potentially will forward packets on the wrong ports. Even though | |||
| the IP headers are protected by the ethernet checksum this is a | the IP headers are protected by the ethernet checksum this is a | |||
| potential vulnerability. | potential vulnerability. | |||
| RFC DRAFT October 2002 | 4) In IGMP, there is no mechanism for denying recipients access to | |||
| groups (i.e. no "exclude receiver" functionality). Hence, apart | ||||
| from IP-level security configuration outside the scope of IGMP, any | ||||
| multicast stream may be received by any host without restriction. | ||||
| Generally though, it is worth it to stress that IP multicast must | Generally, IGMP snooping must be considered insecure due to the | |||
| so far be considered insecure until the work of for example the | issues above. However, none of the these issues are any worse for | |||
| suggested Multicast Security (MSEC) working group or similar is | IGMP snooping than for IGMP implementations in general. | |||
| completed or at least has matured. | ||||
| 5. IGMP Questionnaire | 7. IGMP Questionnaire | |||
| As part of this work the following questions were asked both on the | As part of this work the following questions were asked both on the | |||
| MAGMA discussion list and sent to known switch vendors implementing | MAGMA discussion list and sent to known switch vendors implementing | |||
| IGMP snooping. The individual contributions have been anonymized | IGMP snooping. The individual contributions have been anonymized | |||
| upon request and do not necessarily apply to all of the vendors' | upon request and do not necessarily apply to all of the vendors' | |||
| products. | products. | |||
| The questions were: | The questions were: | |||
| Q1 Does your switches perform IGMP Join aggregation? In other | Q1 Does your switches perform IGMP Join aggregation? In other | |||
| words, are IGMP joins intercepted, absorbed by the hard- | words, are IGMP joins intercepted, absorbed by the hard- | |||
| ware/software so that only one Join is forwarded to the | ware/software so that only one Join is forwarded to the | |||
| querier? | querier? | |||
| Q2 Is multicast forwarding based on MAC addresses? Would data- | Q2 Is multicast forwarding based on MAC addresses? Would data- | |||
| grams addressed to multicast IP addresses 224.1.2.3 and | grams addressed to multicast IP addresses 224.1.2.3 and | |||
| 239.129.2.3 be forwarded on the same ports-groups? | 239.129.2.3 be forwarded on the same ports-groups? | |||
| Q3 Is it possible to forward multicast datagrams based on IP | Q3 Is it possible to forward multicast datagrams based on IP | |||
| addresses (not routed)? In other words, could 224.1.2.3 and | addresses (not routed)? In other words, could 224.1.2.3 and | |||
| RFC DRAFT January 2003 | ||||
| 239.129.2.3 be forwarded on different port-groups with unal- | 239.129.2.3 be forwarded on different port-groups with unal- | |||
| tered TTL? | tered TTL? | |||
| Q4 Are multicast datagrams within the range 224.0.0.1 to | Q4 Are multicast datagrams within the range 224.0.0.1 to | |||
| 224.0.0.255 forwarded on all ports whether or not IGMP Joins | 224.0.0.255 forwarded on all ports whether or not IGMP Joins | |||
| have been sent? | have been sent? | |||
| Q5 Are multicast frames within the MAC address range | Q5 Are multicast frames within the MAC address range | |||
| 01:00:5E:00:00:01 to 01:00:5E:00:00:FF forwarded on all ports | 01:00:5E:00:00:01 to 01:00:5E:00:00:FF forwarded on all ports | |||
| whether or not IGMP joins have been sent? | whether or not IGMP joins have been sent? | |||
| skipping to change at page 11, line 5 ¶ | skipping to change at page 12, line 28 ¶ | |||
| Q6 Does your switch support forwarding to ports on which IP multi- | Q6 Does your switch support forwarding to ports on which IP multi- | |||
| cast routers are attached in addition to the ports where IGMP | cast routers are attached in addition to the ports where IGMP | |||
| Joins have been received? | Joins have been received? | |||
| Q7 Is your IGMP snooping functionality fully implemented in hard- | Q7 Is your IGMP snooping functionality fully implemented in hard- | |||
| ware? | ware? | |||
| Q8 Is your IGMP snooping functionality partly software imple- | Q8 Is your IGMP snooping functionality partly software imple- | |||
| mented? | mented? | |||
| RFC DRAFT October 2002 | ||||
| Q9 Can topology changes (for example spanning tree configuration | Q9 Can topology changes (for example spanning tree configuration | |||
| changes) be detected by the IGMP snooping functionality so that | changes) be detected by the IGMP snooping functionality so that | |||
| for example new queries can be sent or tables can be updated to | for example new queries can be sent or tables can be updated to | |||
| ensure robustness? | ensure robustness? | |||
| The answers were: | The answers were: | |||
| ---------------------------+-----------------------+ | ---------------------------+-----------------------+ | |||
| | Switch Vendor | | | Switch Vendor | | |||
| ---------------------------+---+---+---+---+---+---+ | ---------------------------+---+---+---+---+---+---+ | |||
| skipping to change at page 11, line 33 ¶ | skipping to change at page 13, line 5 ¶ | |||
| Q5 01:00:5e:00:00:XX aware | x | x | x |(2)| x | x | | Q5 01:00:5e:00:00:XX aware | x | x | x |(2)| x | x | | |||
| Q6 Mcast router list | x | x | x | x | x | x | | Q6 Mcast router list | x | x | x | x | x | x | | |||
| Q7 Hardware implemented | | | | | | | | Q7 Hardware implemented | | | | | | | | |||
| Q8 Software assisted | x | x | x | x | x | x | | Q8 Software assisted | x | x | x | x | x | x | | |||
| Q9 Topology change aware | x | x | x | x | |(2)| | Q9 Topology change aware | x | x | x | x | |(2)| | |||
| ---------------------------+---+---+---+---+---+---+ | ---------------------------+---+---+---+---+---+---+ | |||
| x Means that the answer was Yes. | x Means that the answer was Yes. | |||
| (1) In some products (typically high-end) Yes, in others No. | (1) In some products (typically high-end) Yes, in others No. | |||
| (2) Currently no, but will be really soon. | (2) Currently no, but will be really soon. | |||
| 6. IETF IPR Statement | RFC DRAFT January 2003 | |||
| 8. IETF IPR Statement | ||||
| "The IETF takes no position regarding the validity or scope of any | "The IETF takes no position regarding the validity or scope of any | |||
| intellectual property or other rights that might be claimed to | intellectual property or other rights that might be claimed to | |||
| pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
| this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
| might or might not be available; neither does it represent that it | might or might not be available; neither does it represent that it | |||
| has made any effort to identify any such rights. Information on | has made any effort to identify any such rights. Information on | |||
| the IETF's procedures with respect to rights in standards-track and | the IETF's procedures with respect to rights in standards-track and | |||
| standards-related documentation can be found in BCP-11. Copies of | standards-related documentation can be found in BCP-11. Copies of | |||
| claims of rights made available for publication and any assurances | claims of rights made available for publication and any assurances | |||
| of licenses to be made available, or the result of an attempt made | of licenses to be made available, or the result of an attempt made | |||
| to obtain a general license or permission for the use of such pro- | to obtain a general license or permission for the use of such pro- | |||
| prietary rights by implementors or users of this specification can | prietary rights by implementors or users of this specification can | |||
| be obtained from the IETF Secretariat." | be obtained from the IETF Secretariat." | |||
| RFC DRAFT October 2002 | 9. Acknowledgements | |||
| 7. References | ||||
| [BRIDGE] IEEE 802.1D, "Media Access Control (MAC) Bridges" | ||||
| [CISCO] Cisco Tech Notes, "Multicast In a Campus Network: CGMP | ||||
| and IGMP snooping", http://www.cisco.com/warp/pub- | ||||
| lic/473/22.html | ||||
| [IANA] Internet Assigned Numbers Authority, "Internet Multicast | ||||
| Addresses", http://www.isi.edu/in-notes/iana/assign- | ||||
| ments/multicast-addresses | ||||
| [IGMPv3] Cain, B., "Internet Group Management Protocol, Version | ||||
| 3", draft-ietf-idmr-igmp-v3-11.txt, May 2002. | ||||
| [IPENCAPS] Crawford, M., "Transmission of IPv6 Packets over Ether- | ||||
| net Networks", RFC2464, December 1998. | ||||
| [MLD] Deering, S., Fenner, B., and Haberman, B. "Multicast | ||||
| Listener Discovery (MLD) for IPv6", RFC2710, October | ||||
| 1999. | ||||
| [MLDv2] Vida, R., "Multicast Listener Discovery Version 2 | ||||
| (MLDv2) for IPv6", draft-vida-mld-v2-03.txt, June 2002. | ||||
| [MRDISC] Biswas, S. "IGMP Multicast Router Discovery", draft- | ||||
| ietf-idmr-igmp-mrdisc-08.txt, January 2002. | ||||
| [MSOFT] Microsoft support article Q223136, "Some LAN Switches | ||||
| with IGMP Snooping Stop Forwarding Multicast Packets on | ||||
| RRAS Startup", http://support.microsoft.com/sup- | ||||
| port/kb/articles/Q223/1/36.ASP | ||||
| [PROXY] Fenner, B. et al, "IGMP-based Multicast Forwarding (IGMP | ||||
| Proxying)", draft-ietf-magma-igmp-proxy-01.txt, July | ||||
| 2002. | ||||
| [RFC1112] Deering, S., "Host Extensions for IP Multicasting", RFC | ||||
| 1112, August 1989. | ||||
| [RFC2026] Bradner, S. "The Internet Standards Process -- Revision | ||||
| 3", RFC2026, October 1996. | ||||
| [RFC2236] Fenner, W., "Internet Group Management Protocol, Version | ||||
| 2", RFC2236, November 1997. | ||||
| RFC DRAFT October 2002 | ||||
| [RFC2375] Hinden, R. "IPv6 Multicast Address Assignments", | ||||
| RFC2375, July 1998. | ||||
| 8. Acknowledgements | ||||
| We would like to thank Martin Bak, Les Bell, Yiqun Cai, Ben Carter, | We would like to thank Martin Bak, Les Bell, Yiqun Cai, Ben Carter, | |||
| Paul Congdon, Toerless Eckert, Bill Fenner, Brian Haberman, Edward | Paul Congdon, Toerless Eckert, Bill Fenner, Brian Haberman, Edward | |||
| Hilquist, Hugh Holbrook, Kevin Humphries, Suzuki Shinsuke, Jaff | Hilquist, Hugh Holbrook, Kevin Humphries, Suzuki Shinsuke, Jaff | |||
| Thomas and Rolland Vida for comments and suggestions on this docu- | Thomas and Rolland Vida for comments and suggestions on this docu- | |||
| ment. | ment. | |||
| Furthermore, the following companies are acknowledged for their | Furthermore, the following companies are acknowledged for their | |||
| contributions: 3Com, Alcatel, Cisco Systems, Enterasys Networks, | contributions: 3Com, Alcatel, Cisco Systems, Enterasys Networks, | |||
| Hewlett-Packard, Vitesse Semiconductor Corporation. The ordering | Hewlett-Packard, Vitesse Semiconductor Corporation. The ordering | |||
| of these names do not necessarily correspond to the column numbers | of these names do not correspond to the column numbers in the | |||
| in the response table. | response table. | |||
| 10. Revision History | ||||
| 9. Revision History | ||||
| This section, while incomplete, is provided as a convenience to the | This section, while incomplete, is provided as a convenience to the | |||
| working group members. It will be removed when the document is | working group members. It will be removed when the document is | |||
| released in its final form. | released in its final form. | |||
| draft-ietf-magma-snoop-05.txt: January 2003 Changes in wording of | ||||
| IGMP forwarding rule 6) and Data forwarding rule 7). Corrections | ||||
| in the references section. | ||||
| RFC DRAFT January 2003 | ||||
| Apart from above, no substantial changes has occured in the docu- | ||||
| ment. Several editorial changes, however, have been made to comply | ||||
| with the rfc editors requirements: | ||||
| References splitted in normative and informative sections. | ||||
| Abstract shortened. | ||||
| Changed all occurances of MUST, MAY etc. to lowercase to reflect | ||||
| that this is not a standards track document. | ||||
| Sections moved around so they appear in the required order. | ||||
| draft-ietf-magma-snoop-04.txt: November 2002 Editorial changes | draft-ietf-magma-snoop-04.txt: November 2002 Editorial changes | |||
| only. | only. | |||
| draft-ietf-magma-snoop-03.txt: October 2002 | draft-ietf-magma-snoop-03.txt: October 2002 | |||
| IGMP Forwarding rules: | IGMP Forwarding rules: | |||
| Add references to and become consistant with the current IGMP | Add references to and become consistant with the current IGMP | |||
| proxy draft, | proxy draft, | |||
| Unrecognized IGMP packets should not be ignored because "mbz" | Unrecognized IGMP packets should not be ignored because "mbz" | |||
| skipping to change at page 14, line 5 ¶ | skipping to change at page 14, line 43 ¶ | |||
| Corrections related to IGMP Querier election process. | Corrections related to IGMP Querier election process. | |||
| Add clarification to how lists of router ports may be assem- | Add clarification to how lists of router ports may be assem- | |||
| bled. | bled. | |||
| Data Forwarding rules: | Data Forwarding rules: | |||
| Added discussion of the problems for different IGMP environ- | Added discussion of the problems for different IGMP environ- | |||
| ments in choosing whether to flood or to prune unregistered | ments in choosing whether to flood or to prune unregistered | |||
| multicasts. | multicasts. | |||
| RFC DRAFT October 2002 | ||||
| Added refinements for how to handle NON-IPv4 multicasts, to | Added refinements for how to handle NON-IPv4 multicasts, to | |||
| keep IGMP-snooping functionality from interfering with IPv6 | keep IGMP-snooping functionality from interfering with IPv6 | |||
| and other multicast traffic. Any filtering for non-IPv4 multi- | and other multicast traffic. Any filtering for non-IPv4 mul- | |||
| casts should be based on bridge behavior and not IGMP snooping | ticasts should be based on bridge behavior and not IGMP snoop- | |||
| behavior. | ing behavior. | |||
| IGMP snooping related problems: | IGMP snooping related problems: | |||
| Fixed description of interoperability issues in environments | Fixed description of interoperability issues in environments | |||
| with v3 routers and hosts, and v2 snooping switches. | with v3 routers and hosts, and v2 snooping switches. | |||
| Added discussion of the IGMPv3 "include source" and "exclude | Added discussion of the IGMPv3 "include source" and "exclude | |||
| source" options, and the inability to support them on shared | source" options, and the inability to support them on shared | |||
| RFC DRAFT January 2003 | ||||
| segments. | segments. | |||
| IPv6 Considerations: | IPv6 Considerations: | |||
| Clarifications regarding address ranges FF00::, FF01:: and all | Clarifications regarding address ranges FF00::, FF01:: and all | |||
| hosts FF02::1 in relation to data forwarding. | hosts FF02::1 in relation to data forwarding. | |||
| draft-ietf-magma-snoop-02.txt: June 2002 | draft-ietf-magma-snoop-02.txt: June 2002 | |||
| Status section removes document history; moved into this sec- | Status section removes document history; moved into this sec- | |||
| tion instead. | tion instead. | |||
| Introduction restores text from the -00 revision that | Introduction restores text from the -00 revision that | |||
| describes snooping and its goals | describes snooping and its goals | |||
| IGMP flooding rules eased, allowing management option to | IGMP flooding rules eased, allowing management option to | |||
| broaden beyond "routers only". | broaden beyond "routers only". | |||
| Removed a SHOULD/MAY inconsistancy between IPv4 Forwarding and | Removed a should/MAY inconsistancy between IPv4 Forwarding and | |||
| IPv6 processing of checksums. | IPv6 processing of checksums. | |||
| IGMP Forwarding Rules: clarify text describing processing of | IGMP Forwarding Rules: clarify text describing processing of | |||
| non-zero reserved fields. | non-zero reserved fields. | |||
| Data Forwarding Rules, item 3 is changed from "MUST forward to | Data Forwarding Rules, item 3 is changed from "MUST forward to | |||
| all ports" to "MAY"; item 4 default changes from "MUST" to | all ports" to "MAY"; item 4 default changes from "MUST" to | |||
| "SHOULD use network addresses". | "should use network addresses". | |||
| Added two sets of additional responses to the questionnaire | Added two sets of additional responses to the questionnaire | |||
| and text indicating that responses don't cover all products. | and text indicating that responses don't cover all products. | |||
| Removed (commented out) description of IPR issues: IESG is | Removed (commented out) description of IPR issues: IESG is | |||
| aware of them. | aware of them. | |||
| draft-ietf-magma-snoop-01.txt: January 2002 | draft-ietf-magma-snoop-01.txt: January 2002 | |||
| RFC DRAFT October 2002 | ||||
| Extensive restructuring of the original text. | Extensive restructuring of the original text. | |||
| draft-ietf-idmr-snoop-01.txt: 2001 | draft-ietf-idmr-snoop-01.txt: 2001 | |||
| Added several descriptions of cases where IGMP snooping imple- | Added several descriptions of cases where IGMP snooping imple- | |||
| mentations face problems. Also added several network topology | mentations face problems. Also added several network topology | |||
| figures. | figures. | |||
| draft-ietf-idmr-snoop-00.txt: 2001 | draft-ietf-idmr-snoop-00.txt: 2001 | |||
| Initial snooping draft. An overview of IGMP snooping and the | Initial snooping draft. An overview of IGMP snooping and the | |||
| RFC DRAFT January 2003 | ||||
| problems to be solved. | problems to be solved. | |||
| 10. Author's Addresses | 11. Author's Addresses | |||
| Morten Jagd Christensen | Morten Jagd Christensen | |||
| jCAPS | Thrane & Thrane | |||
| Begoniavej 13 | Lundtoftegaardsvej 93 D | |||
| 2820 Gentofte | 2800 Lyngby | |||
| email: mjc@jcaps.com | email: mjc@tt.dk | |||
| Karen Kimball | Karen Kimball | |||
| Hewlett-Packard | Hewlett-Packard | |||
| 8000 Foothills Blvd. | 8000 Foothills Blvd. | |||
| Roseville, CA 95747 | Roseville, CA 95747 | |||
| email: karen.kimball@hp.com | email: karen.kimball@hp.com | |||
| Frank Solensky | Frank Solensky | |||
| Bluejavelin, Inc. | Bluejavelin, Inc. | |||
| 3 Dundee Park | 3 Dundee Park | |||
| Andover, MA 01810 | Andover, MA 01810 | |||
| email: fsolensky@bluejavelin.net | email: fsolensky@bluejavelin.net | |||
| RFC DRAFT October 2002 | RFC DRAFT January 2003 | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. IGMP Snooping Requirements . . . . . . . . . . . . . . 3 | 2. IGMP Snooping Requirements . . . . . . . . . . . . . . 3 | |||
| 2.1. Forwarding rules . . . . . . . . . . . . . . . . . . 3 | 2.1. Forwarding rules . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1.1. IGMP Forwarding Rules . . . . . . . . . . . . . . . 3 | 2.1.1. IGMP Forwarding Rules . . . . . . . . . . . . . . . 3 | |||
| 2.1.2. Data Forwarding Rules . . . . . . . . . . . . . . . 5 | 2.1.2. Data Forwarding Rules . . . . . . . . . . . . . . . 6 | |||
| 2.2. IGMP snooping related problems . . . . . . . . . . . 7 | 2.2. IGMP snooping related problems . . . . . . . . . . . 7 | |||
| 3. IPv6 Considerations . . . . . . . . . . . . . . . . . . 7 | 3. IPv6 Considerations . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . 9 | 4. Normative References . . . . . . . . . . . . . . . . . 9 | |||
| 5. IGMP Questionnaire . . . . . . . . . . . . . . . . . . 10 | 5. Informative References . . . . . . . . . . . . . . . . 10 | |||
| 6. IETF IPR Statement . . . . . . . . . . . . . . . . . . 11 | 6. Security Considerations . . . . . . . . . . . . . . . . 10 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . 12 | 7. IGMP Questionnaire . . . . . . . . . . . . . . . . . . 11 | |||
| 8. Acknowledgements . . . . . . . . . . . . . . . . . . . 13 | 8. IETF IPR Statement . . . . . . . . . . . . . . . . . . 13 | |||
| 9. Revision History . . . . . . . . . . . . . . . . . . . 13 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . 13 | |||
| 10. Author's Addresses . . . . . . . . . . . . . . . . . . 15 | 10. Revision History . . . . . . . . . . . . . . . . . . . 13 | |||
| 11. Author's Addresses . . . . . . . . . . . . . . . . . . 16 | ||||
| End of changes. 97 change blocks. | ||||
| 222 lines changed or deleted | 257 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||