mpls vpn为啥要使用MP-bgp?

发布时间:2020-11-09作者:小编阅读:0

使用vpnv4来封装所以用MPbgp,使用vpnv4来封装的原因是因为有可能存在对端不同vrf表内相同的路由条目 所以通过rd加ip的vpnv4格式进行区分。那么前缀本身community属性携带的rt值已经足够区分到底该条目属于哪个vrf了啊 ,为啥还要使用mp-bgp呢?

mpls vpn为啥要使用MP-bgp?

BGP是路由协议,对吗?

是的,但是在我眼里它更是一个数据库技术。

BGP,发送端(SendingPeer)分享自己的数据库表项,接收端(Receiving Peer)负责接收,问题来了:接收端是否要接收?

如果按照题主的假设,只要比较数据库表项(路由表条目)的community 携带的RT,与本地配置的RT是否相同。

如果相同,接收。否则,不接收。这听起来是一个很不错的主意。

如果接收端支持1000+个客户(VRF),有的客户是IPv4、有的客户是IPv6、有的客户是Ethernet,有的兼而有之,试问需要多少个RT可以区分他们?

至少要几千个RT,对吗?

意味着每一条路由需要匹配几千次,才能决定是否接收,不是吗?

举例

一个路由10.1.1.0/24(RT=10000)过来,至少要匹配几千次才能有结果。

如果过来1万条路由呢,意味着几千万次的匹配查找。这都是纯路由器CPU计算。

据我所知,一个运营商PE路由器有几百万、甚至上千万条路由,则意味着几十亿次的匹配计算,这个计算负担并不轻松。

怎么做可以实现更高效的匹配查找呢?

很简单,分级(二级)查找。

而要实现数据库分级查找,需要定义一级关键字、二级关键字。关键字在数据库里叫键(Key)。

一级键(业务分类)

BGP目前能够承载的业务,可以细分为:

IPv4、IPv6、VPNv4、VPNv6、EVPN、MVPN

每一种业务使用独一无二的ID来区分,这个ID就是AddressFamily + Sub Address Family。这样可以大大缩小的查找的范围。

一级查找的次数 = 路由条目的总数 *6

6代表业务种类的数量。一级键代表业务分类,那么二级键代表的就是客户分类。

二级键(客户分类)

二级键代表不同的客户,每一个客户使用独一无二的ID,这个ID就是大名鼎鼎的RT值。通俗地说,RT就相当于妈妈桑手机里的电话本:小胖子老李,丑八怪老王。维护的是客户名单。

二级查找的次数 = 路由条目的总数* 客户总数

分级查找的总次数 = 一级查找的次数 + 二级查找的次数

= 路由条目的总数 *6 + 路由条目的总数* 客户总数

不分级的查找总次数 = 业务种类 * 路由条目的总数* 客户总数

很显然,分级查找效率更快!

而实现分级查找的正是MP-BGP,当MP-BGP协商握手建立连接时,会通过capability来告知彼此,自己配置的address-family,那么一旦连接建立。对方只会将自己支持的address-family的表项传输过来,至于其它的,压根不会传输过来,这样的效率是不是更高呢?

分类查找这种技术就在我们身边,我们一直没有注意到它的存在。

一艘万吨货轮上运输N多客户的货物,货物的种类有M种,有鞋子、袜子、衣服,巧克力等等。

你是将这些货物不分青红皂白混装在一起,还是将不同种类的货物分别装在不同的集装箱里?

到目的地又是谁的分拣效率高呢?

答案自然是后者!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,请联系站长邮箱:shawn.lee@eliancloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

标题:mpls vpn为啥要使用MP-bgp?

TAG标签:MPLS

地址:https://www.elinkcloud.cn/article/20201109161542.html

上一篇:MPLS的九大优势
下一篇:一文读懂MPLS OAM技术
企微客服

微信扫码咨询

返回顶部