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

"Wanghaibo (Rainsword)" <[email protected]> Mon, 18 Nov 2019 16:49:11 +0000
Newsgroups gmane.ietf.idr
Message-ID <1E61161D6E31D849BEA887261DB609348C9DC694@nkgeml514-mbx.china.huawei.com>
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