Network Working Group                                          V. Kamath
Internet-Draft                                                    VMware
Intended status: Standards Track            R. Chokkanathapuram Sundaram
Expires: May 4, 2021                                 Cisco Systems, Inc.
                                                              R. Banthia
                                                                  Apstra
                                                                A. Gopal
                                                     Cisco Systems, Inc.
                                                        October 31, 2020


                       PIM Null-Register packing
                draft-ietf-pim-null-register-packing-06

Abstract

   In PIM-SM networks PIM Register messages are sent by the Designated
   Router (DR) to the Rendezvous Point (RP) to signal the presence of
   Multicast sources in the network.  There are periodic PIM Null-
   Registers sent by a DR to the RP to keep the state alive at the RP as
   long as the source is active.  The PIM Null-Register message carries
   information about a single Multicast source and group.

   This document defines a standard to send information about multiple
   multicast sources and multicast groups in a single PIM Null-Register
   message, in a packed format.  This document also discusses the
   interoperability between PIM routers that support the new packed
   message format and PIM routers that do not support the new format.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

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

   This Internet-Draft will expire on May 4, 2021.






Kamath, et al.             Expires May 4, 2021                  [Page 1]


Internet-Draft          PIM Null-Register packing           October 2020


Copyright Notice

   Copyright (c) 2020 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Conventions used in this document . . . . . . . . . . . .   3
     1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Packed Register Capability  . . . . . . . . . . . . . . . . .   3
   3.  PIM Packed Null-Register message  . . . . . . . . . . . . . .   4
   4.  PIM Packed Register-Stop message format . . . . . . . . . . .   5
   5.  Protocol operation  . . . . . . . . . . . . . . . . . . . . .   6
   6.  PIM Anycast RP considerations . . . . . . . . . . . . . . . .   6
   7.  PIM RP router version downgrade . . . . . . . . . . . . . . .   7
   8.  Fragmentation consideration . . . . . . . . . . . . . . . . .   7
   9.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .   8
   12. Normative References  . . . . . . . . . . . . . . . . . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8

1.  Introduction

   PIM Null-Registers are sent by a DR periodically for Multicast
   streams to keep the states active on the RP, as long as the source is
   active.  As the number of multicast sources increases, the number of
   PIM Null-Register messages that are sent also increases.  This
   results in more PIM packet processing at the RP and at the DRs.

   The control plane policing (COPP), monitors the packets that are
   processed by the control plane.  Due to the high rate at which Null-
   Registers are received at the RP, this can lead to COPP drops of
   Multicast PIM Null-Register messages.  This document defines a method
   to efficiently pack multiple PIM Null-Registers [[RFC7761]
   (Section 4.4)] and Register-Stops [[RFC7761] (Section 3.2)] into a




Kamath, et al.             Expires May 4, 2021                  [Page 2]


Internet-Draft          PIM Null-Register packing           October 2020


   single message as these packets anyway do not contain encapsulated
   data.

   The document also discusses interoperability with PIM routers that do
   not understand the new packet format.

1.1.  Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] when, and only when, they appear in all capitals, as
   shown here.

1.2.  Terminology

   RP:  Rendezvous Point

   DR:  Designated Router

2.  Packed Register Capability

   To ensure compatibility with routers that do not support processing
   of the packed format, A router (DR) can decide to pack multiple Null-
   Register messages based on the capability received from the RP as
   part of Register-Stop.  Thus a DR will switch to the packed format
   only when it learns RP is capable of handling the packed Null-
   Register messages.

   Conversely, a DR that does not support the new format can continue
   generating the PIM Null-Register using the current format.  To
   exchange the capability information in the Register-Stop message, the
   "reserved" field is used to indicate this capability in those
   Register-Stop messages.  One bit of the reserved field is used to
   indicate the "packing" capability (P bit).  The rest of the bits in
   the "Reserved" field will be retained for future use.


    0                   1                   2                     3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |PIM Ver| Type  |P|  Reserved   |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Group Address (Encoded-Group format)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Source Address (Encoded-Unicast format)            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     Figure 1: PIM Register-Stop message with capability option



Kamath, et al.             Expires May 4, 2021                  [Page 3]


Internet-Draft          PIM Null-Register packing           October 2020


   PIM Version, Type, Checksum, Group Address, Source Address:

      Same as [RFC7761] (Section 4.9.4)

   P:

      Capability bit (flag bit 7) used to indicate support for the
      Packed-Register Capability

3.  PIM Packed Null-Register message

   PIM Packed Null-Register message format includes a count to indicate
   the number of Null-Register records in the message.



    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |PIM Ver| Type  |Subtype|  FB   |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Count       |              Reserved                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Group Address[1]   (Encoded-Group format)                 |
   |     Source Address[1]  (Encoded-Unicast format)               |
   .                                                               .
   .                                                               .
   .                                                               .
   .                                                               .
   .     Group Address[N]                                          .
   |     Source Address[N]                                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       Figure 2: PIM Packed Null-Register message format

   PIM Version, Reserved, Checksum:

      Same as [RFC7761] (Section 4.9.3)

   Type, SubType:

      The new packed Null-Register Type and SubType values TBD.
      [RFC8736]

   Count:

      The number of packed Null-Register records.  A record consists of
      a Group Address and Source Address pair.




Kamath, et al.             Expires May 4, 2021                  [Page 4]


Internet-Draft          PIM Null-Register packing           October 2020


   Group Address, Source Address:

      Same as [RFC7761] (Section 4.9.4)

4.  PIM Packed Register-Stop message format

   The PIM Packed Register-Stop message includes a count to indicate the
   number of records that are present in the message.


    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |PIM Ver| Type  |Subtype|  FB   |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Count     |          Reserved                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Group Address[1]  (Encoded-Group format)                  |
   |     Source Address[1]  (Encoded-Unicast format)               |
   .                                                               .
   .                                                               .
   .                                                               .
   .                                                               .
   .     Group Address[N]                                          .
   |     Source Address[N]                                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Figure 3: PIM Packed Register-Stop message format

   PIM Version, Reserved, Checksum:

      Same as [RFC7761] (Section 4.9.4)

   Type:

      The new Register Stop Type and SubType values TBD

   Count:

      The number of packed Register-Stop records.  A record consists of
      a Group Address and Source Address pair.

   Group Address, Source Address:

      Same as [RFC7761] (Section 4.9.4)






Kamath, et al.             Expires May 4, 2021                  [Page 5]


Internet-Draft          PIM Null-Register packing           October 2020


5.  Protocol operation

   The following combinations are possible:

   1.  DR and RP both support the PIM Packed Register format

       *  As specified in [[RFC7761]], the DR sends PIM Register
          messages towards the RP when a new source is detected.

       *  An RP supporting this specification SHOULD set the P-bit in
          the corresponding Register-Stop messages.

       *  When a Register-Stop message with the P-bit set is received,
          the DR SHOULD send Packed Null-Register messages (Section 3)
          to the RP instead of multiple Register messages with the N-bit
          set ([[RFC7761]]).

       *  The RP, after receiving a Packed Null-Register message SHOULD
          start sending Packed Register-Stop messages (Section 4) to the
          corresponding DR instead of individual Register-Stop messages.

   2.  DR supports but RP does not support PIM Packed Register format

       *  As specified in [[RFC7761]], DR sends PIM Register towards the
          RP.

       *  RP sends a Register-Stop in the [[RFC7761]] without any
          capability information.

       *  DR then sends Null-Registers in the [[RFC7761]] format.

   3.  RP supports but DR doesn't support the PIM Packed Register format

       *  As specified in [[RFC7761]], DR sends the PIM Register towards
          the RP.

       *  RP sends a PIM Packed Register-Stop towards the DR that
          includes capability information.

       *  Since the the DR doesn't support the PIM Packet Register
          format, it will always send registers according to
          [[RFC7761]].

6.  PIM Anycast RP considerations

   The PIM Packed Register format should be enabled only if it is
   supported by all PIM Anycast RP [[RFC4610]] members in the RP set for
   An RP address.



Kamath, et al.             Expires May 4, 2021                  [Page 6]


Internet-Draft          PIM Null-Register packing           October 2020


7.  PIM RP router version downgrade

   Consider a PIM RP router that supports PIM Register Packing and then
   downgrades to a software version which does not support PIM Register
   Packing.  The DR that sends the PIM Packed Register message will not
   get a PIM Register-Stop message back.  In such scenarios the DR MUST
   send an unpacked PIM Register and check the PIM Register-Stop to see
   if the capability bit (P-bit) for PIM Packed Register is set or not.
   If it is not set then the DR will continue sending unpacked PIM
   Register messages.

8.  Fragmentation consideration

   When building a PIM Packed Register message using the packed-register
   format, a router should include as many records as possible based on
   the path MTU towards RP, if path MTU discovery is done.  Otherwise,
   the number of records should be limited to the MTU of the outgoing
   interface.

9.  Security Considerations

   General Register messages security considerations from [[RFC7761]]
   apply.  As mentioned in [[RFC7761]], Register messages and Register-
   Stop messages are forwarded by intermediate routers to their
   destination using normal IP forwarding.  Without data origin
   authentication, an attacker who is located anywhere in the network
   may be able to forge a Register or Register-Stop message.  We next
   consider the effect of a forgery of each of these messages.  By
   forging a Register message, an attacker can cause the RP to inject
   forged traffic onto the shared multicast tree.

   By forging a Register-Stop message, an attacker can prevent a
   legitimate DR from registering packets to the RP.  This can prevent
   local hosts on that LAN from sending multicast packets.  The above
   two PIM messages are not changed by intermediate routers and need
   only be examined by the intended receiver.  Thus, these messages can
   be authenticated end-to-end.  Attacks on Register and Register-Stop
   messages do not apply to a PIM-SSM-only implementation, as these
   messages are not required for PIM-SSM.

   There is another case where a spoof Register can be sent to make it
   appear that is is from the RP, and that the RP supports this new
   packed capability when it does not.  This can cause Null-Registers to
   not be received by the RP.  But standard methods to prevent spoofing
   should take care of this case.  Spoofing methods like uRPF, or on
   domain boundary, filter out packets coming from the outside from
   addresses that belong to routers inside.




Kamath, et al.             Expires May 4, 2021                  [Page 7]


Internet-Draft          PIM Null-Register packing           October 2020


   All these considerations apply equally to the [[RFC7761]] messages.

10.  IANA Considerations

      This document requires the assignment of "Capability bit" (P-bit),
      flag bit 7 in the PIM Null-Register message.

      This document requires the assignment of 2 new PIM message types
      for the "PIM Packed Register" and "PIM Register Stop" in the PIM
      Message Types registry.

11.  Acknowledgments

   The authors would like to thank Stig Venaas, Anish Peter, Zheng Zhang
   and Umesh Dudani for their helpful comments on the draft.

12.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4610]  Farinacci, D. and Y. Cai, "Anycast-RP Using Protocol
              Independent Multicast (PIM)", RFC 4610,
              DOI 10.17487/RFC4610, August 2006,
              <https://www.rfc-editor.org/info/rfc4610>.

   [RFC7761]  Fenner, B., Handley, M., Holbrook, H., Kouvelas, I.,
              Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent
              Multicast - Sparse Mode (PIM-SM): Protocol Specification
              (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, March
              2016, <https://www.rfc-editor.org/info/rfc7761>.

   [RFC8736]  Venaas, S. and A. Retana, "PIM Message Type Space
              Extension and Reserved Bits", RFC 8736,
              DOI 10.17487/RFC8736, February 2020,
              <https://www.rfc-editor.org/info/rfc8736>.

Authors' Addresses

   Vikas Ramesh Kamath
   VMware
   3401 Hillview Ave
   Palo Alto  CA 94304
   USA

   Email: vkamath@vmware.com



Kamath, et al.             Expires May 4, 2021                  [Page 8]


Internet-Draft          PIM Null-Register packing           October 2020


   Ramakrishnan Chokkanathapuram Sundaram
   Cisco Systems, Inc.
   Tasman Drive
   San Jose  CA 95134
   USA

   Email: ramaksun@cisco.com


   Raunak Banthia
   Apstra
   333 Middlefield Rd STE 200
   Menlo Park  CA 94025
   USA

   Email: rbanthia@apstra.com


   Ananya Gopal
   Cisco Systems, Inc.
   Tasman Drive
   San Jose  CA 95134
   USA

   Email: ananygop@cisco.com


























Kamath, et al.             Expires May 4, 2021                  [Page 9]