CN113364678A - 数据传输系统、方法、装置、电子设备和计算机可读介质 - Google Patents
数据传输系统、方法、装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN113364678A CN113364678A CN202110678535.4A CN202110678535A CN113364678A CN 113364678 A CN113364678 A CN 113364678A CN 202110678535 A CN202110678535 A CN 202110678535A CN 113364678 A CN113364678 A CN 113364678A
- Authority
- CN
- China
- Prior art keywords
- target
- dynamic
- routes
- route
- switch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种数据传输系统、方法、装置、电子设备和计算机可读介质,所述方法包括:在首次发送网络数据包至交换机的情况下,确定与所述交换机之间的多条链路,其中,所有所述链路上配置有等价路由,所述等价路由为动态路由或静态路由;根据预设策略使所述网络数据包通过目标链路进行传输;在所述目标链路出现故障的情况下,通过路由协议删除所述目标链路上的路由,并通过所述多条链路中除所述目标链路之外的一条链路进行所述网络数据包的传输,其中,所述路由协议用于执行所述网络数据包的路径选择。本申请实现负载均衡,保证数据传输的及时性和完整性。
Description
技术领域
本申请涉及数据传输领域,尤其涉及一种数据传输系统、方法、装置、电子设备和计算机可读介质。
背景技术
在通信领域中,服务器网卡和交换机直接通过网线或光纤连接,并在物理接口上配置IP地址、路由后直接通信。为了提高接入网络的带宽和可用性,服务器网络接入一般采用多个物理链路同时接入的方式,这样就需要一台服务器的多个物理网卡接口分别与交换机的多个物理接口对应连接。目前主要做法是对服务器的网卡接口和交换机的物理接口均做bond处理,通过bond可以将多个物理接口虚拟为一个逻辑接口,然后在逻辑接口配置IP地址、路由后即可使bond接口像普通物理接口一样进行网络通信。
一台服务器的多个网卡可以接入同一台交换机,即同一台交换机的多个物理接口进行bond,一台服务器的多个网卡还可以接入多台交换机,即多台交换机的物理接口进行bond。如果一台服务器接入同一台交换机,若交换机停机维护或者出现故障,会导致服务器网络中断,如果一台服务器接入多台交换机,bond技术需要将多台交换机的多个物理接口虚拟为一个逻辑接口,这对交换机和服务器的有较高的要求,例如需要交换机做堆叠、设备型号要一致等,当设备需要升级和维护时可能造成bond无法继续适用。
发明内容
为了解决或者至少部分地解决上述bond无法适用设备升级的问题,本申请提供了一种数据传输系统、方法、装置、电子设备和计算机可读介质。
第一方面,本申请提供了一种数据传输系统,所述系统包括:
交换机,每个所述交换机的一个接口通过一条链路与服务器的一个端口连接,其中,所有所述链路上配置有等价路由,所述等价路由为动态路由或静态路由;
所述服务器,用于在首次发送网络数据包至所述交换机的情况下,确定与所述交换机之间的多条链路,并根据预设策略使所述网络数据包通过目标链路进行传输,在所述目标链路出现故障的情况下,所述服务器通过路由协议删除所述目标链路上的路由,并通过所述链路中除所述目标链路之外的一条链路进行所述网络数据包的传输,其中,所述路由协议用于执行所述网络数据包的路径选择。
第二方面,本申请提供了一种数据传输方法,所述方法包括:
在首次发送网络数据包至交换机的情况下,确定与所述交换机之间的多条链路,其中,所有所述链路上配置有等价路由,所述等价路由为动态路由或静态路由;
根据预设策略使所述网络数据包通过目标链路进行传输;
在所述目标链路出现故障的情况下,通过路由协议删除所述目标链路上的路由,并通过所述多条链路中除所述目标链路之外的一条链路进行所述网络数据包的传输,其中,所述路由协议用于执行所述网络数据包的路径选择。
可选地,所述网络数据包是由服务器发送至所述交换机上的,所述路由协议为动态路由协议,所述等价路由为动态路由,在根据预设策略使网络数据包通过目标链路进行传输之前,所述方法还包括:
通过所述动态路由协议从多个所述交换机的接口学习多个目标路由,其中,每个所述交换机对应一条目标路由,所述多个目标路由的目标地址相同;
将所述多个目标路由聚合成一条由多个下一跳构成的动态路由,其中,所述下一跳为所述交换机的下游接口地址;
将所述动态路由配置在所述交换机和服务器之间的多条链路上。
可选地,所述将所述多个目标路由聚合为由多个下一跳构成的动态路由包括:
通过所述服务器的动态路由方案将所述多个目标路由进行合并,形成一条动态路由,其中,每个所述目标路由具有对应的权重,每个所述目标路由对应一条链路,所述动态路由对应多条链路;
将所述动态路由插入所述服务器对应的路由表中;
所述根据预设策略使所述网络数据包通过所述链路中的目标链路进行传输包括:
通过所述动态路由方案选取所述多条链路中的目标链路,并使所述网络数据包通过所述目标链路传输至所述交换机。
可选地,通过所述动态路由协议从多个所述交换机的接口学习多个目标路由之前,所述方法还包括:
配置静态路由协议,其中,所述静态路由协议的优先级低于所述动态路由协议的优先级;
在所述服务器的动态路由模块出现故障或未启动的情况下,通过所述静态路由协议执行所述网络数据包的路径选择,其中,所述动态路由模块用于提供动态路由方案。
可选地,所述根据预设策略使网络数据包通过目标链路进行传输包括:
确定所述网络数据包的数据信息;
将所述数据信息转化为目标哈希值;
确定所述目标哈希值与全部链路的数量的余数值;
选取链路标号为所述余数值的链路作为所述目标链路,其中,每条链路具有对应的链路标号。
第三方面,本申请提供了一种数据传输装置,所述装置包括:
确定模块,用于在首次发送网络数据包至交换机的情况下,确定与所述交换机之间的多条链路,其中,所有所述链路上配置有等价路由,所述等价路由为动态路由或静态路由;
传输模块,用于根据预设策略使所述网络数据包通过目标链路进行传输;
删除模块,用于在所述目标链路出现故障的情况下,通过路由协议删除所述目标链路上的路由,并通过所述多条链路中除所述目标链路之外的一条链路进行所述网络数据包的传输,其中,所述路由协议用于执行所述网络数据包的路径选择。
可选地,所述网络数据包是由服务器发送至所述交换机上的,所述路由协议为动态路由协议,所述等价路由为动态路由,所述装置还包括:
学习单元,用于通过所述动态路由协议从多个所述交换机的接口学习多个目标路由,其中,每个所述交换机对应一条目标路由,所述多个目标路由的目标地址相同;
聚合单元,用于将所述多个目标路由聚合成一条由多个下一跳构成的动态路由,其中,所述下一跳为所述交换机的下游接口地址;
配置单元,用于将所述动态路由配置在所述交换机和服务器之间的多条链路上。
第四方面,本申请提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求任一所述的方法步骤。
第五方面,本申请提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求任一所述的方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,服务器的每个端口对接一台交换机的一个接口,服务器和多台交换机之间配置有多条链路,链路上配置有等价路由,这样可以使网络数据包的数据量均衡分布在多条链路上,实现负载均衡。即使其中一台或多台交换机出现故障,即目标链路出现故障,路由协议可以删除目标链路上的路由,网络数据包能够通过其他链路继续传送,保证数据传输的及时性和完整性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1-1为现有技术中服务器和交换机采用物理接口连接示意图。
图1-2为现有技术中服务器与同一交换机上的多个端口进行bonding连接示意图;
图1-3为现有技术中服务器与多个交换机的端口进行bonding连接示意图;
图1-4为本申请提供了采用ECMP的数据传输示意图;
图2为本申请实施例提供的一种数据传输系统示意图;
图3为本申请实施例提供的一种数据传输方法的流程图;
图4为本申请实施例提供的一种数据传输装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1-1、1-2、1-3为现有技术中的服务器和交换机的连接示意图。图1-1为服务器和交换机直接采用物理接口对应连接,图1-2为服务器和同一交换机上的多个端口进行bonding连接,图1-3为服务器与多个交换机的端口进行bonding连接。图1-4为本申请提供了采用ECMP的数据传输示意图。
本申请提供了一种数据传输系统,如图2所示,系统包括:交换机和服务器。每个交换机具有多个下行端口,服务器具有多个端口,服务器的每个端口通过一条链路与一个交换机的一个下行端口连接。图2中,服务器具有两个端口eth0和eth1,eth0与交换机1通过一个链路连接,eth1与交换机2通过一个链路连接。服务器和交换机之间的链路用于传输网络数据包,所有链路上配置有ECMP(等价路由,Equal-Cost-Multipath-Routing)。
系统还包括:路由器,每个交换机具有多个上行端口,一个交换机的多个上行端口与多个路由器连接。图2中,交换机1与路由器-1和路由器-2连接,交换机2与路由器-1和路由器-2连接。路由器和交换机之间也具有用于传输网络数据包的链路,该链路用于传输从路由器发送至服务器上的网络数据包。
现有技术中服务器与多个交换机的端口进行连接,需要对多个交换机的端口进行bonding,bonding需要考虑多个交换机的型号一致性。本申请中,服务器的每个端口对接一台交换机的一个接口,利用路由协议自身的特性,无需对多台交换机的端口进行bonding,也就无需保证多台交换机的型号一致性,动态路由协议并不依赖于硬件接口,对硬件没有特殊要求,克服了传统硬件不统一导致的维护、升级困难等问题,可替代bond的服务器网络接入,动态路由协议在硬件进行升级或维护时依然能够适用,使硬件的选取和维护升级具有更高的灵活性。
现有技术中服务器和同一交换机上的多个端口进行连接,若交换机出现故障,则每个端口都不能使用,数据传输全部中断。本申请中,服务器和交换机之间的多条链路上配置有等价路由,网络数据包可以根据预设策略从多条链路中选取目标链路进行数据传输,在目标链路出现故障时,服务器可以通过路由协议删除目标链路对应的路由,使网络数据包通过所有链路中除目标链路之外的一条链路进行传输,保证数据顺利传输。另外,服务器和交换机之间可以传送多个网络数据包,不同的网络数据包可以根据预设策略从多条链路中选取链路,这样可以使每条链路上通过的数据量均衡分布。同一条网络数据包在同一条链路上进行传输,也提高了网络数据包传输的完整性。示例性地,预设策略包括哈希策略、轮询策略和基于路径权重的策略等。
本申请实施例提供了一种数据传输方法,可以应用于服务器,用于在通过等价路由传输网络数据包。
下面将结合具体实施方式,对本申请实施例提供的一种数据传输方法进行详细的说明,如图3所示,具体步骤如下:
步骤301:在首次发送网络数据包至交换机的情况下,确定与交换机之间的多条链路。
其中,所有链路上配置有等价路由,等价路由为动态路由或静态路由。
在本申请实施例中,当服务器首次发送网络数据包至交换机时,需要确定与交换机之间的多条链路,从而将等价路由配置在所有链路上,链路的数量可以根据实际需求来确定。
所有链路上配置有等价路由,这样每条链路都是一条路由路径,增加了接入网络带宽,数据量均衡分担到所有链路上,使得每条链路能够充分利用,多条路由路径的负载量是相同的,实现链路多活和负载均衡,避免数据传输拥堵,提高数据传输效率。其中,三层网络分别为物理层、链路层和网络层。
本申请实施例中的等价路由为动态路由或静态路由,动态路由对应动态路由协议,静态路由对应静态路由协议。动态路由指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。静态路由是指手动配置的路由信息,当网络的拓扑结构或链路的状态发生变化时,需要手动去修改路由表中相关的静态路由信息。
步骤302:根据预设策略使网络数据包通过目标链路进行传输。
在本申请实施例中,网络数据包通过链路进行数据传输,为了使同一数据流始终在一条链路上传输,网络数据包根据预设策略从多条链路中选取目标链路进行传输,其中,目标链路的数量为一个,这样可以保证数据传输的完整性,防止数据丢失。预设策略包括:哈希策略、轮询策略和基于路径权重的策略等。
步骤303:在目标链路出现故障的情况下,通过路由协议删除目标链路上的路由,并通过多条链路中除目标链路之外的一条链路进行网络数据包的传输。
其中,路由协议用于执行网络数据包的路径选择。
在本申请实施例中,路由协议用于执行网络数据包的路径选择。目标链路出现故障后,服务器通过路由协议及时将目标链路对应的路由删除,这样目标链路对应的路由路径不再进行数据传输,那么网络数据包会通过除目标链路之外的一条链路进行继续传输,防止由于目标链路出现故障而导致网络数据包传输中断,保证了数据传输的连贯性,具有高可用优势,任意一条链路故障或网络设备故障都不会影响正常的网络可用性。
其中,等价路由为动态路由时,动态路由协议可以通过链路可用性监控实时监控链路状态,当动态路由协议监测到目标链路出现故障时,动态路由协议可以自动将目标链路对应的路由删除;等价路由为静态路由时,目标链路出现故障则会进行报警,用户根据报警消息删除静态路由,则服务器根据接收到的删除指令,将目标链路对应的静态路由删除。
在本申请中,服务器和多台交换机之间配置有多条链路,链路上配置有等价路由,这样可以使网络数据包的数据量均衡分布在多条链路上,实现负载均衡。即使其中一台或多台交换机出现故障,即目标链路出现故障,路由协议可以删除目标链路上的路由,网络数据包能够通过其他链路继续传送,保证数据传输的及时性和完整性。
作为一种可选的实施方式,网络数据包是由服务器发送至交换机上的,路由协议为动态路由协议,等价路由为动态路由,在根据预设策略使网络数据包通过目标链路进行传输之前,方法还包括:通过动态路由协议从多个交换机的接口学习多个目标路由,其中,每个交换机对应一条目标路由,多个目标路由的目标地址相同;将多个目标路由聚合成一条由多个下一跳构成的动态路由,其中,下一跳为交换机的下游接口地址;将动态路由配置在交换机和服务器之间的多条链路上。
在本申请实施例中,动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。动态路由对应动态路由协议,动态路由协议基于通用性更好的三层路由技术构建,相比于传统的基于二层的bond技术,动态路由协议不但能够工作在异构的二层网络(物理层和链路层),还能够工作在网络层上,使路由器基于IP地址进行跨网链路的计算。
服务器和交换机之间的多个独立的物理链路上动态路由协议,将服务器的IP地址发布到整个网络,从而使外部网络可以访问到服务器(服务器inbound网络访问,交换机到服务器方向的流量);同时在路由器上发布到外部网络的路由,服务器通过动态路由模块从交换机的下游接口学习到至少两条等价的外部网络的路由,然后聚合成一条由两个下一跳构成的动态路由,使得服务器可以通过的任意一条链路访问整个网络(服务器outbound网络访问,服务器到交换机方向的流量),本申请主要描述服务器outbound网络访问。
服务器的端口与交换机的下游接口连接,每个交换机和服务器之间都有一条链路,每个链路对应一个目标路由,则每个交换机也对应一条目标路由。多个目标路由具有相同的目标地址,该目标地址为服务器发送的网络数据包的目标地址。服务器和交换机具有相同的动态路由协议,但动态路由协议对应的动态路由模块不一样,动态路由模块用于提供动态路由方案。一般来说,交换机的动态路由模块是系统自带的,服务器上的动态路由模块则需要在服务器上启动一个服务进程。服务器通过动态路由协议从多个交换机的接口学习多个目标路由,然后基于该目标路由确定动态路由模块,动态路由模块和动态路由协议配合使用。
服务器学习到交换机的多条目标路由之后,确定动态路由方案,然后根据动态路由方案将多个目标路由聚合成一条由多个下一跳构成的动态路由,再将该聚合后的动态路由插入路由表,最后服务器将动态路由配置在交换机和服务器之间的多条链路上,以使网络数据包通过聚合后的动态路由进行路径选择和数据传输,
下一跳,是指路由的下一个点,如果路由器没有直接连接到目的网络,它会有一个提供下一跳路由的邻居路由器,用来传递数据到目的地,数据包每经过一个路由器,称为一跳。
示例性地,动态路由协议采用使用BGP(Border Gateway Protocol,边界网关协议),还可以采用OSPF(Open Shortest Path First开放式最短路径优先),本申请对具体的动态路由协议不做具体限定。
作为一种可选的实施方式,将多个目标路由聚合为由多个下一跳构成的动态路由包括:通过服务器的动态路由方案将多个目标路由进行合并,形成一条动态路由,其中,每个目标路由具有对应的权重,每个目标路由对应一条链路,动态路由对应多条链路;将动态路由插入服务器对应的路由表中;根据预设策略使网络数据包通过链路中的目标链路进行传输包括:通过动态路由方案选取多条链路中的目标链路,并使网络数据包通过目标链路传输至交换机。
在本申请实施例中,路由器根据某种路由算法(不同的动态路由协议算法不同)把收集到的路由信息加工成路由表,供路由器在转发IP报文时查阅。在网络发生变化时,收集到最新的路由信息后,路由算法重新计算,从而可以得到最新的路由表。
服务器通过服务器的动态路由方案将多个目标路由进行合并,形成一条动态路由,在合并的过程中,每个目标路由具有对应的权重,示例性的,可以设置每个目标路由对应的权重相同。由于每个目标路由对应一条链路,动态路由是由多个目标路由合并而成的,那么动态路由对应多条链路,服务器将动态路由插入服务器对应的路由表中。网络数据包选择动态路由对应的多条链路中的一条目标路径进行传输。
一般情况下,等价路由的数据记录会存储在路由表中,若等价路由包括至少两条目标路由,那么路由表中会存在至少两条路由记录,当服务器在查找到第一条路由记录后会停止继续查找其他路由记录,由于同一数据分设于不同的路由记录中,这样会导致路由记录查找不完全,丢失部分数据,本申请将多个等价路由聚合成一条动态路由后,路由表中存在包含完整数据的一条路由记录,这样只需要查找一条路由记录且能够保证数据查找的完整性,提高了数据查找的便捷性和查找到的数据的完整性。
作为一种可选的实施方式,通过动态路由协议从多个交换机的接口学习多个目标路由之前,方法还包括:配置静态路由协议,其中,静态路由协议的优先级低于动态路由协议的优先级;在服务器的动态路由模块出现故障或未启动的情况下,通过静态路由协议执行网络数据包的路径选择,其中,动态路由模块用于提供动态路由方案。
服务器上动态路协议一般是以普通应用程序的方式工作的,如动态路由模块,但是动态路由模块需要在服务器启动之后才能工作,如果服务器启动之前有网络访问需求,例如在操作系统启动阶段有网络访问需求,这时动态路由模块还未启动,无法使用动态路由,会造成网络无法使用。另外,如果动态路由模块出现故障,也会由于动态路由无法使用带来网络故障,给用户的体验感不好。因此,本申请还配置了静态路由协议。
静态路由是指由用户或网络管理员手工配置的路由信息。静态路由协议的优先级低于动态路由协议的优先级。
示例性地,静态路由协议为:
10.0.0.0/8 metric 255
nexthop via 10.64.68.62 dev eth0 weight 1
nexthop via 10.64.69.62 dev eth1 weight 1;
通过bird动态路由服务程序学到的动态路由协议为:
10.0.0.0/8 proto bird metric 32
nexthop via 10.64.68.62 dev eth0 weight 1
nexthop via 10.64.69.62 dev eth1 weight 1;
其中,metric是路由的度量,metric数值越大,路由的优先级越低。动态路由协议的metric为32,静态路由协议的metric为255,因此,动态路由协议的优先级高于静态路由协议的优先级。动态路由协议与动态路由协议相比,除了proto和metric外,其他字段完全相同。
在动态路由出现故障的时候,或者动态路由协议未启动的时候,可以通过静态路由协议执行网络数据包的路径选择,保证数据传输的及时性,提高用户体验感。
在本申请实施例中,在确定动态路由协议之前,需要进行交换机和服务器的配置,首先确定目标地址,然后确定目标地址关联的交换机端口地址和服务器的端口地址、网关地址,然后配置并发布动态路由协议,再为每个交换机配置动态路由协议导入服务器对应接口发布的IP的路由,然后路由器将目标地址的路由发布至交换机和服务器。
示例性地,假设涉及网络的地址范围是10.0.0.0/8,任何路由器、交换机、服务器网卡单点故障都不会影响网络的可用性。假设ECMP使用BGP动态路由协议实现,交换机的配置步骤如下:
S1.配置网络接口
交换机1:10.64.68.62/26
交换机2:10.64.69.62/26
S2.配置并发布动态路由
交换机1:配置BGP导入服务器eth0接口发布的IP(10.64.68.1/26)的路由。
交换机2:配置BGP导入服务器eth1接口发布的IP(10.64.69.1/26)的路由。
S3.路由器1,2:将整个网络10.0.0.0/8的路由发布到交换机和服务器。
此时,服务器可以分别从eth0和eth1通过BGP获取到10.0.0.0/8的路由,且两条路由是等价的。假设交换机1或者网卡eth0故障,服务器eth0的动态发布的路由10.64.68.1/26即会消失,进而使两条ECMP等价路由只剩eth1一条链路,保证了网络数据包不会选择故障链路eth0。
服务器的配置步骤如下:
S1.网卡接口配置
eth0:10.64.68.1/26网关:10.64.68.62
eth1:10.64.69.1/26网关:10.64.69.62
S2.配置静态路由
该静态路由优先级使用255,该路由的两条nexthop分别对应两个独立的物理链路。
10.0.0.0/8 metric 255
nexthop via 10.64.68.62 dev eth0 weight 1
nexthop via 10.64.69.62 dev eth1 weight 1
S3.配置并发布动态路由
服务器上动态路由可以通过bird或者gugga路由程序配置。配置完成后,服务器可以从交换机上学到比静态路由优先级更高的等价的多个目标路由,并通过动态路由模块将多个目标路由聚合成一条由下一跳组成的动态路由。例如下面通过bird动态路由服务程序学到了一条优先级为32的动态路由,该路由除了proto和metric之外,其它字段和我们配置的静态路由完全相同。
10.0.0.0/8 proto bird metric 32
nexthop via 10.64.68.62 dev eth0 weight 1
nexthop via 10.64.69.62 dev eth1 weight 1
动态路由模块工作时,服务器使用动态路由,当动态路由模块未启动或出现故障时,高优先级的动态路由会消失,此时由静态路由进行数据传输,保证服务器在动态路由模块异常时网络依然可用。
作为一种可选的实施方式,根据预设策略使网络数据包通过目标链路进行传输包括:确定网络数据包的数据信息;将数据信息转化为目标哈希值;确定目标哈希值与全部链路的数量的余数值;选取链路标号为余数值的链路作为目标链路,其中,每条链路具有对应的链路标号。
在本申请实施例中,选取目标链路的预设策略采用哈希算法。哈希算法的输入参数通常是来自于网络数据包中的信息(比如,数据包的源IP、目标IP、源端口、目标端口、协议类型等)。本申请确定网络数据包的数据信息包括通信协议、源IP地址、源端口、目标IP地址和目标端口的数据信息,服务器将这些数据信息转换为目标哈希值,然后确定目标哈希值与全部链路数量的商的余数值,每个链路都具有对应的链路标号,服务器将链路标号为该余数值的链路作为目标链路。
示例性地,Hash(protocol,source-IP,source-Port,dest-IP,dest-Port)%N=链路ID,其中N为所有可用的链路数量。
本申请提供的数据传输方法适用于所有直接或间接使用物理机的产品和服务,比如负载均衡服务、虚拟化服务、弹性计算服务、Hadoop、广告业务等。
基于相同的技术构思,本申请实施例还提供了一种数据传输装置,如图4所示,该装置包括:
确定模块401,用于在首次发送网络数据包至交换机的情况下,确定与交换机之间的多条链路,其中,所有链路上配置有等价路由,等价路由为动态路由或静态路由;
传输模块402,用于根据预设策略使网络数据包通过目标链路进行传输;
删除模块403,用于在目标链路出现故障的情况下,通过路由协议删除目标链路上的路由,并通过多条链路中除目标链路之外的一条链路进行网络数据包的传输,其中,路由协议用于执行网络数据包的路径选择。
可选地,网络数据包是由服务器发送至交换机上的,路由协议为动态路由协议,等价路由为动态路由,该装置还包括:
学习模块,用于通过动态路由协议从多个交换机的接口学习多个目标路由,其中,每个交换机对应一条目标路由,多个目标路由的目标地址相同;
聚合模块,用于将多个目标路由聚合成一条由多个下一跳构成的动态路由,其中,下一跳为交换机的下游接口地址;
配置模块,用于将动态路由配置在交换机和服务器之间的多条链路上。
聚合模块包括:
合并单元,用于通过服务器的动态路由方案将多个目标路由进行合并,形成一条动态路由,其中,每个目标路由具有对应的权重,每个目标路由对应一条链路,动态路由对应多条链路;
插入单元,用于将动态路由插入服务器对应的路由表中;
传输模块402包括:
传输单元,用于通过动态路由方案选取多条链路中的目标链路,并使网络数据包通过目标链路传输至交换机。
可选的,该装置还包括:
配置模块,用于配置静态路由协议,其中,静态路由协议的优先级低于动态路由协议的优先级;
执行模块,用于在服务器的动态路由模块出现故障或未启动的情况下,通过静态路由协议执行网络数据包的路径选择,其中,动态路由模块用于提供动态路由方案。
可选地,传输模块402包括:
第一确定单元,用于确定网络数据包的数据信息;
转换单元,用于将数据信息转化为目标哈希值;
第二确定单元,用于确定目标哈希值与全部链路的数量的余数值;
选取单元,用于选取链路标号为余数值的链路作为目标链路,其中,每条链路具有对应的链路标号。
基于相同的技术构思,本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现上述步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据传输系统,其特征在于,所述系统包括:
交换机,每个所述交换机的一个接口通过一条链路与服务器的一个端口连接,其中,所有所述链路上配置有等价路由,所述等价路由为动态路由或静态路由;
所述服务器,用于在首次发送网络数据包至所述交换机的情况下,确定与所述交换机之间的多条链路,并根据预设策略使所述网络数据包通过目标链路进行传输,在所述目标链路出现故障的情况下,所述服务器通过路由协议删除所述目标链路上的路由,并通过所述链路中除所述目标链路之外的一条链路进行所述网络数据包的传输,其中,所述路由协议用于执行所述网络数据包的路径选择。
2.一种数据传输方法,其特征在于,所述方法包括:
在首次发送网络数据包至交换机的情况下,确定与所述交换机之间的多条链路,其中,所有所述链路上配置有等价路由,所述等价路由为动态路由或静态路由;
根据预设策略使所述网络数据包通过目标链路进行传输;
在所述目标链路出现故障的情况下,通过路由协议删除所述目标链路上的路由,并通过所述多条链路中除所述目标链路之外的一条链路进行所述网络数据包的传输,其中,所述路由协议用于执行所述网络数据包的路径选择。
3.根据权利要求2所述的方法,其特征在于,所述网络数据包是由服务器发送至所述交换机上的,所述路由协议为动态路由协议,所述等价路由为动态路由,在根据预设策略使网络数据包通过目标链路进行传输之前,所述方法还包括:
通过所述动态路由协议从多个所述交换机的接口学习多个目标路由,其中,每个所述交换机对应一条目标路由,所述多个目标路由的目标地址相同;
将所述多个目标路由聚合成一条由多个下一跳构成的动态路由,其中,所述下一跳为所述交换机的下游接口地址;
将所述动态路由配置在所述交换机和服务器之间的多条链路上。
4.根据权利要求3所述的方法,其特征在于,所述将所述多个目标路由聚合为由多个下一跳构成的动态路由包括:
通过所述服务器的动态路由方案将所述多个目标路由进行合并,形成一条动态路由,其中,每个所述目标路由具有对应的权重,每个所述目标路由对应一条链路,所述动态路由对应多条链路;
将所述动态路由插入所述服务器对应的路由表中;
所述根据预设策略使所述网络数据包通过所述链路中的目标链路进行传输包括:
通过所述动态路由方案选取所述多条链路中的目标链路,并使所述网络数据包通过所述目标链路传输至所述交换机。
5.根据权利要求3所述的方法,其特征在于,通过所述动态路由协议从多个所述交换机的接口学习多个目标路由之前,所述方法还包括:
配置静态路由协议,其中,所述静态路由协议的优先级低于所述动态路由协议的优先级;
在所述服务器的动态路由模块出现故障或未启动的情况下,通过所述静态路由协议执行所述网络数据包的路径选择,其中,所述动态路由模块用于提供动态路由方案。
6.根据权利要求2所述的方法,其特征在于,所述根据预设策略使网络数据包通过目标链路进行传输包括:
确定所述网络数据包的数据信息;
将所述数据信息转化为目标哈希值;
确定所述目标哈希值与全部链路的数量的余数值;
选取链路标号为所述余数值的链路作为所述目标链路,其中,每条链路具有对应的链路标号。
7.一种数据传输装置,其特征在于,所述装置包括:
确定模块,用于在首次发送网络数据包至交换机的情况下,确定与所述交换机之间的多条链路,其中,所有所述链路上配置有等价路由,所述等价路由为动态路由或静态路由;
传输模块,用于根据预设策略使所述网络数据包通过目标链路进行传输;
删除模块,用于在所述目标链路出现故障的情况下,通过路由协议删除所述目标链路上的路由,并通过所述多条链路中除所述目标链路之外的一条链路进行所述网络数据包的传输,其中,所述路由协议用于执行所述网络数据包的路径选择。
8.根据权利要求7所述的装置,其特征在于,所述网络数据包是由服务器发送至所述交换机上的,所述路由协议为动态路由协议,所述等价路由为动态路由,所述装置还包括:
学习单元,用于通过所述动态路由协议从多个所述交换机的接口学习多个目标路由,其中,每个所述交换机对应一条目标路由,所述多个目标路由的目标地址相同;
聚合单元,用于将所述多个目标路由聚合成一条由多个下一跳构成的动态路由,其中,所述下一跳为所述交换机的下游接口地址;
配置单元,用于将所述动态路由配置在所述交换机和服务器之间的多条链路上。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求2-6任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求2-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110678535.4A CN113364678B (zh) | 2021-06-18 | 2021-06-18 | 数据传输系统、方法、装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110678535.4A CN113364678B (zh) | 2021-06-18 | 2021-06-18 | 数据传输系统、方法、装置、电子设备和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113364678A true CN113364678A (zh) | 2021-09-07 |
CN113364678B CN113364678B (zh) | 2023-01-10 |
Family
ID=77535065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110678535.4A Active CN113364678B (zh) | 2021-06-18 | 2021-06-18 | 数据传输系统、方法、装置、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113364678B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113949494A (zh) * | 2021-10-13 | 2022-01-18 | 上海许继电气有限公司 | 一种基于Linux系统双网卡绑定的监控系统和方法 |
CN114285786A (zh) * | 2021-12-24 | 2022-04-05 | 中国农业银行股份有限公司 | 一种网络链路库的构建方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725761A (zh) * | 2005-06-10 | 2006-01-25 | 杭州华为三康技术有限公司 | 网络设备实现链路聚合的方法 |
CN1798096A (zh) * | 2004-12-28 | 2006-07-05 | 杭州华为三康技术有限公司 | 在路由器或交换机上进行多出口流量管理的方法和设备 |
US20130272111A1 (en) * | 2010-12-07 | 2013-10-17 | Zte Corporation | Method and device for link fault detecting and recovering based on arp interaction |
CN106533940A (zh) * | 2016-10-25 | 2017-03-22 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的等价路由哈希选路方法、装置和系统 |
US20200007440A1 (en) * | 2018-06-27 | 2020-01-02 | Microsoft Technology Licensing, Llc | Dynamic rule-based flow routing in networks |
-
2021
- 2021-06-18 CN CN202110678535.4A patent/CN113364678B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798096A (zh) * | 2004-12-28 | 2006-07-05 | 杭州华为三康技术有限公司 | 在路由器或交换机上进行多出口流量管理的方法和设备 |
CN1725761A (zh) * | 2005-06-10 | 2006-01-25 | 杭州华为三康技术有限公司 | 网络设备实现链路聚合的方法 |
US20130272111A1 (en) * | 2010-12-07 | 2013-10-17 | Zte Corporation | Method and device for link fault detecting and recovering based on arp interaction |
CN106533940A (zh) * | 2016-10-25 | 2017-03-22 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的等价路由哈希选路方法、装置和系统 |
US20200007440A1 (en) * | 2018-06-27 | 2020-01-02 | Microsoft Technology Licensing, Llc | Dynamic rule-based flow routing in networks |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113949494A (zh) * | 2021-10-13 | 2022-01-18 | 上海许继电气有限公司 | 一种基于Linux系统双网卡绑定的监控系统和方法 |
CN114285786A (zh) * | 2021-12-24 | 2022-04-05 | 中国农业银行股份有限公司 | 一种网络链路库的构建方法及装置 |
CN114285786B (zh) * | 2021-12-24 | 2023-12-08 | 中国农业银行股份有限公司 | 一种网络链路库的构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113364678B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588737B2 (en) | Flow-based load balancing | |
JP7417825B2 (ja) | スライスベースルーティング | |
US9736278B1 (en) | Method and apparatus for connecting a gateway router to a set of scalable virtual IP network appliances in overlay networks | |
US9584369B2 (en) | Methods of representing software defined networking-based multiple layer network topology views | |
WO2020020144A1 (zh) | 链路切换方法、链路切换设备、网络通信系统以及计算机可读存储介质 | |
US8891516B2 (en) | Extended link aggregation (LAG) for use in multiple switches | |
CN113364678B (zh) | 数据传输系统、方法、装置、电子设备和计算机可读介质 | |
US11818038B2 (en) | Initiator-based data-plane validation for segment routed, multiprotocol label switched (MPLS) networks | |
US11770334B2 (en) | End-to-end path selection using dynamic software-defined cloud interconnect (SDCI) tunnels | |
WO2020114017A1 (zh) | 数据中心流量互通方法、装置、设备及存储介质 | |
US9800508B2 (en) | System and method of flow shaping to reduce impact of incast communications | |
US11425030B2 (en) | Equal cost multi-path (ECMP) failover within an automated system (AS) | |
WO2022253087A1 (zh) | 一种数据传输方法、节点、网络管理器及系统 | |
CN112491700A (zh) | 网络路径调整方法、系统、装置、电子设备及存储介质 | |
US20160269278A1 (en) | Path selection based on error analysis | |
CN114521322A (zh) | 动态发现网络中的服务节点 | |
Dominicini et al. | VirtPhy: A fully programmable infrastructure for efficient NFV in small data centers | |
CN115333991A (zh) | 跨设备链路聚合方法、装置、系统及计算机可读存储介质 | |
CN113141265B (zh) | 跨设备链路聚合方法及设备 | |
CN111163005B (zh) | 一种信息处理方法、装置、终端及存储介质 | |
WO2023116458A1 (zh) | 通信方法及装置、通信系统 | |
US20240205160A1 (en) | Service level agreement based data forwarding with link aggregation grouping | |
WO2020177471A1 (zh) | 报文传输方法、装置及存储介质 | |
CN117938741A (zh) | 交换机的wan口和lan口复用切换方法、装置和存储介质 | |
CN116938693A (zh) | 用户迁移的方法、装置、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |