Network Working Group                                     M. Christensen
Internet Draft                                           Thrane & Thrane
Expiration Date: July September 2003                               K. Kimball
Category: Informational                                  Hewlett-Packard
                                                             F. Solensky
                                                             Bluejavelin
                                                            January
                                                              March 2003

           Considerations for IGMP and MLD snooping switches
                    <draft-ietf-magma-snoop-05.txt> Snooping Switches
                    <draft-ietf-magma-snoop-06.txt>

Status of this Memo

     This document is an Internet-Draft and is in full conformance with
     all provisions of Section 10 of RFC2026 [RFC2026].

     Internet-Drafts are working documents of the Internet Engineering
     Task Force (IETF), its areas, and its working groups.  Note that
     other groups may also distribute working documents as Internet-
     Drafts.

     Internet-Drafts are draft documents valid for a maximum of six
     months and may be updated, replaced, or obsoleted by other
     documents at any time.  It is inappropriate to use Internet-Drafts
     as reference material or to cite them other than as "work in
     progress."

     The list of current Internet-Drafts can be accessed at
     http://www.ietf.org/ietf/1id-abstracts.txt

     The list of Internet-Draft Shadow Directories can be accessed at
     http://www.ietf.org/shadow.html.

Copyright Notice

     Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

     This memo describes the requirements for IGMP- and MLD-snooping
     switches. These are based on best current practices for IGMPv2,
     with further considerations for IGMPv3- and MLDv2-snooping.  Addi-
     tional
     Additional areas of relevance, such as link layer topology changes
     and Ethernet-specific encapsulation issues, are also considered.

     Interoperability issues that arise between different versions of
     IGMP are not the focus of this document.  Interested readers are
     directed to [IGMPv3] for a thorough description of problem areas.

     This document is intended to accompany the IGMPv3 and MLDv2

RFC DRAFT                                                   January 2003

     specifications.

1.  Introduction

     When processing a packet with a broadcast or multicast whose destination MAC address is
     received, has the
     multicast bit (bit 7) set, the switch will forward a copy of the
     packet into each of the remaining network segments interfaces that are the
     forwarding state in accordance with [BRIDGE].   Eventually,  The spanning tree
     algorithm ensures that the application of this rule at every switch
     in the network will make the packet is made accessible to all nodes
     connected to the network.

     This approach works well for broadcast packets that are intended to
     be seen or processed by all connected nodes.  In the case of multi-
     cast
     multicast packets, however, this approach could lead to less
     efficient use of network bandwidth, particularly when the packet is
     intended for only a small number of nodes.  Packets will be flooded
     into network segments where no node has any interest in receiving
     the packet.  While nodes will rarely incur any processing overhead
     to filter packets addressed to unrequested group addresses, they
     are unable to transmit new packets onto the shared media for the
     period of time that the multicast packet is flooded.  In general, signifi-
     cant
     significant bandwidth can be wasted by flooding.

     In recent years, a number of commercial vendors have introduced
     products described as "IGMP snooping switches" to the market.
     These devices do not adhere to the conceptual model that provides
     the strict separation of functionality between different communica-
     tions
     communications layers in the ISO model, and instead utilize
     information in the upper- upper level protocol headers as factors to be
     considered in the processing at the lower levels.  This is
     analogous to the man-
     ner manner in which a router can act as a firewall by
     looking into the transport protocol's header before allowing a
     packet to be for-
     warded forwarded to its destination address.

     In the case of multicast traffic, an IGMP snooping switch provides
     the benefit of conserving bandwidth on those segments of the net-
     work
     network where no node has expressed interest in receiving packets
     addressed to the group address.  This is in contrast to normal
     switch behavior where multicast traffic is typically forwarded on
     all interfaces.

     Many switch datasheets state support for IGMP snooping, but no
     requirements for this exist today.  It is the authors' hope that
     the information presented in this draft will supply this founda-
     tion.
     foundation.

     The requirements presented here are based on the following informa-
     tion
     information sources: The IGMP specifications [RFC112][RFC2236][IGMPv3], [RFC1112], [RFC2236]
     and [IGMPv3], vendor-supplied technical documents [CISCO], bug
     reports [MSOFT],

RFC DRAFT                                                   January 2003 discussions with people involved in the design of
     IGMP snooping switches, MAGMA mailinglist mailing list discussions, and on
     replies by switch vendors to an implementation questionnaire.

     The discussions suggestions in this document are based on IGMP, which applies
     only to IPv4.  For IPv6, MLD Multicast Listener Discovery [MLD] must be
     used instead.  Because MLD is based on IGMP, we do not repeat the whole discussion
     entire description and require-
     ments requirements for MLD snooping switches.
     Instead, we point out the few cases where there are differences
     from IGMP.

     Note that the IGMP snooping function should apply only to IPv4 mul-
     ticasts.
     multicasts.  Other multicast packets, such as IPv6, might be
     suppressed by IGMP snooping if additional care is not taken in the implementa-
     tion.
     implementation.  It is desired not to restrict the flow of non-IPv4 multi-
     casts
     multicasts other than to the degree which would happen as a result
     of regular bridging functions. The same note can be made of  Likewise, MLD snoop-
     ing snooping switches with respect are
     discouraged from using topological information learned from IPv6
     traffic to suppression alter the forwarding of IPv4. IPv4 multicast packets.

2.  IGMP Snooping Requirements

     The following sections list the requirements for an IGMP snooping
     switch.  The requirement is stated and is supplemented by a discus-
     sion.
     description of a possible implementation approach.  All
     implementation discussions are examples only and there may well be
     other ways to achieve the same functionality.

2.1.  Forwarding rules

     The IGMP snooping functionality is here separated into a control
     section (IGMP forwarding) and a data section (Data forwarding).

2.1.1.  IGMP Forwarding Rules

     1)  A snooping switch should forward IGMP Membership Reports only
         to those ports where multicast routers are attached.  Alterna-
         tively
         Alternatively stated: a snooping switch should not forward IGMP Mem-
         bership
         Membership Reports to ports on which only hosts are attached.
         An administrative control may be provided to override this
         restriction, allowing the report messages to be flooded to
         other ports.

         This is the main IGMP snooping functionality.  Sending member-
         ship
         membership reports (as described in IGMP versions 1 and 2) to
         other hosts can result in unintentionally preventing a host
         from joining a specific multicast group.  This is not a problem
         in

RFC DRAFT                                                   January 2003 an IGMPv3-only network because there is no cancellation message
         suppression of IGMP Membership reports.

         The administrative control allows IGMP Membership Report mes-
         sages
         messages to be processed by network monitoring equipment such
         as packet analyzers or port replicators.

         The switch supporting IGMP snooping must maintain a list of
         multicast routers and the ports on which they are attached.
         This list can be constructed in any combination of the follow-
         ing
         following ways:

         a)  This list should be built by the snooping switch sending
             Multicast Router Solicitation messages as described in IGMP
             Multicast Router Discovery [MRDISC].  It may also snoop
             Multicast Router Advertisement messages sent by and to
             other nodes.

         b)  The arrival port for IGMP Queries (sent by multicast
             routers) where the source address is not 0.0.0.0.

         c)  Ports explicitly configured by management to be IGMP-for-
             warding IGMP-
             forwarding ports, in addition to or instead of any of the
             above methods to detect router ports.

     2)  IGMP snooping switches may also implement "proxy-reporting" in
         which reports received from downstream hosts are summarized and
         used to build internal membership states as described in
         [PROXY].  The IGMP proxy-reporting switch would then report its
         own state in response to upstream queriers.  If the switch does
         not already have an IP address assigned to it, the source
         address for these reports should be set to all-zeros.

         An IGMP proxy-reporting switch may act as Querier for the down-
         stream
         downstream hosts while proxy reporting to the 'real' upstream
         queriers.

         It should be noted that there may be multiple IGMP proxy-
         reporting switches in the network all using the 0.0.0.0 source
         IP address.  In this case the switches can be uniquely identi-
         fied
         identified through their link layer source MAC address.

         IGMP membership reports must not be rejected by an IGMP
         snooping switch because of a source IP address of 0.0.0.0.

     3)  The switch that supports IGMP snooping must flood all unrecog-
         nized
         unrecognized 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                                                   January 2003 header.

         In addition, earlier versions of IGMP should interpret IGMP
         fields as defined for their versions and must not alter these
         fields when forwarding the message.  When generating new mes-
         sages,
         messages, a given IGMP version should set fields to the appropri-
         ate
         appropriate values for its own version.  If any fields are
         reserved or otherwise undefined for a given IGMP version, the
         fields should be ignored when parsing the message and must be
         set to zeroes when new messages are generated by
         implementations of that IGMP version.

     4)  An IGMP snooping switch should be aware of link layer topology
         changes.  Following a topology change the switch should initi-
         ate
         initiate the transmission of a General Query on all over the receiving
         ports in order to reduce network convergence time.

         a)   When a port other than the router port goes down, a Query
              Request should be directed out the switch's remaining non-
              router ports for those group addresses which had included
              the lost port as a destination for flooded packets.  The
              Query may be one of the Group-Specific forms if there are
              a relatively small number of groups affected and should be
              a General Query otherwise.  The router port should be
              excluded from receiving these Query Requests since it will
              usually be the source rather than the receipient of
              flooded multicast packets and is less likely to be
              affected by the loss of one of the receiver ports.

         b)   When the router port goes down, Multicast Router Discovery
              should be used to determine which of the remaining ports
              is the new router port.  An IGMPv3 General Query message
              should be sent out the remaining ports to refresh the
              forwarding tables for other groups.

         c)   When a new port comes up, a General Query message should
              be sent out the new port to determine which groups, if
              any, have receipients that have become reachable.  The new
              port is designated as a router port in MRD messages are
              processed.

         If the switch is not the Querier, it should use the 'all-zeros'
         IP Source Address in these proxy queries.  When such proxy
         queries are received, they must not be included in the Querier
         election process.

     5)  An IGMP snooping switch must not make use of information in
         IGMP packets where the IP or IGMP headers have checksum or
         integrity errors.  The switch should not flood such packets but
         if it does, it should also take some note of the event (i.e., incre-
         ment
         increment a counter).  These errors and their processing are
         further discussed in [IGMPv3], [MLD] and [MLDv2].

     6)  The snooping switch must not rely exclusively on the appearance
         of IGMP group
         leave Group Leave announcements to determine when entries
         should be removed from the forwarding table.  The snooping switch  It should imple-
         ment a membership timeout feature to ensure unneeded forwarding
         table entries will be appropriately removed if downstream mem-
         bers silently leave the group or become unavailable for any
         reason. If instead
         implement the switch implements this timeout behavior, it must
         have a feature to override it if router side functionality of the switch is also configured
         to forward unregistered multicast packets IGMP/MLD
         protocol as described in [PROXY] on all its non-router 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

     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.

         This requirement is based on fact that many hosts exist today
         which systems do
         not send Join IP multicast addresses in this range before
         sending or listening to IP multicasts. multicast packets.  Furthermore
         since the 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 this range.  Additionally, some vendors' applications, which
         are not IGMP, use this routers operate in
         the 224.0.0.X address range, range without issuing IGMP Joins, and
         these applications would break if the switch were to prune them
         due to not seeing their not having seen a Join. Join Group message from the
         router.

     2)  Packets with a destination IP address outside 224.0.0.X which
         are not IGMP should be forwarded according to group-based port
         membership tables and must also be forwarded on router ports.
         This is the core IGMP snooping requirement for the data path.

         Discussion: An
         One approach that an implementation could take would be to
         maintain separate member-
         ship membership and multicast router tables in
         software and then "merge" these tables into a current forwarding cache.

     3)  If a switch receives a non-IGMP IPV4 IPv4 multicast packet without
         having first processed Membership Reports for the group
         address, it may forward the packet on all ports, ports but it must
         forward the packet on router ports.  A switch may forward an
         unregistered packet only on router ports, but the switch must
         have a configuration option that suppresses this restrictive
         operation and forces flooding of unregistered packets on all
         ports.

         In environments with v3 hosts an environment where the IGMPv3 hosts are mixed with snooping switch
         does
         switches that do not yet support v3, IGMPv3, the switch's failure
         to flood unregistered streams could prevent v3 hosts from
         receiving their traffic.  Alterna-
         tively,  Alternatively, in environments where
         the snooping switch supports all of the IGMP versions that are
         present, flooding unregistered streams may cause IGMP hosts to
         be overwhelmed by multicast traffic, even to the point of not
         receiving Queries and failing to issue new membership reports
         for their own groups.

     4)  All non-IPv4 multicast packets should continue to be flooded, except where flooded
         out all remaining ports in the forwarding state as per normal
         IEEE bridging operation would result in filtering multi-
         cast packets.  Discussion: operations.

         This ensures requirement is a result of the fact that enabling IGMP
         snooping does groups made up of
         IPv4 hosts and IPv6 hosts are completely separate and distinct
         groups.  As a result, information gleaned from the topology
         between members of an IPv4 group would not break, for example, be applicable when
         forming the topology between members of an IPv6 multicast. group.

     5)  IGMP snooping switches may maintain forwarding tables based on
         either MAC addresses or IP addresses.  If a switch supports

RFC DRAFT                                                   January 2003
         both types of forwarding tables then the default behavior
         should be to use IP addresses.

         Discussion: Forwarding based  If the forwarding table is
         keyed on the MAC addresses is subject to address, the
         problem associated with switch should use the 32-fold destination
         IP address to 1 MAC address
         mapping. break hashing table collisions.

     6)  Switches which rely on information in the IP header should ver-
         ify
         verify that the IP header checksum is correct.  If the checksum
         fails, the information in the packet must not be incorporated
         into the forwarding table.  Further, the packet should be dis-
         carded.
         discarded.

     7)  When IGMPv3 "include source" and "exclude source" membership
         reports are received on shared segments, the switch needs to
         forward the superset of all received membership reports onto
         the shared segment.  Forwarding of traffic from a particular
         source S to a group G must happen if at least one host on the
         shared segment reports an IGMPv3 membership of the type
         INCLUDE(G, Slist1) or EXCLUDE(G, Slist2) where S is an element
         of Slist1 and not an element of Slist2.

2.2.  IGMP snooping related problems

     A special problem arises in networks consisting of IGMPv3 routers
     as well as IGMPv2 and IGMPv3 hosts interconnected by an IGMPv2
     snooping switch.  The router will continue to maintain IGMPv3 even
     in the presence of IGMPv2 hosts, and thus the network will not
     likely converge on IGMPv2.  But it is likely that the IGMPv2 snoop-
     ing
     snooping switch will not recognize or process the IGMPv3 membership
     reports.  Groups for these unrecognized reports will then either be
     flooded (with all of the problems that may create for hosts in a
     network with a heavy multicast load) or pruned by the snooping
     switch.

     Therefore it is recommended that in such a network, the multicast
     router be configured to use IGMPv2.

3.  IPv6 Considerations

     In order to avoid confusion, the previous discussions have been
     based on the IGMP protocol which only applies to IPv4 multicast.
     In the case of IPv6 most of the above discussions are still valid
     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
     a few considerations, also be applied to MLD.  This means that the
     basic functionality of intercepting MLD packets, and building mem-
     bership
     membership lists and multicast router lists, is the same as for
     IGMP.

     In IPv6, the data forwarding rules are more straight forward
     because MLD is mandated for addresses with scope 2 (link-scope) or
     greater.  The only exception is the address FF02::1 which is the
     all hosts link-scope address for which MLD messages are never sent.
     Packets with the all hosts link-scope address should be forwarded
     on all ports.

     MLD messages are also not sent to packets in the address range
     FF0X::/16 when X is 0 or 1
     FF00::/15 (which are encompasses both the reserved FF00::/16 and node-local,
     respectively), and these node-
     local FF01::/16 IPv6 address spaces).  These addresses should never
     appear in packets on the link.

     The three main major differences between IPv4 and IPv6 in relation to
     multicast are:

     -  The IPv6 protocol for multicast group maintenance is called Mul-
        ticast
        Multicast Listener Discovery (MLDv2). [MLDv2].  MLDv2 uses ICMPv6 message
        types instead of IGMP message types.

     -  The ethernet encapsulation is a mapping of 32 bits RFCs [IPV6-ETHER] and [IPV6-FDDI] describe how 24 of the 128
        bit DIP addresses into address are used to form the 48 bit DMAC addresses [IPENCAPS]. for
        multicast groups, while [IPV6-TOKEN] describes the mapping for
        token ring DMAC addresses by using three low-order bits.  The
        specification [IPV6-1394] makes use of a 6 bit channel number.

     -  Multicast router discovery is done accomplished using Neighbor
        Discovery Pro-
        tocol (NDP) Protocol [NDP] for IPv6.  NDP uses ICMPv6 message
        types.

     The IPv6 packet header does not include a checksum field.  Never-
     theless,
     Nevertheless, the switch should detect other packet integrity
     issues.  When the snooping switch detects such an error, it must
     not include information from the corresponding packet in the MLD
     forwarding ta-
     ble. table.  The forwarding code should instead drop the
     packet and take further reasonable actions as advocated above.

     The fact that MLDv2 is using ICMPv6 adds new requirements to a
     snooping switch because ICMPv6 has multiple uses aside from MLD.
     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-
     ets
     packets relevant for MLD snooping.

     Discussion: If an implementation was software-based, wrongly iden-
     tifying non-MLD  A software-based implemention
     which treats all ICMPv6 packets as candidates for MLD snooping would poten-
     tially
     could easily fill its receive queue and bog down the CPU queue with
     irrelevant packets thus preventing packets.  This would prevent the snooping functionality.  Furthermore, ICMPv6 functionality
     from performing its intended purpose and the non-MLD packets
     destined for other hosts would not reach their destinations.

RFC DRAFT                                                   January 2003 could be lost.

     A solution is either to require that the snooping switch looks fur-
     ther
     further into the packets, or to be able to detect a multicast DMAC
     address in conjunction with ICMPv6.  The first solution is desir-
     able only if it is configurable
     desirable when a configuration option allows the administrator to
     specify which ICMPv6 message types should trigger a CPU redirect
     and which should not.  The reason is that a hardcod-
     ing hardcoding of message
     types is inflexible for the introduction of new mes-
     sage message types.  The
     second solution introduces the risk of that new proto-
     cols protocols which use
     ICMPv6 and multicast DMAC addresses but which are
     not related to MLD, wrongly being could be incorrectly identified
     as MLD.  It is sug-
     gested suggested that solution one is preferred if when the
     administrative switch is capable of
     triggering CPU redirects on individual ICMPv6 message types. provided.  If this is not the case, then use solution two.
     the implementator should seriously consider making this switch
     available since Neighbor Discovery messages would be among those
     that fall into this false positive case and are vital for the
     operational integrity of IPv6 networks.

     The mapping from IP multicast addresses to multicast DMAC addresses
     introduces a potentially enormous overlap.  The structure of an
     IPv6 multicast address is shown in the figure below.  Theoretically
     2**80, two to the power of 80 (128 - 8 - 4  As a result,
     there are 2 ** (112 - 4 (32 - 32) 8)), or more than 7.9e28 unique DIP
     addresses could which map to one into a single DMAC address. address in Ethernet and
     FDDI.  This should be compared to 2**5 in the case of IPv4.

     Initial allocation of IPv6 multicast addresses, addresses as described in
     [RFC2735], however, uses cover only the lower 32 24 bits of group ID.  This eliminates
     While this reduces the problem of address ambigu-
     ity ambiguity to group IDs
     with different flag and scope values for the time being, but now, it should be noted
     that the allocation policy may change in the future.  Because of
     the potential overlap it is recommended that IPv6 address based
     forwarding is preferred to MAC address based forwarding.

        |   8    |  4 |  4 |             112 bits                  |
        +--------+----+----+---------------------------------------+
        |11111111|flgs|scop|             group ID                  |
        +--------+----+----+---------------------------------------+

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].
     The introduction of IGMP snooping switches adds the following con-
     siderations with regard to IP multicast.

RFC DRAFT                                                   January 2003

     1) The exclude source failure, which could cause traffic from
     sources that are 'black listed' to reach hosts that have requested
     otherwise.  This can also occur in certain network topologies with-
     out IGMP snooping.

     2) It is possible to generate packets which make the switch wrongly
     believe that there is a multicast router on the segment on which
     the source is attached.  This will potentially lead to excessive
     flooding on that segment.  The authentication methods discussed in
     [IGMPv3] will also provide protection in this case.

     3) IGMP snooping switches which rely on the IP header of a packet
     for their operation and which do not validate the header checksum
     potentially will forward packets on the wrong ports.  Even though
     the IP headers are protected by the ethernet checksum this is a
     potential vulnerability.

     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, IGMP snooping must be considered insecure due to the
     issues above. However, none of the these issues are any worse for
     IGMP snooping than for IGMP implementations in general.

7.  IGMP Questionnaire

     As part of this work the following questions were asked both on the
     MAGMA discussion list and sent to known switch vendors implementing
     IGMP snooping.  The individual contributions have been anonymized
     upon request and do not necessarily apply to all of the vendors'
     products.

     The questions were:

     Q1  Does your switches perform IGMP Join aggregation?  In other
         words, are IGMP joins intercepted, absorbed by the hard-
         ware/software
         hardware/software so that only one Join is forwarded to the
         querier?

     Q2  Is multicast forwarding based on MAC addresses?  Would data-
         grams
         datagrams addressed to multicast IP addresses 224.1.2.3 and
         239.129.2.3 be forwarded on the same ports-groups?

     Q3  Is it possible to forward multicast datagrams based on IP
         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-
         tered
         unaltered TTL?

     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
         have been sent?

     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
         whether or not IGMP joins have been sent?

     Q6  Does your switch support forwarding to ports on which IP multi-
         cast
         multicast routers are attached in addition to the ports where
         IGMP Joins have been received?

     Q7  Is your IGMP snooping functionality fully implemented in hard-
         ware?
         hardware?

     Q8  Is your IGMP snooping functionality partly software imple-
         mented?
         implemented?

     Q9  Can topology changes (for example spanning tree configuration
         changes) be detected by the IGMP snooping functionality so that
         for example new queries can be sent or tables can be updated to
         ensure robustness?

     The answers were:

          ---------------------------+-----------------------+
                                     |     Switch Vendor     |
          ---------------------------+---+---+---+---+---+---+
                                     | 1 | 2 | 3 | 4 | 5 | 6 |
          ---------------------------+---+---+---+---+---+---+
          Q1 Join aggregation        | x | x | x |   | x | x |
          Q2 Layer-2 forwarding      | x | x | x | x |(1)|   |
          Q3 Layer-3 forwarding      |(1)|   |(1)|   |(1)| x |
          Q4 224.0.0.X aware         |(1)| x |(1)|(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 |
          Q7 Hardware implemented    |   |   |   |   |   |   |
          Q8 Software assisted       | x | x | x | x | x | x |
          Q9 Topology change aware   | x | x | x | x |   |(2)|
          ---------------------------+---+---+---+---+---+---+
                    x  Means that the answer was Yes.
      (1) In some products (typically high-end) Yes, Yes; in others No.
        (2) Currently no, but will be really soon.

RFC DRAFT                                                   January 2003

8.  IETF IPR Statement

     "The IETF takes no position regarding Not at the validity or scope of any
     intellectual property or other rights time that might be claimed to
     pertain to the implementation or use of the technology described questionnaire was received
                      but expected in
     this document or the extent near future.

Revision History

     This section, while incomplete, is provided as a convenience to which any license under such rights
     might or might not the
     working group members.  It will be available; neither does it represent that it
     has made any effort to identify any such rights.   Information on removed when the IETF's procedures with respect to rights document is
     released in standards-track and
     standards-related documentation can be found its final form.

     draft-ietf-magma-snoop-06.txt: March 2003

          Changes in BCP-11.   Copies of
     claims of rights response to comments made available for publication during WG last call and any assurances
          assessment by the WG chairs:

          Substantial comments
               Clarification in IGMP forwarding seciton on the
               acceptance of licenses membership reports with source IP address
               0.0.0.0 as being a switch requirement.

               Section 2.1.1.(4): Allow the router port to be made available, or excluded
               from the result General Query messages

               Section 2.1.1.(6): Replace description of an attempt made timing out
               older entries with a reference to obtain IGMP/MLD Proxying.

               Section 2.1.2.(3): Replaced description of timeout
               mechanism with a general license or permission for reference to IGMP/MLD.

               Section 2.1.2.(4)  Expanded rationale to discourage
               leaking info between IPv4 and IPv6 groups.

               Section 3: more strongly encourage the use of such pro-
     prietary rights by implementors or users a
               configuration option for selection of this specification can
     be obtained from the IETF Secretariat."

9.  Acknowledgements

     We would like ICMPv6 message
               types.

          Editorial comments.

               Hyphenation problem resolved for groff by setting then ms
               HY register to thank Martin Bak, Les Bell, Yiqun Cai, Ben Carter,
     Paul Congdon, Toerless Eckert, Bill Fenner, Brian Haberman, Edward
     Hilquist, Hugh Holbrook, Kevin Humphries, Suzuki Shinsuke, Jaff
     Thomas and Rolland Vida zero, disabling all forms for comments the entire
               document
                (".hy 0" and suggestions on this docu-
     ment.

     Furthermore, ".nr" worked only as far as the following companies are acknowledged for their
     contributions: 3Com, Alcatel, Cisco Systems, Enterasys Networks,
     Hewlett-Packard, Vitesse Semiconductor Corporation.  The ordering
     of these names do not correspond
               ms macro).

               Sections moved around - again - to comply with
               rfc2223bis-03 draft. Added copyright notice after memo
               status. Removed table of contents as the column numbers in the
     response table.

10.  Revision History

     This section, while incomplete, draft is provided as fairly
               short. Corrected  a convenience reference typo.

               Section 2.1.2.(3): Requirement and rationale broken into
               separate paragraphs.

               Added references to other IPv6 encapsulation documents,

               Corrected estimates for MAC address collisions for
               Ethernet and FDDI: both specification take the
     working group members.  It will be removed when low-order
               four (not six) bytes from the document is
     released in its final form. IPv6 group addresses.

     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.
          document.  Several editorial changes, however, have been made
          to comply with the rfc editors requirements:

          References splitted in normative and informative sections. sections,
          other related references added.

          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
     only.

     draft-ietf-magma-snoop-03.txt: October 2002

     IGMP Forwarding rules:
          Add references to and become consistant with the current IGMP
          proxy draft,

          Unrecognized IGMP packets should not be ignored because "mbz"
          fields are not zero since packets from future versions are
          expected to maintain consistency.

          Corrections related to IGMP Querier election process.

          Add clarification to how lists of router ports may be assem-
          bled.
          assembled.

     Data Forwarding rules:
          Added discussion of the problems for different IGMP environ-
          ments
          environments in choosing whether to flood or to prune
          unregistered multicasts.

          Added refinements for how to handle NON-IPv4 multicasts, to
          keep IGMP-snooping functionality from interfering with IPv6
          and other multicast traffic.  Any filtering for non-IPv4 mul-
          ticasts
          multicasts should be based on bridge behavior and not IGMP snoop-
          ing
          snooping behavior.

     IGMP snooping related problems:
          Fixed description of interoperability issues in environments
          with v3 routers and hosts, and v2 snooping switches.

          Added discussion of the IGMPv3 "include source" and "exclude
          source" options, and the inability to support them on shared

RFC DRAFT                                                   January 2003
          segments.

     IPv6 Considerations:
          Clarifications regarding address ranges FF00::, FF01:: and all
          hosts FF02::1 in relation to data forwarding.

     draft-ietf-magma-snoop-02.txt: June 2002

          Status section removes document history; moved into this sec-
          tion
          section instead.

          Introduction restores text from the -00 revision that
          describes snooping and its goals

          IGMP flooding rules eased, allowing management option to
          broaden beyond "routers only".

          Removed a should/MAY inconsistancy between IPv4 Forwarding and
          IPv6 processing of checksums.

          IGMP Forwarding Rules: clarify text describing processing of
          non-zero reserved fields.

          Data Forwarding Rules, item 3 is changed from "MUST forward to
          all ports" to "MAY"; item 4 default changes from "MUST" to
          "should use network addresses".

          Added two sets of additional responses to the questionnaire
          and text indicating that responses don't cover all products.

          Removed (commented out) description of IPR issues: IESG is
          aware of them.

     draft-ietf-magma-snoop-01.txt: January 2002

          Extensive restructuring of the original text.

     draft-ietf-idmr-snoop-01.txt:  2001

          Added several descriptions of cases where IGMP snooping imple-
          mentations
          implementations face problems.  Also added several network
          topology figures.

     draft-ietf-idmr-snoop-00.txt: 2001

          Initial snooping draft.  An overview of IGMP snooping and the

RFC DRAFT                                                   January 2003
          problems to be solved.

     11.  Author's

     5.  References

     5.1.  Normative References

          [BRIDGE]     IEEE 802.1D, "Media Access Control (MAC) Bridges"

          [IGMPv3]     Cain, B., "Internet Group Management Protocol,
                       Version 3", RFC3376, October 2002.

          [IPV6-1394]  Fujisawa, K. and Onoe, A., "Transmission of IPv6
                       Packets over IEEE 1394 Networks", RFC3146,
                       October 2001.

          [IPV6-ETHER] Crawford, M., "Transmission of IPv6 Packets over
                       Ethernet Networks", RFC2464, December 1998.

          [IPV6-FDDI]  Crawford, M., "Transmission of IPv6 Packets over
                       FDDI Networks", RFC2467, December 1998.

          [IPV6-TOKEN] Crawford, M., Narten, T. and Thomas, S.,
                       "Transmission of IPv6 Packets over Token Ring
                       Networks", RFC2470, December 1998.

          [MLD]        Deering, S., Fenner, B. and Haberman, B.
                       "Multicast Listener Discovery (MLD) for IPv6",
                       RFC2710, October 1999.

          [MLDv2]      Vida, R. and Costa, L., "Multicast Listener
                       Discovery Version 2 (MLDv2) for IPv6", draft-
                       vida-mld-v2-06.txt, November 2002.

          [MRDISC]     Biswas, S., Cain, B. and Haberman, B., "Multicast
                       Router Discovery", draft-ietf-idmr-igmp-
                       mrdisc-10.txt, January 2003.

          [NDP]        Narten, T., Nordmark, E. and Simpson, W.,
                       "Neighbor Discovery for IP Version 6 {IPv6)",
                       RFC2461, December 1998.

          [PROXY]      Fenner, B.  et al, "IGMP/MLD-based Multicast
                       Forwarding (IGMP/MLD Proxying)", draft-ietf-
                       magma-igmp-proxy-01.txt, November 2002.

          [RFC1112]    Deering, S., "Host Extensions for IP
                       Multicasting", RFC1112, 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.2.  Informative References

          [IANA]       Internet Assigned Numbers Authority, "Internet
                       Multicast Addresses", http://www.isi.edu/in-
                       notes/iana/assignments/multicast-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/articles/
                       Q223/1/36.ASP

     6.  Security Considerations

          Security considerations for IGMPv3 are accounted for in
          [IGMPv3].  The introduction of IGMP snooping switches adds the
          following considerations with regard to IP multicast.

          -   The exclude source failure, which could cause traffic from
              sources that are 'black listed' to reach hosts that have
              requested otherwise.  This can also occur in certain
              network topologies without IGMP snooping.

          -   It is possible to generate packets which make the switch
              wrongly believe that there is a multicast router on the
              segment on which the source is attached.  This will
              potentially lead to excessive flooding on that segment.
              The authentication methods discussed in [IGMPv3] will also
              provide protection in this case.

          -   IGMP snooping switches which rely on the IP header of a
              packet for their operation and which do not validate the
              header checksum potentially will forward packets on the
              wrong ports.  Even though the IP headers are protected by
              the Ethernet checksum this is a potential vulnerability.

          -   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, IGMP snooping must be considered insecure due to
          the issues above. However, none of the these issues are any
          worse for IGMP snooping than for IGMP implementations in
          general.

     7.  Acknowledgements

          We would like to thank Martin Bak, Les Bell, Yiqun Cai, Ben
          Carter, Paul Congdon, Toerless Eckert, Bill Fenner, Brian
          Haberman, Edward Hilquist, Hugh Holbrook, Kevin Humphries,
          Pekka Savola, Suzuki Shinsuke, Jaff Thomas, and Rolland Vida
          for comments and suggestions on this document.

          Furthermore, the following companies are acknowledged for
          their contributions: 3Com, Alcatel, Cisco Systems, Enterasys
          Networks, Hewlett-Packard, Vitesse Semiconductor Corporation.
          The ordering of these names do not necessarily correspond to
          the column numbers in the response table.

     8.  Authors' Addresses

          Morten Jagd Christensen
          Thrane & Thrane
          Lundtoftegaardsvej 93 D
          2800 Lyngby
          email: mjc@tt.dk

          Karen Kimball
          Hewlett-Packard
          8000 Foothills Blvd.
          Roseville, CA 95747
          email: karen.kimball@hp.com

          Frank Solensky
          Bluejavelin, Inc.
          3 Dundee Park
          Andover, MA 01810
          email: fsolensky@bluejavelin.net

RFC DRAFT                                                   January 2003

                                Table of Contents

          1. Introduction  . . . . . . . . . . . . . . . . . . . . .   2
          2. IGMP Snooping Requirements  . . . . . . . . . . . . . .   3
          2.1. Forwarding rules  . . . . . . . . . . . . . . . . . .   3
          2.1.1. IGMP Forwarding Rules . . . . . . . . . . . . . . .   3
          2.1.2. Data Forwarding Rules . . . . . . . . . . . . . . .   6
          2.2. IGMP snooping related problems  . . . . . . . . . . .   7
          3. IPv6 Considerations . . . . . . . . . . . . . . . . . .   7
          4. Normative References  . . . . . . . . . . . . . . . . .   9
          5. Informative References  . . . . . . . . . . . . . . . .  10
          6. Security Considerations . . . . . . . . . . . . . . . .  10
          7. IGMP Questionnaire  . . . . . . . . . . . . . . . . . .  11
          8.

     9.  IETF IPR Statement  . . . . . . . . . . . . . . . . . .  13
          9. Acknowledgements  . . . . . . . . . . . . . . . . . . .  13

          "The IETF takes no position regarding the validity or scope of
          any intellectual property or other rights that might be
          claimed to  pertain to the implementation or use of the
          technology described in this document or the extent to which
          any license under such rights might or might not be available;
          neither does it represent that it has made any effort to
          identify any such rights.  Information on the IETF's
          procedures with respect to rights in standards-track and
          standards-related documentation can be found in [RFC-2026].
          Copies of claims of rights made available for publication and
          any assurances 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 proprietary rights by implementors or
          users of this specification can be obtained from the IETF
          Secretariat."

     10. Revision History . . . . . . . . . . . . . . . . . . .  13
          11. Author's Addresses . . . . . . . . . . . . . . . . . .  16  Full Copyright Statement

          Copyright (C) The Internet Society (2003).  All Rights
          Reserved.

          This document and translations of it may be copied and
          furnished to others, and derivative works that comment on or
          otherwise explain it or assist in its implementation may be
          prepared, copied, published and distributed, in whole or in
          part, without restriction of any kind, provided that the above
          copyright notice and this paragraph are included on all such
          copies and derivative works.  However, this document itself
          may not be modified in any way, such as by removing the
          copyright notice or references to the Internet Society or
          other Internet organizations, except as needed for the purpose
          of developing Internet standards in which case the procedures
          for copyrights defined in the Internet Standards process must
          be followed, or as required to translate it into languages
          other than English.

          The limited permissions granted above are perpetual and will
          not be revoked by the Internet Society or its successors or
          assigns.

          This document and the information contained herein is provided
          on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
          ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
          IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE
          USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR
          ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
          PARTICULAR PURPOSE.

          Acknowledgement:

          Funding for the RFC Editor function is currently provided by
          the Internet Society.