关于作者
作者简介:张帅,公众号: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:智能弹性架构技术)。
堆叠技术主要有以下好处:
堆叠技术的缺陷:
3、M-LAG:跨设备链路聚合
M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级,组成双活系统。
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一致时则可以聚合成功。
如上图所示,将ARP生成的直连路由引入到OSPF\BGP路由中,从而达到全网设备主机路由的同步。
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等方向的大牛投稿。
| 温馨提示 |
欢迎分享、收藏、点赞、转发。