关于作者
作者简介:张帅,公众号:Flowlet,WeChat:yorkszhang
数据中心(IDC)网络的虚拟化技术主要分为三类:网络虚拟化(NV)、网络设备虚拟化(NDV)和网络功能虚拟化(NFV)。
网络虚拟化(Network Virualization),通常是指对物理网络及其组件进行抽象,并从中分离网络业务流量的一种技术。VLAN是网络虚拟化的二层技术,主要用于二层网络的隔离。VPN是网络虚拟化的三层技术,VPN对网络连接的概念进行了抽象,允许远程用户访问组织的内部网络,就像物理上连接到该网络一样。
除了VPN和VLAN,还有QINQ、隧道技术、MPLS等等都属于网络虚拟化技术,通过这些技术可以轻松实现网络隔离,忽略物理硬件的位置和差异。这些传统的网络虚拟化技术已经逐渐无法满足云数据中心的要求,因此逐步出现了其他网络虚拟化技术。
网络设备虚拟化(Network Device Virualization),是指将物理上独立的多台设备整合成一台单一逻辑上的虚拟设备,或者将一台设备虚拟化成多台逻辑上独立的虚拟设备,前者是多虚一技术,后者是一虚多技术。
- 多虚一技术:通过将多台设备虚拟化成单台网络设备,可以使设备可用的端口数量、转发能力、性能规格都倍增。同时实现了网络设备的简易管理,提高了运营效率,数据中心运维人员只需要登录虚拟化设备,就可以直接管理虚拟化为一体的所有设备,真正简化了网络管理。
- 一虚多技术:可以将设备的网络功能物理上分离为几个独立的单元,供不同的用户使用,这些用户的业务虽然都由这一台设备完成,但是网络之间是完全隔离,业务完全不能互访,保证了用户数据的安全。
网络功能虚拟化(Network Function Virtualization),是指通过基于行业标准的服务器、存储和网络设备,来取代私有专用的网元设备。
网络功能虚拟化是由欧洲电信标准组织从网络运营商的角度出发提出的一种软件和硬件分离的架构,通过创建虚拟网络功能(VNF)的方法,以取代基于硬件或基于设备的网络服务。
网络设备虚拟化(NDV)主要有VRRP、堆叠、M-LAG与去堆叠技术,其中去堆叠技术已经成为云网络中服务器接入的标配,本文就带大家了解以上这些网络设备虚拟化技术。
1、VRRP(Virtual Router Redundancy Protocol):虚拟路由冗余协议。
2、Stack:堆叠技术。
3、M-LAG(Multichassis Link Aggregation Group):跨设备链路聚合组。
4、去堆叠技术。
1、VRRP:虚拟路由冗余协议
虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。
HostA通过Switch双归属到SwitchA和SwitchB。在SwitchA和SwitchB上配置VRRP备份组,对外体现为一台虚拟路由器,实现链路冗余备份。
主备备份是VRRP提供备份功能的基本方式,如上图所示。该方式需要建立一个虚拟路由器,该虚拟路由器包括一个Master设备和一个Backup设备。
正常情况下,SwitchA为Master设备并承担业务转发任务,SwitchB为Backup设备且不承担业务转发。SwitchA定期发送VRRP通告报文通知SwitchB自己工作正常。
如果SwitchA发生故障,SwitchB会根据优先级被选举为新的Master设备,继续为主机转发数据,实现网关备份的功能。
SwitchA故障恢复后,在抢占方式下,将重新选举成为Master;在非抢占方式下,将保持在Backup状态。
VRRP协议报文封装在IP报文中,发送到分配给VRRP的IP组播地址。在IP报文头中,源地址为发送报文接口的主IP地址(不是虚拟IP地址),目的地址是224.0.0.18,TTL是255,协议号是112。
目前,VRRP协议包括两个版本:VRRPv2和VRRPv3。VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络。
基于不同的网络类型,VRRP可以分为VRRP for IPv4和VRRP for IPv6(简称VRRP6)。VRRP for IPv4支持VRRPv2和VRRPv3,而VRRP for IPv6仅支持VRRPv3。
该技术是使用比较早的网络可靠性技术,将多台物理设备配置对外呈现一个VRRP备份组,正常情况下由主设备负责转发数据流。当主设备故障时,会选择备组里优先级较高的设备为主设备继续负责转发数据流,实现网关的冗余备份功能,同时达到链路的冗余功能。
VRPP配置复杂并且由于同时只有一台设备工作,网络建设投入成本高,不能充分发挥设备的网络性能。
2、Stack:堆叠技术
堆叠技术,将多台交换机通过堆叠线缆连接在一起,使多台设备在逻辑上变成一台交换设备,作为一个整体参与数据转发。华为称为CSS(Cluster Switch System:集群交换系统),思科称为VSS(Virtual Switching Supervisor:虚拟交换管理器),H3C称为IRF/IRF2(Intelligent Resilient Framework:智能弹性架构技术)。
堆叠技术主要有以下好处:
- 扩展端口数量:当接入的用户数增加到原交换机端口密度不能满足接入需求时,可以通过增加新的交换机并组成堆叠而得到满足。
- 扩展带宽:当交换机上行带宽增加时,可以增加新交换机与原交换机组成堆叠系统,将成员交换机的多条物理链路配置成一个聚合组,提高交换机的上行带宽。
- 提高可靠性:堆叠与Eth-Trunk一同使用,当堆叠系统中一台设备的上行链路故障,通过该设备的流量可经过堆叠链路进行转发。
堆叠技术的缺陷:
- 堆叠技术是非标准化技术,所以不同厂商的设备之间无法形成堆叠。
- 可靠性一般:控制面集中,故障可能在成员设备上扩散。主设备的故障可能影响成员设备,可靠性一般。
- 堆叠虚拟化控制面多虚一:网络设备堆叠后,所有主控平面合一,但是这种合一只能采用主备备份的模式,即只有主设备的主控板正常工作,而其他主控板都处于备份状态。因此,整个系统的物理节点规模就受限于主控节点的处理能力,不是想做多大就做多大的。例如框式设备虚拟化一般为2台,盒式设备一般为16台。目前最大规模的虚拟化系统大概可以支持接入1~2万台主机,可以从容应付一般的中、小型数据中心,但对于一些超大型的云数据中心来说,就显得力不从心了。
3、M-LAG:跨设备链路聚合
M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级,组成双活系统。
M-LAG的好处:
- 负载分担:M-LAG双活系统在接入设备双归接入场景下,接入设备通过Eth-Trunk的方式接入到M-LAG设备组,M-LAG的成员设备接收到接入设备通过链路捆绑负载分担发送的流量后,共同进行流量转发。
- 提高可靠性:M-LAG接入普通以太网场景,由于M-LAG主设备的上行链路故障,通过M-LAG主设备的流量均经过peer-link链路进行转发。
M-LAG技术本质上还是控制平面虚拟化技术,但是和堆叠技术不同的是,由于M-LAG的目的仅仅是在链路聚合协商时,对外表现出同样的状态,所以不需要像堆叠那样同步设备上所有的信息,只需要同步接口和表项相关的一些内容。这样,控制面耦合程度相比堆叠来说,会小很多,而且堆叠技术的一些缺陷在M-LAG 上也会缓解很多,比如上面我们说过的堆叠的三个主要的问题:
- 可靠性问题:M-LAG需要同步的仅仅是协议面的一些内容,并不需要同步所有的设备状态,理论可靠性相对堆叠更加好。
- 维护问题:M-LAG两台设备可以进行独立升级。仅协议面耦合,中断时间较短。
- 扩展性:无法解决网络扩展性问题,需要通过路由或者其他大二层技术来实现网络侧多路径转发。
4、去堆叠技术
在上世纪90年底,Cisco为了支持从软件层面协商链路聚合,推出了PAgP(Port Aggregation Protocol)协议,用于在两台设备之间协商聚合组,但是此协议知识产权归属于Cisco,只能在Cisco的设备之间进行协商。
2000年,IEEE通过了LACP(Link Aggregation Control Protocol)协议,此协议其实是在PAgP的基础上推出,充分借鉴了PAgP协议的优势,并且重新规范了PAgP协议中的一些术语。
在Linux系统中,有两种支持链路聚合的技术,第一种是bond技术,第二种为team技术;这两种技术都可以提供链路聚合功能,而且两者有很多功能是雷同的,但是相对而言team的设计要更加合理,支持的特性也要比bond完备一些。
一般在服务器Linux系统中采用bond技术来支持LACP协议,而SONiC系统中则采用team技术来支持LACP协议。
链路聚合模式分为静态聚合和动态聚合,在静态聚合模式中可以很简单实现跨设备链路聚合,只要接口UP同时关键配置一致时接口就可以处于聚合选中,但是静态聚合缺乏LACP报文对链路的监控和与邻居的协商机制,在聚合模式选择中通常选择动态聚合模式,服务器linux操作系统称为mod5。为了在去堆叠方案中实现跨设备链路聚合,需要解决两个问题:
- 在动态链路聚合中,如何让服务器认为连接对端的接入交换机是同一个网络设备?
上图为LACPDU报文,在动态聚合中当Partner_System_Priority和Partner_System一致时,则认为对端设备为同一个设备。同时本端的不同端口接收LACPDU报文中要求Pantner_Port不一致Partner_key一致时则可以聚合成功。
- 在堆叠方案中两台设备虚拟为一台,控制层面只有一个,两台设备的表项依靠istack进行同步,M-LAG方案中依靠peer-link进行同步,在去堆叠方案中两台设备控制层面完全独立,路由、ARP、MAC表项是如何同步的呢?
1、接入层交换机将主机的ARP路由转换成为直连路由,并引入到BGP路由完成路由同步,到达服务器的流量由32位主机路由来引导。
如上图所示,将ARP生成的直连路由引入到OSPFBGP路由中,从而达到全网设备主机路由的同步。
2、服务器在发送ARP请求和应答需要在聚合的所有成员接口网卡进行发送与接收,又叫做“ARP双发”。实现去堆叠设备的ARP和MAC表项同步。按照流量HASH原理,ARP报文会按照算法选择BOND成员网卡中的一个进行发送,这样去堆叠的两台设备ARP表项就不会同步。这时候需要修改服务器操作系统内核,在发送ARP报文时在所有BOND的成员网卡发送。
3、在服务器上看聚合接口状态是两个物理网卡聚合在一起的逻辑接口,单条物理线路的UP/DOWN逻辑的接口状态并没有变化,并不能触发服务器发送免费ARP的更新,如果没有32位主机路由的牵引可能会造成流量负载不均衡。所以需要服务器的OS内核进一步优化,当服务器成员接口发生UP/DOWN时,发送免费ARP进行更新。
4、两台接入交换机连接服务器的三层网关接口MAC地址更改为相同的MAC地址,避免两台设备发送不同的MAC地址造成服务器侧ARP表项反复切换。
去堆叠具有良好的兼容性,可以实现不同厂家设备的异构,这是M-LAG和堆叠无法做到的。M-LAG和堆叠在底层实现十分复杂,需要进行大量表项和状态同步工作,去堆叠对交换机LACP协议进行简单的改动就可以实现,三层表项通过现有路由协议同步,二层表项通过服务器“ARP双发”实现。
(正文完)
end
转载与投稿
文章转载需注明:Flowlet
欢迎云计算、SDN、NFV、互联网IT等方向的大牛投稿。
| 温馨提示 |
欢迎分享、收藏、点赞、转发。