网络虚拟化(SDN,NFV..)和企业骨干网的演化

本来昨天就规划了今天的这篇文章,无奈昨天中午自己喝了将近一瓶的52度二锅头...晚上想着今天怎么着也完了,要颓废难受一天了...没想到早上居然一点都不难受了。于是就写下了本文。正文之前,还是做个广告,喝酒就要喝高度酒,醉得快。醒的也快。     

BGP和IGP的路由黑洞问题

在描写叙述企业骨干网(大型企业的内网)之前。我得先来解释一下互联网路由的层次问题,理解了这个。你才干理解企业内网的构建规则,我还是以问题開始吧。


        路由本身是层次化的,可是路由的查询则是平坦的。比方下图的情形:




如今看上图中红色字描写叙述的问题。显然B并不知道10.1.2.0/24的不论什么信息。尽管说在总体上,AS200知道10.1.2.0/24的下一跳为172.16.1.1,可是由于路由查找是平坦的(系统不会将查询请求发送到一个叫做“AS路由器”的地方来层次化查询),这就要求AS200中每个路由器都有10.1.2.0/24这条路由,显然的解决方式是有的。那就是在边界路由器上把从BGP学到的路由所有注入到IGP,比方OSPF中。然而这会让路由表全然平坦化!

这会丢失BGP路由属性信息,哪些路由是从BGP学习到的,还是能够区分的。系统路由表将会大大膨胀!

属性的丢失是比較严重的,为此将BGP注入到IGP不是一个好办法!
        那么还有什么办法呢?非常easy,那就是建立Full mesh iBGP,即所有路由器之间所有建立iBGP连接,这样在每个路由器均会保存所有的两类路由项,一类是IGP路由项,还有一类是BGP路由项。两类路由项分别由IGP进程和BGP进程分别独立维护,不会相互影响,这就攻克了路由黑洞问题。
         当然,上面的讨论是简化的,没有考虑反射器等机制...介绍BGP和IGP不是本文的目的,本文是想介绍数据中心以及互联网公司骨干网的。


互联网企业骨干网的演化

无论是阿里还是腾讯,或者其它大型企业。一開始创业的时候,其网络大概就是这个样子:




可是总有一天,这些公司会产生自己的大量的内容和数据。于是从一開始租用server。到最后自建IDC机房,终于这些大型互联网企业会拥有多个IDC,这就须要将多个IDC互联起来,从而形成DCI(Data Center Interconnection)网络,也就是所谓的企业骨干网。

事实上不光是互联网企业,传统的制造业企业,跨国银行等也是相似的网络拓扑布局,我本人在2013年左右一直跟这样的跨国银行打交道,而眼下在大型互联网企业就职,也内窥了好多的内网拓扑,可是本着原则,我是不可能公开这些细节的(很多其它的细节我也不知道...),所以我仅仅能简而化之。
        假设企业拥有了多个IDC或者其分公司分布在多个物理区域。将这个分散的地点连接起来就是一个迫切的需求。

问题是採用什么方式连接呢?能够是物理的连接,那么这意味着企业要挖沟布光缆。眼下中国三大运营商(以前的邮电部小弟)均有这个能力和资质来完毕这件事。可是对于大多数企业而言,由于通信资源属于国家级战略资源,是不同意自己挖沟布线的,只是好像听说山西煤老板要自建海底光缆...还好不是在国土上自建...只是也不是非常绝对,假设一家企业財大气粗到一定地步,一切皆有可能的。


假设不能自己挖沟布线,那么咋办?事实上三大运营商已经帮你搞好了,你仅仅须要租用或者购买他们部署的光密集波分复用(DWDM)系统即可,简单快捷。用钱能解决的事决不找关系。这是成功商人的原则。
        好了。如今搞定了不同IDC之间,分公司之间的互联问题。那么一个大型企业的网络便会变成以下的样子:




有点复杂,只是不要紧,仅仅要你知道什么是IGP,什么是BGP,应该是非常好理解的。
        这就是企业骨干网的框架。这样的企业骨干网在国内是没有对外运营权限的,也就是说,它仅仅是一个大的数据库,而不同意终端用户接入穿越。即不同意用户直接接入这个骨干网。然后依靠它的路由系统去訪问别的资源,说白了就是你不能跟三大运营商抢生意。

所以说这些企业内网基本上没有复杂的接入层,然而大型企业须要大量的数据调度。特别是提供CDN服务的企业,所以说它的汇聚层和核心层就必须非常强大!值得一提的是,国内非常多人不会把这样的企业网络看成是骨干网。由于在国内。所谓的骨干网这一称呼是被赋予运营意味的,假设不能运营,不能被接入。那就不是骨干网,而仅仅能是一个“私网”,另外,假设不是挖沟布线建立起来的网络,而仅仅是租用的线路,非常多人也不觉得这是骨干网...事实上名称无所谓。知道概念也即可了。

本质上,所谓的企业骨干,就是DCI网络,把数据中心连在一起,无论是自己挖沟布线还是租用的线路。都算骨干。

DCI骨干网。DCI核心网。随便怎么说吧...
        如今简单说下为什么要将一个网络划分为汇聚层和核心层,事实上非常easy。原则就是能本地交换的尽量本地交换。迫不得已再跨区。以上的企业网拓扑是一个平坦层面上的拓扑,依照这个层次关系,企业网的拓扑能够又一次画例如以下:




如今简化了,不是吗?

新旧两代内部网络的构建

以前。假设跨区域的分公司要二层穿越或者三层穿越,那么就要把整个公网云看作一个路由器,典型的技术就是通过GRE等tunnel技术来封装数据包,隧道模式的VPN就是这么个道理,仅仅是加上了安全层面的东西。例如以下图所看到的:




我们能够看到,作为隧道终结点的路由器设备要完毕的工作特别繁重!

这样的设备事实上把很多其它的功耗消耗在了隧道封装而非路由。随着IDC越来越猛,server的增多,流量的添加,这样的隧道终结点越来越不堪重负,所以依照虚拟化的思想。NFV就被提出并派上了用场。


        总的来讲就是,既然数据到了隧道终结点要被各种封装,那为何数据不能在server内部就完毕封装呢?实现的思路非常easy,事实上就是把专门的硬件设备所要完毕的功能用软件的方式实如今server内部。在虚拟化的时代,一台server再也不是以往看到的一台机器了,每一台server事实上仅仅是个黑盒子,里面可能承载了一个网络,所以说虚拟交换机的概念就被提出并付诸实施了。假设想形象化理解,那么考虑一下我们常常使用的VMWare,事实上VMWare内部就有一个虚拟交换机。详细我就不多说了。
        依托虚拟化概念实现了NFV的IDC,大大降低了以往传统设备的负载,使得构建企业大二层变得非常easy:




除了NFV,我想说下SDN的意义。
        注意本文的第三幅图,我解释说OSPF作为主导的IGP协议来完毕最优路径规划,可是事实上这样的规划的效果非常差!有时候次优路径反而是最优的。这就是SDN全局控制的深意,由于SDN控制器知道全网当前的快照。我所了解到的是Google以及国内的腾讯。阿里等公司已经在自己的骨干上使能了SDN,效果如何呢?Google作为发起方和第一人。肯定不错,国内的所谓大型互联网企业的技术,我仅仅能呵呵,无论如何。概念是抢到了。无措也无错。


说点胡话做点广告

1.我用OpenVPN构建过而且成功构建过大二层;
2.我以前自己实现过一个LISP全然绕过了GRE。
3.SDN能否铺开取决于左翼和右翼之间的对抗。
4.TCP/IP模型正在被颠覆。这个我是认同的。
...

突然又翻出了几年前的网络拓扑图。我在想,干嘛那么在乎TCP啊。后来我明确了答案,对于大多数程序猿而言,数据离开了电脑。自己就再也控制不住了,所以不懂网管的程序猿脑子里仅仅有TCP而无IP。

网管意味着什么?事实上网管也不是清闲的群体,网管也要会C语言。也要会Python,也要会Java,网管要开发各种工具监控网络中的动态,网管非常忙...最关键的一点。网管能够拔网线。能够对交换机浇水,面对此状,程序猿又能如何呢?难道用加班的方式感动网管把网线插上吗?
        我不懂编程,我不懂网络,我不是程序猿,我不是网管...

posted @ 2017-08-11 16:18  wzjhoutai  阅读(459)  评论(0编辑  收藏  举报