Vipin,
    Good stuff.  See below for responses in-line.

On 11/25/2015 4:25 PM, Vipin Kumar wrote:
> Hi Lou,
>
> Based on what we have in quagga, this is how we seem to be converging
> on this:
> (I sent email previously to agree with Paul's suggestion about keeping
> view|vrf both)
>
>
> *1. Simple VRF (no lxvpn) case*
>
>     *BGP mode config:*
>
>
>         router bgp <asn> vrf <name1>
>
>
>           ! regular peering.
>
>           ! redistribution
>
>           ! 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)

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.

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?
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)

>             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]>> 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]>
>     > 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