Re: 答复: draft-ietf-idr-bgp-model

Yingzhen Qu <[email protected]> Mon, 18 Nov 2019 22:03:54 -0800
Newsgroups gmane.ietf.idr
Message-ID <CABY-gOM=YDN8gQUAXW2KeiGdXMxBUKiiZAkCiFEGG5SQUaNoXA@mail.gmail.com>
Hi Jeff,

I would think it makes more sense to do this binding in BGP module because
it is sort of a special case related with BGP, but I'm not sure what's the
best way to do it.

possible solutions:
1. add a reference
2. add a configuration
3.  ...

Thanks,
Yingzhen

On Mon, Nov 18, 2019 at 8:49 AM Wanghaibo (Rainsword) <
[email protected]> wrote:

> Hi Jeff,
>
>         My question is similar to "how do you bind a given routing
> instance (e.g. VRF) to a given BGP session?"
>
>     Now multiple vendors have implemented this feature.
>     They don't bind a vrf to a given BGP session, but bind to different
> public bgp instance.
>
>         For example:
>     bgp instance 1 as 100
>       neighbor A remote-as 100
>        address-family ipv4-vpn, evpn enabled
>       neighbor B remote-as 200
>        address-family ipv4-vpn enabled
>     bgp instance 2 as 200
>       neighbor C remote-as 200
>        address-family evpn enabled
>     vrf vrf1
>       bgp instance-toCE1 as 65001
>        neighbors ...
>     vrf vrf2
>       ospf instance-toCE2
>        areas...
>
>     Vrf1 bind to bgp instance 1
>     Vrf1's VPN routes will advertised through bgp instance 1's neighbor
> A&B, through VPNv4 or EVPN family
>     Vrf2 bind to bgp instance 2
>     Vrf2's VPN routes will advertised through bgp instance 2's neighbor C,
> through EVPN family.
>         The two bgp instance are separate from each other.
>
>     It seems like vrf1 bind to neighbor A&B, vrf2 bind to neighbor C.
>     But the neighbors are contained in a bgp instance. ( neighbor A&B in
> bgp instance 1, neighbor C in bgp instance2)
>
>         According to RFC8022, we can create multiple bgp instance for
> public routing.
>     But now we cannot specify one vrf how to bind to one bgp instance's
> according to current bgp model.
>
> Regards,
> Haibo
>
> -----邮件原件-----
> 发件人: Jeffrey Haas [mailto:[email protected]]
> 发送时间: 2019年11月18日 19:09
> 收件人: Wanghaibo (Rainsword) <[email protected]>
> 抄送: [email protected]; [email protected]
> 主题: Re: [Idr] draft-ietf-idr-bgp-model
>
> Per IDR mic comment, copying once again to IDR since I mis-laid the mail.
> My apologies, Haibo.
>
> If I understand your comment correctly, your question is "how do you bind
> a given routing instance (e.g. VRF) to a given BGP session?"
>
> If so, I think you are correct.  We do not have a clean way to specify
> this.
> It may also have impacts on the network instancing model in general.  Let
> us raise the issue with netmod working group.
>
> -- Jeff
>
> On Tue, Aug 27, 2019 at 03:39:17AM +0000, Wanghaibo (Rainsword) wrote:
> > Hi Jeff,
> >
> >  Thanks for your reply.
> >
> >  I have read this example. But it doesn't solve my doubts.
> >  If I have two public bgp instance like this:
> >     "ietf-routing:routing": {
> >        "router-id": "192.0.2.1",
> >        "control-plane-protocols": {
> >          "control-plane-protocol": [
> >            {
> >              "type": "ietf-routing:bgp",
> >              "name": "bgp0",
> >              "description":
> >                "Bgp for CustomerA.",
> >              "bgp": {
> >                        "neighbors":{
> >                         "neighbor":[
> >                           {
> >                                "remote-address":"192.0.2.1",
> >                    "peer-as":"64497"
> >                      "afi-safis":{
> >                      "afi-safi":[
> >                        "afi-safi-name":"bt:l3vpn-ipv4-unicast"
> >                       ]
> >                     }
> >                           }
> >                          ]
> >                     }
> >               }
> >            }
> >                ]
> >          "control-plane-protocol": [
> >            {
> >              "type": "ietf-routing:bgp",
> >              "name": "bgp1",
> >              "description":
> >                "Static routing is used for the internal network.",
> >              "bgp": {
> >                        "neighbors":{
> >                         "neighbor":[
> >                           {
> >                                "remote-address":"192.0.3.1",
> >                    "peer-as":"64497"
> >                      "afi-safis":{
> >                      "afi-safi":[
> >                        "afi-safi-name":"bt:l2vpn-evpn"
> >                       ]
> >                     }
> >                           }
> >                          ]
> >                     }
> >               }
> >             }
> >          ]
> >        },
> >
> >  And I have two vrf instance like :
> >     "ietf-network-instance:network-instances": {
> >       "network-instance": [
> >         {
> >           "name": "vrf-old",
> >            ...
> >         }
> >        ]
> >       }
> >     "ietf-network-instance:network-instances": {
> >       "network-instance": [
> >         {
> >           "name": "vrf-new",
> >            ...
> >         }
> >        ]
> >       }
> >
> >   I want to specify the vrf-old use bgp0 to advertise routes using
> l3vpn-ipv4-unicast, and use bgp1 for vrf-new to advertise routes using
> l2vpn-evpn with type5.
> >   So how can I do this ?
> >
> > Regards,
> > Haibo
> >
> > -----Original Message-----
> > From: Jeffrey Haas [mailto:[email protected]]
> > Sent: Tuesday, August 27, 2019 4:39 AM
> > To: Wanghaibo (Rainsword) <[email protected]>
> > Cc: [email protected]; [email protected]
> > Subject: Re: [Idr] draft-ietf-idr-bgp-model
> >
> > On Thu, Aug 15, 2019 at 12:32:01PM +0000, Wanghaibo (Rainsword) wrote:
> > > Hi authors,
> > >
> > > I have some question about the bgp model.
> > >
> > > In current model, the bgp module will augment to routing,
> > >      /rt:routing/rt:control-plane-protocols
> > >                /rt:control-plane-protocol:
> > > And the routing will schema mount to network-instance.
> > >
> > > In this model, how to realize the multiple bgp public instance, like
> > > that
> > >
> > > bgp instance 1 as-number 100
> > >   neighbor 2.2.2.2
> > > address-family vpn-ipv4
> > >   vrf vpn1
> > > neighbor 11.1.1.1
> > >   address-family ipv4
> > >
> > > bgp instance 2 as-number 200
> > >   neighbor 3.3.3.3
> > > address-family vpn-ipv4
> > >   vrf vpn2
> > > neighbor 12.1.1.1
> > >   address-family ipv4
> > >
> > > Bgp doesn't like ospf or isis, the vrf's bgp will associate to public
> bgp's special address family.
> > > I'm not find how to describe the associate in current model
> >
> > The bgp model uses NMDA:
> >   augment "/rt:routing/rt:control-plane-protocols/"
> >         + "rt:control-plane-protocol" {
> >
> > You may find this example from RFC 8349 helpful:
> >
> > https://tools.ietf.org/html/rfc8349
> >
> > : Appendix D.  Data Tree Example
> > : [...]
> > :
> > :
> > :      "ietf-routing:routing": {
> > :        "router-id": "192.0.2.1",
> > :        "control-plane-protocols": {
> > :          "control-plane-protocol": [
> > :            {
> > :              "type": "ietf-routing:static",
> > :              "name": "st0",
> > :              "description":
> > :                "Static routing is used for the internal network.",
> > :
> >
> > The definition of control plane protocols permits multi-instancing via
> name:
> >
> > :        container control-plane-protocols {
> > :          description
> > :            "Support for control-plane protocol instances.";
> > :          list control-plane-protocol {
> > :            key "type name";
> > :            description
> >
> > -- Jeff
> _______________________________________________
> Idr mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/idr
>

_______________________________________________
Idr mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/idr