[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Comments on draft-raggarwa-l3vpn-bgp-mvpn-extranet-00.txt



I have a number of comments on this draft.  I've placed them in-line, look
for lines beginning with ****.

2. Introduction

   This document describes clarifications to the procedures in [BGP-

**** Fess up, the document specifies new procedures, not merely
**** "clarifications" to procedures already specified ;-)  I don't think
**** there's any reason to try to hide that.

**** Most of the procedures are analogous (as well they should be) to
**** procedures described in section 8 of draft-rosen-l3vpn-mvpn-mspmsi-
**** 04.txt ("extranet with PIM control plane".  There are a few differences
**** that are worthy of discussion.

   MVPN] for supporting extranets. The procedures specified in this
   document assume that BGP is used for transmission of MVPN customers'
   multicast routing information within the service provider(s)
   infrastructure [BGP-MVPN].

   The extranet functionality is a requirement of RFC4834 [RFC4834]
   (section 5.1.6) and allows a VPN site to receive or send multicast
   traffic from sites (or to sites) of another VPN.

3. Extranet Service Model

   In the context of MVPN the term "extranet" refers to the ability for
   multicast sources in one VPN to send multicast traffic to multicast
   receivers in other VPN(s). Such multicast sources are referred to as
   "extranet sources". The multicast groups to which the extranet
   sources generate traffic are referred to as "extranet groups". The
   receivers that receive multicast traffic from extranet sources are
   referred to as "extranet receivers".

   The IP addresses used by extranet sources MUST NOT overlap with the

**** "extranet sources and RPs", I think.

   IP addresses used by VPNs that receive multicast traffic from such
   sources.

**** I think this is too strong a restriction.  Suppose company X is
**** providing some content to company Y and some entirely different content
**** to company Z.  And suppose this is done in source-specific mode (SSM),
**** where Y gets its content from X's source S1 and Z gets its content from
**** X's source S2.

**** Clearly Y cannot have its own "intranet" system with source address S1,
**** and Z cannot have its own "intranet" system with source address S2.
**** Let's call this the "weak overlap restriction".  Violation of the weak
**** overlap restriction would cause the address S1 to be ambiguous in VPN Y
**** and would cause the address S2 to be ambiguous in VPN Z.

**** However, the draft poses a stronger restriction, viz., that Y should
**** not be able to have an intranet source S2 and that Z should not be able
**** to have an intranet source S1. Let's call this the "strong" overlap
**** restriction.

**** I don't think the strong overlap restriction is either necessary or
**** desirable.  As long as the weak overlap restriction is in effect,
**** there's no reason why VPN Y should not have an intranet system with
**** address S2 or who VPN Z should not have an intranet system with address
**** S1.  No ambiguity would result.

**** If I were the SP connecting X, Y, and Z, I don't think I would want to
**** tell company Y "sorry, you can't use address S2 in your internal
**** network, because X is using S2 to send content to Z".  The folks over
**** at company Y will probably say "we don't care what X uses to send
**** content to Z, what does that have to do with us?"  So I'm not sure the
**** strong overlap restriction is deployable in practice.

**** The procedures in section 8 of draft-rosen-l3vpn-mvpn-mspmsi do not
**** have the strong address restriction, but only the weak one.

   Moreover, in the case of PIM-SM in ASM mode addresses used
   by extranet groups MUST NOT overlap with the group addresses used by
   VPNs that have receivers for the extranet groups.

**** Again, this seems too strong.  In a given VPN, a given group address
**** either has extranet sources or it doesn't.  But I don't see why the SP
**** should tell company Y "you can't use group address G internally; X is
**** already using G to talk to Z".


4. Routing Exchange in Support of Extranets

   VRFs in the VPN that wish to access multicast extranet sources in
   other VPNs MUST be able to import the "necessary" unicast and BGP
   MVPN auto-discovery routes advertised by other PEs for VPNs that
   contain the extranet sources.

   The "necessary" routes are the routes required by VRFs to receive
   multicast traffic for extranet sources and groups from other VPNs.
   This includes unicast VPN-IP routes to extranet sources, as well as
   BGP MVPN Source Active auto-discovery routes for extranet sources and
   groups.  It also includes Intra-AS, Inter-AS and S-PMSI auto-
   discovery routes that carry P-Tunnel attributes for P-Tunnels used by
   the other VPNs for sending multicast traffic for multicast sources
   and groups.  Following describes procedures that ensure that the
   necessary routes can be imported.

   Case 1: PIM-SM in SSM mode. In this scenario a necessary condition
   for (C-S,C-G) traffic received on a particular VRF to be forwarded
   downstream is for the VRF to have a VPN-IP route to C-S. In other

**** It took me a little while to understand what "received on a particular
**** VRF" means.  I think "received on a particular VRF" is supposed to mean
**** "received on an interface not associated with the VRF", i.e., received
**** from the backbone or from a local interface that is associated with a
**** different VRF.  I also think "forwarded downstream" means "forwarded
**** over an interface that is associated with the VRF".  Is that a correct
**** interpretation? 

   words the route to C-S must be advertised in the extranet. If this
   condition is not satisfied the traffic is discarded by the VRF when
   received from a CE.

**** "Discarded by the VRF"?  Do you mean that the traffic is discarded
**** before it is seen by the VRF's C-PIM instance, or that it is processed
**** by the C-PIM instance and then discarded as having come from the wrong
**** RPF interface"?

**** It seems to me that case 1 does not "describe procedures that ensure
**** that the necessary routes can be imported", as was promised in the
**** paragraph before case 1.  It describes a procedure for discarding
**** packets when the necessary routes have not been imported.


   Case 2: PIM-SM in ASM mode. To fit the ASM model, if a given C-G is
   in the extranet, then the C-RP for that C-G and all the C-Ss sending
   to that C-G should be in the extranet as well (or to be more precise,
   all the VPN-IP routes to C-RP and these C-Ss have to advertised in
   the extranet). Note that for a given C-G that is part of the extranet
   formed by several VPNs, C-Ss for that C-G may be present in any of
   these VPNs.

**** This is the strong overlap restriction again.

   VRFs connected to the sites that have extranet receivers for a given
   extranet source MUST be able to import a VPN-IP route to that source.
   This could be accomplished by either (a) setting the appropriate RTs
   that control import of VPN-IP routes on the VRFs connected to the
   receivers, or (b) setting the appropriate RTs that control export of
   VPN-IP routes on the VRF connected to the source.

**** In the likely case that you only want a VRF connected to extranet
**** receivers to import a select set of routes from the other VPN, you
**** likely need a separate 'extranet' RT as import RT for the VRF, and a
**** means of exporting the RT with specific routes at the sender VRF.

   Note that as long as the Source Active auto-discovery routes and S-
   PMSI auto-discovery routes use the default setting for their RTs,
   setting up the appropriate RTs for VPN-IP routes, as described above,
   would also result in the appropriate import of Source Active auto-
   discovery routes, and S-PMSI auto-discovery routes.

**** I'm not sure there's a default covering the case in which different
**** VPN-IP routes carry different RTs.  A reference to the relevant section
**** of [BGP-MVPN] would be useful.

   In addition, VRFs connected to the sites that have extranet receivers
   for a given extranet source MUST be able to import I-PMSI auto-
   discovery route originated by the VRF connected to the source. This
   could be accomplished by either (a) setting the appropriate RTs that
   control import of I-PMSI auto-discovery routes on the VRFs connected
   to the receivers, or (b) setting the appropriate RTs that control
   export of I-PMSI auto-discovery routes on the VRF connected to the
   source.

**** Note that if the A-D routes do not have at least one RT in common with
**** the VPN-IP routes, then option 2 of section 6.2 will fail.  However,
**** nothing in this section seems to require that the A-D routes and the
**** VPN-IP routes have any RT in common.  I think the section requires that
**** the A-D routes and the VPN-IP routes each get imported into a
**** particular set of VRFs, but that doesn't require that they have any RT
**** in common.

   If a given VRF connected to a given extranet source uses P2MP RSVP-TE
   as an inclusive P-tunnel to carry (multicast) traffic from that
   source, then this VRF MUST also be able to import intra-AS I-PMSI
   auto-discovery routes originated by the VRFs connected to the sites
   that have extranet receivers for that source.

**** If you use option 1 of section 6.1, then presumably there's an RSVP-TE
**** P2MP LSP for intranet traffic, and a separate one for extranet
**** traffic.  How does the headend PE know which of the other PEs need to
**** be added to which of the two LSPs?

**** An overall comment on the structure of this section: note that unlike
**** case 1, case 2 does discuss the import/export of the VPN-IP routes to
**** the C-S or C-RP.  However, case 2 does not discuss the discard of
**** packets when VPN-IP routes to the C-S or C-RP are not present in the
**** VRF.  I'm not sure this way of organizing the text is right, as the
**** topic (importing/exporting the right set of unicast routes) is not
**** really any different for SSM than it is for ASM, and the rules for
**** discarding multicast data packets when the necessary VPN-IP routes are
**** not present also do not seem to be different for SSM than for ASM.


5. Multicast Extranet over Selective P-tunnels

   Procedures in [BGP-MVPN] along with the routing exchange
   clarifications described in the previous section, are sufficient to
   support the scenario when the multicast extranet traffic is carried
   over selective P-tunnels (P-tunnels advertised by S-PMSI auto-
   discovery routes).

**** For aggregated S-PMSIs, I think this is only correct if the strong
**** overlap restriction holds.  If only the weak overlap restriction holds,
**** then we could have the following situation.  VPN1 might have (S1,G) and
**** (S2,G) sources.  VPN2 might have (S1,G) sources, but might receive
**** (S2,G) traffic from VPN1.  So VPN1 might transmit (S1,G) and (S2,G) on
**** one aggregated S-PMSI, while VPN2 transmits (S1,G) on a different
**** S-PMSI.  VPN2's receiving VRFs would have to know to discard the (S1,G)
**** traffic from VPN1.  I think these discard procedures are the same that
**** you need for option 2 of section 6.2.


6. Multicast Extranet over Inclusive P-tunnels

   There are (at least) three possible ways to support extranet
   multicast over inclusive P-tunnels.

**** Probably some text like that in section 8.5 of draft-rosen-l3vpn-mvpn-
**** mspmsi is needed, to cover the case where extranet traffic flows from
**** one VRF to another on the same PE.


6.1. Option 1

**** I note that this is a model that is not discussed in section 8 of
**** draft-rosen-l3vpn-mvpn-mspmsi.  

   Each VRF that has set of extranet sources being part of that VRF uses
   not one, but two inclusive P-tunnels for sending multicast traffic.
   The first one is used for sending multicast traffic from the non
   extranet sources; the second is used for sending multicast traffic
   from the extranet sources.   Each of these P-tunnels will be advertised
   by its own I-PMSI auto-discovery route. Therefore, these two routes
   MUST NOT use the same RD. The distribution scope of the second route
   SHOULD include all the VRFs that are within the scope of the first
   route, plus all the other VRFs that have the extranet receivers for
   the extranet sources of the VRF that originates the route.

**** So if VPN X has any sources that have been designated as extranet
**** sources, any VRF in VPN X needs to join two I-PMSIs.  Even the VRFs in
**** X that do not need to receive the extranet traffic still need to join
**** the extranet PMSI.  This doesn't seem right; why should a VRF have to
**** join a second I-PMSI if it doesn't need to receive any traffic from
**** outside its own VPN?

**** If VPN X needs to source some extranet traffic to VPN Y and some
**** different extranet traffic to VPN Z, then we either need to ensure that
**** the strong overlap restriction holds or else the receiver VRFs need to
**** apply the packet discard procedure described in section 6.2.

   To carry (C-S, C-G) multicast traffic the PE by default should use
   the P-tunnel that has been advertised in the I-PMSI auto-discovery
   route that has the same set of RTs as the VPN-IP route to C-S
   advertised by the PE.

**** Some guidance covering the non-default case would be helpful ;-)

   A special case of this option is the scenario where the set of
   extranet sources within a given VRF is the same as the set of
   multicast sources within that VRF. In this case there is no need to
   have two P-tunnels - one P-tunnel would suffice. As a result only one
   I-PMSI auto-discovery route would need to be originated by that VRF.


6.2. Option 2

**** I believe this corresponds to the "red method" described in section 8.2
**** of (you guessed it) draft-rosen-l3vpn-mvpn-mspmsi.

   Each VRF has just one inclusive P-tunnel that is used to send data
   originated by the sites connected to that VRF. In this case if the
   set of extranet multicast sources are part of that VRF, then all
   other VRFs that are part of the extranet must be able to receive data
   on that P-tunnel (all these VRFs must be able import the I-PMSI auto-
   discovery route that advertises this P-tunnel).

   A VRF that is receiving traffic on an inclusive P-tunnel from the
   extranet sources connected to another VRF may also receive on that P-
   tunnel the non-extranet traffic from that VRF. Such traffic will be
   dropped by the receiving VRF anyway if it doesn't have (C-S, C-G)

**** or (C-*,C-G) state

   forwarding state for this non-extranet traffic. The receiving VRF may
   have forwarding state for such traffic if the address space for the
   non-extranet sources connected to the sending VRF overlaps with the
   address space of the sources in the receiving VRF's VPN. To take care
   of this case the receiving VRF MUST be able to drop the non-extranet
   traffic if it arrives on the unexpected P-Tunnel.  The following
   describes how the unexpected P-Tunnel is determined.

   When the local PE receives from other PEs (multicast) traffic
   corresponding to the (multicast) state advertised in the C-multicast
   route originated by the local PE, the PE MUST discard (and not
   forward) this traffic if it was received on a P-tunnel that is
   advertised by an I-PMSI auto-discovery route whose RTs form an empty
   intersection with the RTs carried in the VPN-IP route for the address
   carried in the Multicast Source field of MCAST-VPN NLRI. This check
   is in addition to the checks specified in section 9.1 of [MVPN-ARCH].

**** I don't think the check as stated is precisely correct.  I think the
**** condition for NOT discarding traffic should be "the intersection of the
**** set of RTs carried by the VPN-IP route and the set of RTs carried by
**** the I-PMSI A-D route contains one of the import RTs of the VRF".  the
**** intersection being non-null does not imply that both the A-D route and
**** the VPN-IP route were actually imported into the VRF.

   Note that for the above procedure to work, there should be a
   consistent choice with respect to handling import/export of VPN-IP
   routes and I-PMSI auto-discovery routes. That is, either (a) the
   import/export of both types of routes should be controlled by setting
   the appropriate RTs on the VRFs connected to the receivers, or (b)
   the import/export of both types of routes should be controlled by
   setting the appropriate RTs on the VRF connected to the source.


**** I don't really follow this.  In this model, the multicast data traffic
**** is carried in the I-PMSI of the VPN containing the transmitters, call
**** it "VPN red".  If some other VPN, "VPN blue", has receivers then the
**** blue VRFs have to be configured to import both red and blue routes.  I
**** don't see how you can set this up properly without explicit
**** configuration at the receiver end.

**** It's highly unlikely that you will want the blue VRFs to import all the
**** red routes, as this would allow blue hosts to unicast to red hosts.  So
**** it's more likely you will need a distinct RT to mark the red routes
**** that are supposed to be imported by the blue VRFs.  So there will
**** generally be configuration at both ends.


7. Option 3

   Each VRF that has set of extranet multicast sources being part of
   that VRF is a root of as many inclusive P-tunnels as the number of
   MVPNs in the extranet. A given (C-S, C-G) multicast traffic has to be
   sent over each of these P-tunnels. From the point of view of the
   number of P-tunnels, and the amount of replication required this is
   the least desirable option, and is included here just for the sake of
   completeness.

**** This is essentially the "blue method" of section 8.3 of
**** draft-...-mspmsi.  While this model does have the disadvantage of
**** causing the ingress PE to transmit multicast data on two or more
**** P-tunnels, it has the advantage of being the only option that does not
**** require either (a) the strong overlap restriction, or (b) configuration
**** at the receiver end.

**** We have found this model to be favored by providers who are managing
**** content distribution, because they can configure just the transmitter
**** end (the ingress PE) in order to determine which receivers are allowed
**** to receive a given transmission.  To allow the content to be sent to a
**** new VPN, the new VPN's RT just has to be added to the set of RTs
**** carried by the routes originated by the ingress PE.

**** This model has the further advantage of being the only model that
**** delivers to the receiver VRFs only the extranet traffic that the
**** receiver VRFs really need.  I.e., a receiver VRF in a given VPN
**** doesn't get extranet  traffic that is for some other VPN , and it
**** doesn't the intranet traffic of any other VPN.

**** For these reasons, I think this option is preferable to "option 1".

11. References

11.2. Informative References

**** I  think there is  sufficient overlap  with the  pre-existing "Extranet
**** over PIM" material in  draft-rosen-...-mspmsi to warrant an informative
**** reference to it.