发明内容
本发明提出了一种数据中心网络系统的路由方法,该数据中心网络系统采用的是称为交换式矩阵的网络结构。该方法可以充分发挥交换式矩阵网络拓扑结构的特点和优势,解决数据中心网络中的通信瓶颈问题。在该路由方法中,构建路由表只需要网络设备交换很少量信息,构建方法简单易行,所构建的路由表规模小,路由速度快。此外,该路由方法可以充分利用源和目的节点之间的多条并行链路实现无阻塞路由和负载均衡。
实现本发明中的路由方法所基于的数据中心网络系统包括交换机和服务器两类设备,所述交换机包括行首交换机、列首交换机和呈矩阵排列的接入交换机,矩阵的每行行首至少部署一个行首交换机,每列列首至少部署一个列首交换机,服务器与接入交换机相连接,每个接入交换机与其所在行的所有行首交换机及其所在列的所有列首交换机相连接,任意行首交换机和列首交换机之间、以及各接入交换机之间不直接相连。在该网络结构中,交换机和服务器采用内部网络IP地址,并按照如下规则进行编址:行首交换机的IP地址配置为10.Row.0.X;列首交换机的IP地址配置为10.0.Col.X;接入交换机的IP地址配置为10.Row.Col.1;服务器的IP地址配置为10.Row.Col.X。其中Row为交换机或服务器所在行的行号,Col为交换机或服务器所在列的列号;对于行首/列首交换机,0<X≤255,对于服务器,1<X≤255。所有设备的子网掩码设为255.255.255.0。
本发明中的数据中心网络系统的路由方法为:同一子网的服务器之间通过与其相连接的接入交换机进行通信,不同子网的同行的服务器之间通过与其相连接的接入交换机和位于该行的行首交换机进行通信,同列的服务器之间通过与其相连接的接入交换机和位于该列的列首交换机进行通信,不同行列的服务器之间通过接入交换机、行首交换机和列首交换机进行通信。
同一行内的服务器A和服务器B进行通信时,服务器A先和与其相连接的接入交换机A进行通信,接入交换机A再通过位于该行的行首交换机与和服务器B相连接的接入交换机B进行通信,接入交换机B再与服务器B进行通信。
同一列内的服务器A和服务器B进行通信时,服务器A先和与其相连接的接入交换机A进行通信,接入交换机A再通过位于该列的列首交换机和与服务器B相连接的接入交换机B进行通信,接入交换机B再与服务器B进行通信。
位于不同行列的服务器A和服务器B进行通信时,服务器A先和与其相连接的接入交换机A进行通信,接入交换机A再通过与其同行的行首交换机与位于该行的且与服务器B同列的接入交换机C1进行通信,接入交换机C1再通过其所在列的列首交换机和与服务器B相连接的接入交换机B进行通信,接入交换器B再与服务器B进行通信。
位于不同行列的服务器A和服务器B进行通信时,服务器A先和与其相连接的接入交换机A进行通信,接入交换机A再通过与其同列的列首交换机与位于该列的且与服务器B同行的接入交换机C2进行通信,接入交换机C2再通过其所在行的行首交换机和与服务器B相连接的接入交换机B进行通信,接入交换器B再与服务器B进行通信。
与现有路由方法相比,本发明充分发挥了交换式矩阵网络拓扑结构的特点和优势,具有以下优点:
1)相邻交换机之间只需要定期交换本机的IP和MAC地址信息就可以建立构造出路由表,交换的数据量非常少。
2)路由表的构造方法非常简单,构造速度快,对链路失效的反应速度快,不存在路由收敛问题。
3)路由表规模小,路由速度快,可以通过硬件设备利用交换技术实现路由。
4)网络可靠性高,任意两个终端之间存在多条等价路径,本路由算法支持等价多路径路由ECMP(Equal-Cost Multipath Routing)技术,具备负载均衡能力。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明提供的数据中心网络系统中,网络采用规则化的拓扑结构(交换式矩阵拓扑),并按照一定的规则进行编址。数据中心网络系统由一组行首交换机10.Row.0.X、列首交换机10.0.Col.X、接入交换机10.Row.Col.1和连接到接入交换机上的各种服务器10.Row.Col.X构成。其中Row为交换机或服务器所在行的行号,Col为交换机或服务器所在列的列号;对于行首/列首交换机,0<X≤255,对于服务器,1<X≤255。所有设备的子网掩码均设为255.255.255.0。
服务器之间通信通过接入交换机、行首交换机和列首交换机的路由转发功能完成。行首交换机负责把本行的所有接入交换机连接在一起,列首交换机负责把本列的所有接入交换机连接到一起。每一个接入交换机同时连接到所在行的所有行首交换机和所在列的所有列首交换机上面,行首交换机和列首交换机之间、各接入交换机之间没有直接的连接关系。每个服务器都连接到一个接入交换机上。为了完成路由转发功能,在每个行首/列首交换机和接入交换机上都维护一张路由表,数据分组根据路由表进行转发。相连的交换机通过互相交换信息(包括本机IP地址和MAC地址)学习之间的连接关系,并根据连接关系生成路由表。
1、交换式矩阵拓扑结构
本实施例中,数据中心网络系统由交换机和服务器两类设备组成。交换机设备提供二层(链路层)和三层(网络层)网络交换功能,服务器设备提供数据运算和存储服务。其中交换机又分为三种类型,称为行首交换机、列首交换机和接入交换机。行首交换机和列首交换机属于网络核心层,具有三层交换/路由能力,负责把接入交换机连接在一起;接入交换机属于网络接入层,具有二层交换和三层交换/路由能力,负责把服务器接入到网络中。本实施例中的行首交换机、列首交换机和接入交换机都可以采用高性价比的普通交换机。行首交换机、列首交换机和接入交换机连接在一起构成了交换式矩阵拓扑结构。
本发明提出的交换式矩阵拓扑结构要求行首交换机、列首交换机和接入交换机的参与交换/路由的端口数(活动端口数)最好相同,设端口数为N(N>3)。接入交换机的端口分为三部分,其中第一部分端口用来连接服务器,第二部分端口连接行首交换机,剩下的一部分端口用来连接列首交换机。完整的拓扑结构总共有N行×N列个接入交换机,每一行的行首部署多个行首交换机,每一列的列首部署多个列首交换机。任一个接入交换机需要连接其所在行和列的全部行首交换机和列首交换机。本发明允许服务器和接入交换机之间、接入交换机和所在行首/列首交换机之间通过任意端口进行连接。每一个接入交换机和所在行的每个行首交换机之间都有一条单独的连接,和所在列的每个列首交换机也都有一条单独的连接。图1是一个交换机的端口数N=6的交换式矩阵的例子,为清晰起见,图中没有画出服务器,并且在图中用一条虚横线表示一行内的所有接入交换机和该行的所有行首交换机之间的连接,用一条虚竖线表示一列内的所有接入交换机和该列的所有列首交换机之间的连接。
接入交换机的端口分配比例可以根据实际需要进行分配,典型分法是把端口分成3等份,1/3的端口用于连接行首交换机,1/3的端口用于连接列首交换机,剩下1/3的端口用于连接服务器设备。这样每行的行首交换机和每列的列首交换机数量为N/3。这种配置方式可以保证每层设备的超额订购比例达到1∶1。如果需要行首交换机或列首交换机参与转发的通信量不是很多,也可以根据需要适当减少行首交换机和列首交换机的数量,从而降低建网成本。比如把接入交换机的1/2端口分配给服务器,1/4的端口连接行首交换机,剩下1/4的端口用于连接列首交换机。这样每行的行首交换机和每列的列首交换机数量可以减少到N/4。这种情况下,行首/列首交换机的超额订购比例为1∶2。
上面描述的是一个完整的交换式矩阵拓扑。在某些情况下,可以针对实际需要对网络拓扑进行调整。比如对于网络规模较小,服务器数量不多的数据中心,也可以构建不完全的交换式矩阵网络。完整的交换式矩阵网络拥有N行×N列个接入交换机,如果服务器的数量达不到N3/3,可以按照自右向左,自下向上的顺序减少接入交换机的数量。对于不完整的行或列,可以相应地按照比例减少行首或列首交换机的数量。行首/列首交换机上的多余空闲端口通过端口汇聚(Trunk)技术合并到其他端口上。比如交换机的端口数为12,则可以构成最大为12行*12列的网络拓扑。每行的行首交换机和列首交换机的数量均为12/3=4个。如果是不完全的拓扑结构,比如只有6行*12列的接入交换机,则列首交换机的数量即可减少一半,为2个。此时列首交换机的连接方案为:首先每个列首交换机用6个端口连接本列内的6个接入交换机,然后剩下的端口按照顺序逐次平均地汇聚到这些端口上。
2、网络编址方案
本数据中心网络系统内的各种交换机和服务器采用内部网络IP地址10.X.X.X(0<X≤255)进行编址,需要和外部网络通信时采用网络地址转换(NAT)技术转换成外部网络地址。
行首交换机的IP地址配置为10.Row.0.X,其中Row为行首交换机所在的行号,0<Row≤N,0<X≤255,在这个规定范围内,行首交换机的地址可以任意配置(X可以任意指定)。
列首交换机的IP地址配置为10.0.Col.X,其中Col为列首交换机所在的列号,0<Col≤N,0<X≤255,在这个规定范围内,列首交换机的地址可以任意配置(X可以任意指定)。
接入交换机的IP地址配置为10.Row.Col.1,其中Row为接入交换机所在的行号,Col为接入交换机所在的列号,0<Row≤N,0<Col≤N。
服务器的IP地址配置为10.Row.Col.X,其中Row为该服务器所在的行号,Col为该服务器所在的列号,0<Row≤N,0<Col≤N,1<X≤255,在这个规定范围内,服务器的地址可以任意配置(X可以任意指定)。
在上面的编址方案中,我们可以根据设备的IP地址区分出其设备类型,以及该设备在网络中所处的位置,这有助于确定设备连接关系,简化路由方案。根据编址方案和设备连接关系,可以看出每一个接入交换机和其连接的全部服务器构成一个物理子网,子网掩码为255.255.255.0。同一行的行首交换机或同一列的列首交换机虽然其网络地址前缀相同,但是没有直接连接关系。
3、路由方法
在本实施例提出的交换式矩阵网络中,行和列是一个对称的结构,因此,不同行列内的服务器之间进行通信,可以先经过行首交换机再经过列首交换机,或者先经过列首交换机再经过行首交换机,比如有一台设备10.2.2.X和10.4.4.X通信,先经过列首交换机的路径如下:
10.2.2.X→10.2.2.1→10.0.2.X→10.4.2.1→10.4.0.X→10.4.4.1→10.4.4.X
先经过行首交换机的路径如下:
10.2.2.X→10.2.2.1→10.2.0.X→10.2.4.1→10.0.4.X→10.4.4.1→10.4.4.X
本实施例规定:同一行内的设备之间进行通信,只通过行首交换机进行转发,同一列内的设备之间进行通信,只通过列首交换机进行转发。不同行列之间的设备通信,采用先经过列首交换机的路径。
3.1路由表的结构
本发明提出的数据中心网络系统具有规则的拓扑结构,因此路由方法可以设计的非常简单。考虑到灵活性和扩展性,本发明采用基于路由表的路由转发方法。路由表的结构如下:
目标子网 |
子网掩码 |
下一跳IP地址 |
下一跳MAC地址 |
出端口 |
时间戳 |
10.1.0.0 |
255.255.0.0 |
10.1.0.1 |
XX-XX-XX-XX-XX-XX |
1 |
|
10.2.0.0 |
255.255.0.0 |
10.2.0.1 |
XX-XX-XX-XX-XX-XX |
2 |
|
说明:
(1)时间戳用来记录本条路由表项的创建或更新时间。
(2)后面描述路由表时,省略了下一跳IP地址、下一跳MAC地址和时间戳信息。
行首交换机10.Row.0.X的路由表(采用非连续子网掩码)
列首交换机10.0.Col.X的路由表
接入交换机10.Row.Col.1的路由表
接入交换机的路由转发规则有如下三条:1)对于本子网的通信,采用传统的二层交换进行转发,此处不作说明;2)对于目的地址是本行内的服务器(但位于不同子网),转发至行首交换机;3)对于目的地址是不同行的服务器(位于不同子网)的通信,转发至列首交换机。对于情况(2)和(3),需要进行三层路由转发,路由表如下:
说明:
1)10.Row.0.Xi是第Row行的第i个行首交换机的IP地址(1≤i≤K,K为第Row行的行首交换机的数量),10.0.Col.Xi是第Col列的第j个列首交换机的IP地址(1≤j≤M,M为列首交换机的数量)。
2)对于同一目标子网,接入交换机的路由表里存在多条等价的路由路径,本发明采用等价多路径路由ECMP(Equal-Cost MultipathRouting)技术,实现从多条重复的等价路径中随机选择一条路径。
3.2路由表构造方法
通过自动学习行首/列首交换机和接入交换机之间的连接关系,可以非常容易地把路由表构造出来。为了学习交换机之间的连接关系,需要所有交换机定期向所有活动端口发送PDU(协议数据单元),包含内容为本机IP地址和本机MAC地址。对于任意交换机来说,每个端口最多对应一条路由表项,因此路由表的条目数最多等于交换机的端口数。
(1)行首交换机路由表的构造
行首交换机10.Row.0.X按照如下规则构造路由表:
如果从端口Port收到10.Row.Col.1发来的PDU,向路由表内添加或更新路由表项:
10.0.Col.0/255.0.255.0/10.Row.Col.1/MAC地址/Port/时间戳
如果规定时间内收不到更新PDU,则删除相应的路由条目(已过期)。
(2)列首交换机路由表的构造
列首交换机10.0.Col.X按照如下规则构造路由表:
如果从端口Port收到10.Row.Col.1发来的PDU,向路由表内添加或更新路由表项:
10.Row.0.0/255.255.0.0/10.Row.Col.1/MAC地址/Port/时间戳
如果规定时间内收不到更新PDU,则删除相应的路由条目(已过期)。
(3)接入交换机路由表的构造
接入交换机10.Row.Col.1按照如下规则构造路由表:
a)从端口Port收到本行的行首交换机10.Row.0.X的PDU,向路由表内添加或更新路由表项:
10.Row.0.0/255.255.0.0/10.Row.0.X/MAC地址/Port/时间戳
b)从端口Port收到本列的列首交换机10.0.Col.X的PDU,向路由表内添加或更新路由表项:
10.0.0.0/255.0.0.0/10.0.Col.X/MAC地址/Port/时间戳
c)如果规定时间内收不到更新PDU,则删除相应的路由条目(已过期)。
说明:对于同一子网内的数据通信,采用传统的二层交换技术进行数据转发,二层交换的地址转发表(AFT,Address ForwardingTable)的构造此处不做说明。
3.3路由过程举例说明
(1)同一子网内设备的数据通信。假设有两台服务器IP地址分别为10.1.1.2(源)和10.1.1.3(目的),则二者的通信直接通过接入交换机10.1.1.1进行转发。
(2)同一行内设备的数据通信。假设有两台服务器IP地址分别为10.1.3.2和10.1.5.2,数据分组要从10.1.3.2发送到10.1.5.2,需要首先发往接入交换机10.1.3.1,然后根据各交换机的路由表,路由过程如下:
10.1.3.2→10.1.3.1→10.1.0.X→10.1.5.1→10.1.5.2
(3)同一列内设备的数据通信。假设有两台服务器IP地址分别为10.2.2.2和10.4.2.2,数据分组要从10.2.2.2发送到10.4.2.2,需要首先发往接入交换机10.2.2.1,然后根据各交换机的路由表,路由过程如下:
10.2.2.2→10.2.2.1→10.0.2.X→10.4.2.1→10.4.2.2
(4)不同行的设备的数据通信。假设有两台服务器IP地址分别为10.2.2.2和10.4.4.2,数据分组要从10.2.2.2发送到10.4.4.2,需要首先发往接入交换机10.2.2.1,然后根据各交换机的路由表,路由过程如下:
10.2.2.2→10.2.2.1→10.0.2.X→10.4.2.1→10.4.0.X→10.4.4.1→10.4.4.2
以上对本发明所提供的数据中心网络系统及其路由方法进行详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。