Vipin,
    See below.

On 11/30/2015 3:32 PM, Vipin Kumar wrote:
> Hi Lou,
>
> Certainly helps to have a open discussion upfront. Some of the points
> you are making are resonating well with what I/we had also given some
> thought internally. Please see a few comments inline..
>
> On Fri, Nov 27, 2015 at 12:44 PM, Lou Berger <[email protected]
> <mailto:[email protected]>> wrote:
>
>     Vipin,
>         Good stuff.  See below for responses in-line.
>
>
>     So are you suggesting import / export is not tied to BGP?  Right?
>     RT (and RD) are BGP 'things'.  Also cross -VRF route leaking at a
>     single
>     router (i.e., even in the VRF-lite case) naturally falls out of BGP
>     L3VPN support, so I wouldn't think special code developed just to
>     support this narrow case is the right way to go.  That said, I think
>     it's okay/good to have such vrf 'policy' information be configured
>     outside of the vrf's BGP instance.
>
>
> Yes. For route-targets, I was thinking of not starting with the BGP
> specific restriction, if some application does want to take advantage
> of the concept of import/export through these constructs.
> And I don't have a strong opinion on this.

(related comment below.)

>
>
>     A related consideration is how many core instances can be supported.
>     Our (NVA) VRF import/export (and some CLI) code currently assumes a
>     single 'default' core instance.  I know others have this limitation as
>     well, but it really isn't a fundamental thing so we should decide on
>     which model is the long term objective as it can impact required
>     config
>     info.
>
>     In particular,  it goes to how 'vrf vrf-name' is associated with its
>     core instance.  We currently put this under the single core instance
>     looking to the long term.  Of course another alternative is to add a
>     config line within config-vrf.  I really can argue this either way, so
>     would be interested in the opinions of others. 
>
>      
>
>     There's also the additional issue of import/export filtering using
>     both
>     prefix lists and route maps.  I haven't given this enough thought to
>     discuss at this point.  (We do have some support for this and need to
>     think/discuss internally on how to map our pre-Zebra VRF
>     implementation
>     to the current discussion.)
>
>
>     >
>     > *2. L3VPN VRF case*
>     >
>     >
>     >    a.  BGP as PE-PE, and other IGPs as PE-CE protocols
>     also have pure P and C nodes...
>
>     >
>     >     *BGP mode config:*
>     >
>     >         router bgp <asn>  !default instance with the default-table
>     >
>     >          ..
>     >
>     >           ! this is where vpn address-family config may belong
>     >
>     >         router bgp <asn> vrf <name1>
>     >            ! redistribution from IGPs
>     >
>     >            ! import/export of routes between VRFs based on
>     route-targets
>     >
>     >                  ..
>     >
>     >          router bgp <asn> vrf <name2>
>     >             ! ..
>     >
>     >
>
>     See my comments above.  Again core questions are:
>     1) Are multiple 'cores' supported or only a single default?
>
>
> What are the use-cases you have in mind for enabling multiple
> core/default instances?
>
Are you asking about multiple or single? Single is the minimum, multiple
core would be the case where different customer sets (VRFs) use
independent core infrastructure resources/topologies. (e.g., without
MPLS-TE core).

> Is it more for scaling the default instance better by enabling
> multiple of them, or there is a need of separation inside a default
> instance by means of multiple cores?

I don't think it's a scaling issue.

The main issue with supporting multiple cores today is a  simple
code/config issue, where bgp_get_default is called rather than having
struct bgp properly passed.  Also would need additional cli syntax to
change core/default.
 
>
>
>     2) Where are VRF-specific RTs and RD configured
>         (a) at top level policy
>         (b) or under the core/default BGP instance
>     3) How is local inter-VRF route leaking supported (via BGP L3VPNs
>     or vis
>     special-case zebra code)
>
>
> I dont have an opinion on this yet. However, if we go by standards it
> seem to belong in BGP, but implementation wise if this means avoidable
> data movement/processing between zebra and BGP, then it could be
> implemented in a generic (lib code)way, which zebra and BGP both could
> use.

Perhaps, just would prefer to not have the same function coded
(configured and tested) multiple ways.
Lou
>
> Regards,
> Vipin
>  
>
>     >             Possibly for OSPF (just like BGP multi-instance per
>     daemon)
>     >                 router ospf vrf <name1>
>     >                    !adjacency towards CE
>     >                 router ospf vrf <name2>
>     >                    ..
>     >
>     >
>     >     *Global VRF mode config:*
>     >
>     >
>     >         (config)# vrf vrf-name
>     >
>     >         (config-vrf)# route-target <>:<>  ! May be in an
>     >         address-family specific way
>     >
>     >                              (import/export)
>     >
>     >
>     Same discussion as above.
>
>     >
>     >      b. BGP as PE-PE, and also as PE-CE protocol
>     >
>     >         *
>     >         *
>     >
>     >     *BGP mode config:*
>     >
>     >
>     >         router bgp <asn>  !default instance with the default-table
>     >
>     >          ..
>     >           ! peering towards other PEs/RR
>     >
>     >           ! this is where vpn address-family config may belong
>     >
>     >         router bgp <asn> vrf <name1>
>     >
>     >            ! peering towards CE
>     >
>     >            ! import/export of routes between VRFs based on
>     route-targets
>     >
>     >                  ..
>     >
>     >          router bgp <asn> vrf <name2>
>     >             ! ..
>     >
>     >
>     >
>     >
>     >
>     >     *Global VRF mode config:*
>     >
>     >
>     >         (config)# vrf vrf-name
>     >         (config-vrf)# route-target <>:<>  ! May be in an
>     >         address-family specific way
>     >                              (import/export)
>     >
>     >
>     >
>     >  BGP l3VPN implementation may work across BGP instances, to work on
>     > import/export of routes.
>     >
>     >  For  static routes import/export between VRFs, can be
>     implemented in
>     > Zebra
>
>     I'm not sure this makes sense as the BGP has been the place where most
>     have implemented RT policy as it just falls out from RFC4364/4659
>     implementation.  I'd say focus on simple vrf-lite working first
>     with all
>     the protocols before jumping in on inter-VRF import/export.
>
>     >
>     > Do you (or others) see any issue with this config model going
>     forward
>     > for LxVPNs too?
>     >
>
>     In addition to the questions raised above, I think we should have
>     answers for route policy ( maps and prefix lists).
>
>     Lou
>
>     > Vipin
>     >
>     >
>     >
>     > On Sun, Nov 22, 2015 at 6:50 PM, Lou Berger <[email protected]
>     <mailto:[email protected]>
>     > <mailto:[email protected] <mailto:[email protected]>>> wrote:
>     >
>     >     Vipin,
>     >
>     >     So this maps pretty well when talking vrf-lite, but before
>     making this
>     >     change I think we should agree upon how tunnel based VRFs are
>     >     represented and configured over a core instance so we don't
>     end up
>     >     with
>     >     naming or concept clashes.  If not full syntax, I think we
>     should at
>     >     least have a direction outlined.
>     >
>     >     Have you given any thoughts on how you'd like to handle this?
>     >
>     >     Thanks,
>     >     Lou
>     >
>     >     On 11/22/2015 12:23 AM, Vipin Kumar wrote:
>     >     > Hello Quagga-dev,
>     >     >
>     >     > *Objective of this email:
>     >     > *
>     >     >
>     >     > To see if 'view' keyword can be replaced with 'vrf'
>     >     >
>     >     > *Why:*
>     >     >
>     >     >  1. Code and flow to implement VRFs in BGP is turning out
>     to be
>     >     quite
>     >     > similar to how it is for views. VRF in BGP can be
>     considered as a
>     >     > super-set of the current views functionality. It should be
>     >     possible to
>     >     > realize views as a special type of VRF, and possibly
>     enable it by a
>     >     > config option.
>     >     >
>     >     >     This is to reduce the overhead on implementation (and
>     also on
>     >     > usability) to provide both view and vrf options at
>     >     > configuration/show/clear/debug commands.
>     >     >
>     >     >  2. While views may be working for some use-cases, the
>     support in
>     >     > 'show commands' is not quite complete yet.
>     >     >
>     >     > *More Details:*
>     >     >
>     >     > In a way, this is a follow-up on the VRF discussion we had
>     where we
>     >     > suggested we could use the current BGP multi-instance
>     >     implementation.
>     >     >
>     >     > Currently, BGP has some support for multiple views. These are
>     >     > implemented as separate BGP instances, each with its own
>     set of
>     >     global
>     >     > configuration, neighbors, RIB etc. This effectively makes the
>     >     mapping
>     >     > of a VRF to a view the most logical approach.
>     >     >
>     >     >      bgp multiple-instance
>     >     >
>     >     >      router bgp <asn> view <name1>
>     >     >       ..
>     >     >      router bgp <asn> view <name2>
>     >     >
>     >     >
>     >     > For VRFs, one obvious choice is to use similar model with vrf
>     >     keyword:
>     >     >
>     >     >       router bgp <asn> vrf <name>
>     >     >
>     >     > If views are currently not being used for any real
>     purpose, they
>     >     could
>     >     > be directly replaced with 'vrf' in the user-interface. A
>     'type'
>     >     field
>     >     > for the VRF could be introduced later to support other
>     >     possibilities.
>     >     > If views are being used/deployed now, we'd like to know more
>     >     about how
>     >     > they are used. In this case, we will think of a backward
>     compatible
>     >     > change to introduce VRFs with views.
>     >     >
>     >     > Thought to poll the community to see if thinking in this
>     direction
>     >     > even makes sense.
>     >     >
>     >     > Feel free to send unicast responses/or respond to the
>     thread as is.
>     >     >
>     >     > Regards,
>     >     > Vipin
>     >     >
>     >     >
>     >     >
>     >     >
>     >     > _______________________________________________
>     >     > Quagga-dev mailing list
>     >     > [email protected]
>     <mailto:[email protected]>
>     <mailto:[email protected]
>     <mailto:[email protected]>>
>     >     > https://lists.quagga.net/mailman/listinfo/quagga-dev
>     >
>     >
>     >
>
>
>



_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to