Loading... VM动态迁移只是要求把所有服务器都纳入同一个二层网络,那问题来了:原来的网络架构为什么就不能把所有服务器都纳入同一个二层网络?传统的VLAN+xSTP二层技术不能把所有服务器都划到同一个二层域吗? 这也就是我前面卖的关子,为什么说传统网络架构限制了虚拟机的动态迁移只能在一个较小的局部范围内进行?为什么传统的二层网络大不起来? 要说清楚这一点,我们首先需要弄清楚二层网络面临的主要问题是什么,而传统二层网络采用的主要解决方案有哪些? ## 1 二层网络的核心问题 其实说起来也简单,二层网络的核心问题就是环路问题以及由此产生的广播风暴问题。 ### 1.1 环路的由来 如果是一个单设备和单链路组成的树型二层网络,如下图所示, 它是没有任何环路和因环路引起的广播风暴问题的(其他成因的广播风暴,例如蠕虫病毒等造成的,不在讨论之列)。 ![技术发烧友:闲话大二层网络-1740561-1](https://blog.90.vc/usr/uploads/2021/09/3817728687.png) 但是这种网络的可靠性是非常差的,因为它没有任何的备份设备和备份链路,一旦某个设备或者链路发生故障,那么故障点下的所有主机就连不上网络了。 ![技术发烧友:闲话大二层网络-1740561-2](https://blog.90.vc/usr/uploads/2021/09/1962751538.png) 所以,为了提高网络可靠性,通常会采用冗余设备和冗余链路,这样就不可避免的形成环路。如下图所示。红色链路构成一个环路,蓝色链路也构成一个环路,事实上,在相对复杂的二层网络中,物理上的环路几乎无处不在。 ![技术发烧友:闲话大二层网络-1740561-3](https://blog.90.vc/usr/uploads/2021/09/459208479.png) 而二层网络处于同一个广播域下,广播报文在环路中会反复持续传送,而且二层报文转发又没有TTL机制,无限循环之下,就会形成广播风暴,瞬间即可导致端口阻塞和设备瘫痪。 ### 1.2 环路的解决之道 为了解决广播风暴问题,二层网络中所采取的技术主要有两方面: #### 1.2.1 通过划分VLAN来缩小广播域的规模 VLAN技术可以把一个大的物理二层域划分成许多小的逻辑二层域,这种逻辑二层域被称为VLAN。同一个VLAN内可以进行二层通信,不同VLAN之间是二层隔离的,这样广播的范围就被局限在一个VLAN内,不会扩散到整个物理二层域。 ![技术发烧友:闲话大二层网络-1740561-4](https://blog.90.vc/usr/uploads/2021/09/3095158920.png) VLAN虽然可以一定程度上降低广播风暴的范围和强度,但还是无法避免在VLAN内形成广播风暴(只要同一个VLAN内还有环路),所以只是一种治标不治本的策略。 (当然,这种说法仅针对广播风暴这一点而言,而VLAN技术还有其他很多方面的重要作用,比如简化管理、提高安全性等等,但本文不讨论这些方面)。 #### 1.2.2 通过破环协议来防止环路的产生 另外一种治本的方法则是从广播风暴形成的根本原因入手。既然广播风暴是因为出现了环路才导致的,那么通过一定的手段,防止环路出现不就避免了广播风暴了吗? 防止环路出现,但是又要保证网络的可靠性,就只能将冗余设备和冗余链路变成备份设备和备份链路。即冗余的设备端口和链路在正常情况下被阻塞掉,不参与数据报文的转发。只有当前转发的设备、端口、链路出现故障,导致网络不通的时候,冗余的设备端口和链路才会被打开,使得网络能够恢复正常。实现这些自动控制功能的协议就被称为破环协议,其中最常用的就是STP(Spanning Tree Protocol,生成树协议)以及升级版的RSTP和MSTP等,我们统称为xSTP协议。 ![技术发烧友:闲话大二层网络-1740561-5](https://blog.90.vc/usr/uploads/2021/09/644475891.png) 当然,也有其他一些破环协议,比如SEP、RRPP等等,其本质思想和xSTP协议是一致的。 ## 2 传统的二层技术为啥不能支持大二层 上面提到了,传统二层网络最主要的技术就是VLAN和xSTP。那么这两者对于大二层的网络需求究竟存在什么问题? ### 2.1 VLAN的问题 首先来看VLAN。 前面说了,VLAN的核心思想之一,就是通过划分VLAN来缩小二层域的范围和规模,来控制广播风暴的规模。 而对于大二层网络的需求而言,又要求把所有服务器都纳入同一个二层域,那如果把所有服务器都纳入到同一个VLAN当中,如果没有其他隔离手段,那不就相当于又把广播域扩得大大的?这和划分VLAN的初衷是背道而驰的。 所以VLAN技术天然就不能很好的支持大二层网络。 ### 2.2 xSTP的问题 再来看xSTP,xSTP倒是可以解决大二层网络可能出现的环路问题,但是问题在于xSTP技术本身。 由于xSTP的**收敛性能** 等原因(如果xSTP的节点过多,那么整网的收敛速度会呈指数级下降),所以一般情况下xSTP的网络规模不会超过100台交换机。同时由于xSTP需要阻塞掉冗余设备和链路,也降低了网络资源的**带宽利用率**。因此在实际网络规划时,从转发性能、利用率、可靠性等方面考虑,会尽可能控制xSTP网络范围。 (对于其他一些破环协议,虽然可能相比xSTP协议来说,在某些功能/性能方面有改进,但是总体上依然解决不了总规模不大的问题)。 所以xSTP协议也无法很好的支撑大二层网络的需求。 ## 3 总结 最后给个总结式的数据,基于VLAN+xSTP技术的二层网络,由于前文所提的制约条件,可能容纳的主机数量,通常都不会超过**1K** 。(具体为啥是这样一个数据,有兴趣深究的同学可以自己推算一下,也可以跟笔者联系)。 这与前一篇中所说的,真正意义上的大二层网络至少能容纳一万以上的主机的要求相去甚远,所以说传统的二层网络不能很好支持大二层网络。 它,大不起来! 最后修改:2021 年 09 月 10 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏