CN113824781B - 一种数据中心网络源路由方法与装置 - Google Patents
一种数据中心网络源路由方法与装置 Download PDFInfo
- Publication number
- CN113824781B CN113824781B CN202111088344.9A CN202111088344A CN113824781B CN 113824781 B CN113824781 B CN 113824781B CN 202111088344 A CN202111088344 A CN 202111088344A CN 113824781 B CN113824781 B CN 113824781B
- Authority
- CN
- China
- Prior art keywords
- packet
- port
- switch
- forwarding
- data center
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000004891 communication Methods 0.000 abstract description 8
- 230000000875 corresponding effect Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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/302—Route determination based on requested QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据中心网络源路由方法与装置,本发明方法包括当源交换机从所连接的服务器接收到一个IP分组后,根据全网拓扑信息以及IP分组中包含的目的IP地址确定一条目标路径,将目标路径上的各个交换机的转发端口生成端口二进制串添加到IP分组中,并将IP分组通过该目标路径输出至数据中心网络中,以使数据中心网络中收到IP分组的各层级的交换机基于端口二进制串依次转发该IP分组直至目的IP地址收到该IP分组。本发明旨在进行高效的路径编码,使得能够充分发挥源路由的作用,同时不会增加太多网络通信的开销,实现一种简单高效的源路由技术以有效地支撑在数据中心网络中实现多路径路由和网络负载均衡。
Description
技术领域
本发明涉及网络路由技术,具体涉及一种数据中心网络源路由方法与装置。
背景技术
数据中心网络是实现云计算的网络基础设施,是国家信息基础设施建设的重要内容。随着云计算的快速发展和大规模应用,数据中心网络规模不断扩大,承载的云计算应用和各种业务越来越多,网络管理与控制日益复杂。数据中心网络的运营商迫切需要充分利用网络资源来为更多的用户提供更好的服务,数据中心网络的性能优化是运营商不断追求的一大目标。实现数据中心网络的负载均衡是提高数据中心网络性能的重要内容。网络负载均衡有利于降低网络拥塞发生的几率,提高端端传输容量并降低传输延迟,提高网络资源利用率。多路径路由将一条数据流的流量分散到多条不一样的传输路径上,是实现网络负载均衡的主要手段之一。多路径路由需要网络路由交换设备在硬件上做较为复杂的处理,因而在过去一直没有得到广泛应用。为支持负载均衡,一些数据中心网络产品提供了等价多路径(ECMP)的机制,可以实现流量的细分,但对确定的一条流,路由转发仍然只能使用单条路径,即在路由交换设备的流表中,每个表项仍只有一个路由选择。
近年来网络新技术的出现使得多路径路由的可实现性越来越强,包括可编程硬件技术和段路由技术。为了实现网络的可编程,研究人员在将网络设备硬件平面进行抽象建模的同时,定义了标准化的网络硬件编程接口或编程语言,如微软公司提出交换机抽象接口(SAI),美国Barefoot网络公司和普林斯顿大学等的研究人员提出网络硬件编程语言P4等。为满足可编程网络设备的研发需求,国防科大等单位开展了网络处理器(NPU)的研究。网络处理器基于FPGA和嵌入式处理器实现,兼顾了软硬件编程的灵活性,可为实现用户定制的网络协议和网络软件提供基础。
P4是一种对网络数据处理行为进行编程的高级语言,它基于解析器和一系列“匹配-动作”流表的抽象转发模型,解析器用于识别和解析数据包的首部(header),匹配-动作表用于匹配数据包首部的指定域,在匹配后执行相应的动作。P4支持一系列可扩展的元语动作实现数据包处理,可以基于FPGA、NPU等可编程芯片来实现。基于P4语言的可编程能力可以实现许多网络功能,如负载均衡与资源分配优化、网络测量、网络监控与诊断等。除了P4以外,华为公司于2013年推出的协议无关转发(POF)方案也可以用于增加网络设备的可编程性和可扩展性。POF通过定义流指令集实现数据包转发。POF将数据包的处理抽象为在数据包特定位置的比特串的插入、删除、拷贝和修改,包括对比特串进行算术和逻辑运算。P4和POF方案为在网络设备硬件中实现多路径路由提供了良好的支持。
为提高网络资源利用率,并满足用户多样化的路由需求,美国思科公司和互联网协议标准化组织IETF提出了段路由(segment routing)技术。段路由本质上是一种源路由(Source Routing,SR)技术,即在数据包的头部包含源路由信息,网络路由交换设备根据源路由指定的路径进行数据包的转发。段路由主要有基于MPLS(多协议标签交换)和基于IPv6的两种形式,分别称为MPLS SR技术和SRv6技术。MPLS SR主要用MPLS的标签(label)来表示数据包的传输路径,每个标签通常占用4个字节(32个二进制比特位),代表路径的一段连接。由于MPLS的标签栈包含的标签数有限,因而需要采用粘连标签的技术来支持实现较长的标签转发路径。SRv6用扩展路由选项来表示段路由,扩展路由选项被携带在IPv6的数据包首部之后。由于一个IPv6地址长达128位(16个字节),因此段路由的扩展路由选项将带来较大的开销。针对此问题,北京邮电大学、南京紫金山实验室和中国移动等联合推出了G-SRv6头压缩技术。但即使采用了头压缩,SRv6技术在应用于数据中心网络时仍然存在开销较大的问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种数据中心网络源路由方法与装置,本发明旨在进行高效的路径编码,使得能够充分发挥源路由的作用,同时不会增加太多网络通信的开销,实现一种简单高效的源路由技术以有效地支撑在数据中心网络中实现多路径路由和网络负载均衡。
为了解决上述技术问题,本发明采用的技术方案为:
一种数据中心网络源路由方法,包括:
1)数据中心网络中各层级的交换机通过分布式链路状态路由协议获得全网拓扑信息;
2)当源交换机从所连接的服务器接收到一个IP分组后,根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条目标路径,将目标路径上的各个交换机的转发端口生成端口二进制串添加到IP分组中,并将IP分组通过该目标路径输出至数据中心网络中,以使数据中心网络中收到IP分组的各层级的交换机基于端口二进制串依次转发该IP分组直至目的IP地址的服务器收到该IP分组。
可选地,步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,每一个转发端口的长度为其中/>为上取整,N为对应交换机的最大端口数。
可选地,步骤1)中获得全网拓扑信息时还包括获得各个交换机的端口编号位数,步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,交换机的最大端口数是指获得的交换机的端口编号位数。
可选地,步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,还包括在端口二进制串中添加路径指针,所述路径指针用于在数据中心网络中各层级的交换机基于端口二进制串进行转发该IP分组时标记IP分组的当前路径位置在目标路径中的位置。
可选地,所述数据中心网络中各层级的交换机基于端口二进制串依次转发该IP分组的步骤包括:
S1)判断IP分组中包含的目的IP地址是否为本交换机直接相连的服务器,若是,则将IP分组中携带的端口二进制串去除,然后再发送给与本交换机直接相连的服务器,使得目的IP地址对应的服务器收到该IP分组,结束并退出;否则,跳转至下一步;
S2)基于路径指针在端口二进制串中找到本交换机的转发端口;
S3)将该IP分组的路径指针更新为下一个交换机对应的转发端口在目标路径中的位置,然后将更新路径指针后的该IP分组通过本交换机的转发端口输出。
可选地,步骤S2)中基于路径指针在端口二进制串中找到本交换机的转发端口是指从端口二进制串中的第r位开始提取连续的mi位二进制数据;步骤S3)中将该IP分组的路径指针更新为下一个交换机对应的转发端口在目标路径中的位置是指将路径指针的值r更新为(r+mi),其中r为路径指针的值,mi为本交换机的转发端口编号位数。
可选地,步骤S3)中还包括下一个交换机对应的转发端口在目标路径中的位置大于端口二进制串的总长度或者本交换机的转发端口发生故障时进行转发的步骤:将该IP分组中原有的端口二进制串删除,再将删除端口二进制串后的IP分组采用预设的路由策略转发至数据中心网络中,最终使得目的IP地址的服务器收到该IP分组。
然后将本交换机作为新的源交换机,根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条新的目标路径,将新的目标路径上的各个交换机的转发端口生成新的端口二进制串添加到IP分组中,并将IP分组通过该新的目标路径输出至数据中心网络中,以使数据中心网络中收到IP分组的各层级的交换机基于端口二进制串依次转发该IP分组直至目的IP地址收到该IP分组。
此外,本发明还提供一种用于应用所述的数据中心网络源路由方法的数据中心网络源路由装置,包括:
控制单元,用于基于分布式链路状态路由协议获取全网拓扑信息生成路由表或流表;
路由查表模块,用于在收到服务器或者源路由转发模块提交的IP分组时根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条目标路径,将目标路径上的各个交换机的转发端口生成端口二进制串添加到IP分组中;
源路由转发模块,用于转发来自源交换机的IP分组至交换模块,且在转发失败时将该IP分组中原有的端口二进制串删除后发送给路由查表模块以将本交换机作为新的源交换机重新启动该IP分组的转发;
交换模块,用于将IP分组进行数据交换;
输出接口队列,用于将待输出的IP分组通过指定的输出端口输出至数据中心网络中。
此外,本发明还提供一种数据中心网络源路由装置,包括相互连接的路由处理器,所述路由处理器分别连接有输入网络接口和输出网络连接,所述路由处理器被编程或配置以执行前述数据中心网络源路由方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述数据中心网络源路由方法的计算机程序。
和现有技术相比,本发明具有下述优点:本发明包括数据中心网络中各层级的交换机通过分布式链路状态路由协议获得全网拓扑信息;当源交换机从所连接的服务器接收到一个IP分组后,根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条目标路径,将目标路径上的各个交换机的转发端口生成端口二进制串添加到IP分组中,并将IP分组通过该目标路径输出至数据中心网络中,以使数据中心网络中收到IP分组的各层级的交换机基于端口二进制串依次转发该IP分组直至目的IP地址的服务器收到该IP分组。本发明通过端口二进制串实现了高效的路径编码,能够充分发挥源路由的作用,同时不会增加太多网络通信的开销,实现一种简单高效的源路由技术,可以有效地支撑在数据中心网络中实现多路径路由和网络负载均衡。
附图说明
图1为本发明实施例中数据中心网络的拓扑结构示意图。
图2为本发明实施例方法的基本流程示意图。
图3为本发明实施例中扩展的OSPF路由协议的router-LSA的格式示意图;
图4为本发明实施例中表示源路由的二进制位串的格式示意图,其中(a)为32位长的源路由格式,(b)为64位长的源路由格式。
图5为本发明实施例中的数据中心交换机的软硬件系统的综合结构示意图。
具体实施方式
下文将以图1所示数据中心网络为例,对本发明数据中心网络源路由方法与装置进行进一步的详细说明。参见图1,该数据中心网络由数据中心交换机和服务器组成,数据中心交换机(以下简称交换机)是网络中的路由交换节点,服务器是承载各种服务和用户应用的计算机。交换机之间、交换机和服务器之间通过高速链路进行连接,如万兆以太网、100G以太网等。交换机的端口数通常有限,如24端口或48端口等。假定任意两台交换机之间只有一条链路。若两台交换机之间同时有多条链路,则将它们视作同一条逻辑链路。交换机上运行一个分布式链路状态路由协议,如IS-IS或OSPF。服务器和交换机均采用TCP/IP协议进行通信。交换机进一步可分为柜顶(ToR)交换机、汇聚交换机和核心交换机。数据中心服务器一般只与柜顶交换机连接,柜顶交换机也称为接入交换机。交换机按照一定的网络拓扑进行互联,如Clos结构、Spine-leaf结构、Cube结构等。数据中心网络拓扑通常具有连接密集、网络直径短的特点,任意两台ToR交换机之间通常存在多条等价路径,从而为数据中心网络的负载均衡和高可靠性提供支撑。本发明数据中心网络源路由方法与装置基于这样一个观察,即数据中心网络的拓扑通常具有连接密集但网络直径较小的特点,网络任意两个端节点之间通常存在多条冗余路径,基于上述数据中心网络都可以采用本发明方法及装置以有效地提高数据中心网络的资源利用率,实现更好的网络负载均衡,从而提高网络通信性能,而并不局限于图1所示特定的数据中心网络结构。
如图2所示,本实施例数据中心网络源路由方法包括:
1)数据中心网络中各层级的交换机通过分布式链路状态路由协议获得全网拓扑信息;
2)当源交换机从所连接的服务器接收到一个IP分组后,根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条目标路径,将目标路径上的各个交换机的转发端口生成端口二进制串添加到IP分组中,并将IP分组通过该目标路径输出至数据中心网络中,以使数据中心网络中收到IP分组的各层级的交换机基于端口二进制串依次转发该IP分组直至目的IP地址的服务器收到该IP分组。
步骤1)数据中心网络中各层级的交换机通过分布式链路状态路由协议获得全网拓扑信息后,数据中心网络中各层级的交换机可根据网络拓扑信息计算路由、建立路由表/流表,该方法为网络路由的基本实现方法,其详细实现在此不再详细说明。
本实施例步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,每一个转发端口的长度为其中/>为上取整,N为对应交换机的最大端口数。交换机通过扩展分布式链路状态路由协议来在网络中发布节点的最大端口数、各个端口的编号等信息。假设一个交换机的最大端口数为N,则该交换机各个端口的编号在[0,N-1]之间。当用二进制数来表示端口的编号时,表示N个端口的编号需要的二进制数的最大位数为/>这里/>表示取等于或大于log2N的最小整数。每个交换机有一个端口编号的最大位数,称为端口编号位数。交换机的端口编号位数和端口编号可以附带在链路状态路由协议的链路状态通告(link-state advertisement)数据中进行发布。交换机运行的路由协议需具有多路径路由功能,即对任意一个目的网络地址,可以计算多条不同的传输路径,通常这些路径具有相同的路由代价,称为等价多路径。由于端口二进制串中不同的转发端口隶属于不同的交换机,N为对应交换机的最大端口数,可实现以交换机为粒度定制转发端口编号的长度,如果交换机的最大端口数不同,就可使得转发端口编号的长度不同,从而可使得端口二进制串的长度最短,有利于减少网络开销。例如,对24端口的交换机,N=24,对24个端口编号最多需要5位二进制位,其端口编号位数即为5。对48端口的交换机,其端口编号位数则为6。
在实现以交换机为粒度定制转发端口编号的长度以使得端口二进制串的长度最短时,一种方式为手工确认各个交换机的端口编号位数,但是这样会存在效率低下、适应性差的问题。本实施例步骤1)中获得全网拓扑信息时还包括获得各个交换机的端口编号位数,步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,交换机的最大端口数是指获得的交换机的端口编号位数,从而可实现基于分布式链路状态路由协议自动实现以交换机为粒度定制转发端口编号的长度以使得端口二进制串的长度最短。
步骤2)中基于预设的策略确定一条目标路径时,若根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的路径为一条,则该条路径直接作为目标路径;若根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的路径为多条,则可根据预设的策略选择一条作为目标路径,预设的策略可采用出队列长度最短优先策略(该路径对应的出队列中包含的IP分组最少)或其他策略等。
交换机的端口编号位数和端口编号可以附带在链路状态路由协议的链路状态通告(link-state advertisement)数据中进行发布。以OSPF(Open Shortest Path First开放式最短路径优先)为例,可以用链路状态通告中的Router-LSA来携带交换机的端口编号位数和端口编号信息。OSPF的链路状态通告数据的格式参见RFC 2328的定义。例如,可以用Router-LSA中#links字段前未用的一个字节来表示端口编号位数,如图3所示。Router-LSA中针对每个端口可以对应有一条link数据(连接数据),可以用link数据中特殊的TOS(服务类型)和TOS metric(指定服务类型的链路开销)来表示端口的编号。OSPF中编码为31的TOS未定义,因此可以用编码为31的TOS来表示端口编号,即在OSPF的Router-LSA中,在每条link数据的后面增加一个编码为31的TOS数据,其中TOS metric域的值设置为端口编号。
参见图2可知,本实施例中的源交换机是指ToR交换机。当与服务器连接的ToR交换机从服务器接收到一个IP分组后,根据分组的目的IP地址可以从路由协议获得多条路径。该交换机称为源交换机。源交换机按照出队列长度最短优先或某个合适的策略选择一条路径用于分组传输。假设选择的路径为(s1,s2,…,sk),其中s1为当前节点的下一跳交换机,si(1≤i≤k)为路径中第i跳的交换机。sk为与目的IP地址直接相连的交换机,称为目的交换机。对交换机si和si+1之间的链路,假设si上对应端口的编号为pi,则该路径可以用对应端口的编号列表来表示,即(p1,p2,…,pk-1)。源交换机将路径对应的端口编号列表用一个二进制串来表示,其中编号pi的二进制位数为交换机si的端口编号位数。
步骤2)中根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,交换机运行的路由协议需具有多路径路由功能,即对任意一个目的网络地址,可以计算多条不同的传输路径,通常这些路径具有相同的路由代价,称为等价多路径。例如图1中,在服务器A和服务器B之间有8条由不同层级的交换机构成的等价最短路径,分别是s1→s2→s4→s6→s8、s1→s2→s4→s7→s8、s1→s2→s5→s6→s8、s1→s2→s5→s7→s8、s1→s3→s4→s6→s8、s1→s3→s4→s7→s8、s1→s3→s5→s6→s8、s1→s3→s5→s7→s8。
为了进一步简化IP分组转发过程,本实施例步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,还包括在端口二进制串中添加路径指针(pointer),所述路径指针用于在数据中心网络中各层级的交换机基于端口二进制串进行转发该IP分组时,标记IP分组的当前路径位置在目标路径中的位置,从而各个中间节点的交换机可以快速确定所需的转发端口。本实施例中源交换机将表示编号列表的二进制串和一个表示当前路径位置的指针一起附加到IP分组前面,然后将IP分组发送给下一跳交换机s1。表示当前路径位置的指针称为路径指针,为一个用二进制表示的无符号整数值,表示下一跳交换机在确定转发端口时,应该从表示路径的二进制串的哪一位开始获得转发端口编号信息。源交换机将路径指针的初始值设置为0。表示源路由的端口二进制串包含路径指针和端口编号列表。
考虑到系统规模不同可能导致长度很不同的端口编号列表,这里定义两种二进制编码格式来表示端口编号列表,如图4所示。图4中(a)所示的第一种格式总共32位,其中第1位为0,表示这是一个32位长的源路由。路径指针pointer用5位二进制数来表示,端口编号列表是最大长度为26位的二进制位串。当数据中心交换机均为24端口交换机时,其端口编号位数为5,因而26位长的端口编号列表最多可以包含5个端口编号。图4中(b)所示的第二种格式总共64位,其中第1位为1,第2位为0,表示这是一个64位长的源路由。路径指针pointer用6位二进制数来表示,端口编号列表是最大长度为(24+32)=56位的二进制位串。当数据中心交换机均为24端口交换机时,其端口编号位数为5,因而56位长的端口编号列表最多可以包含11个端口编号。当数据中心交换机均为48端口交换机时,其端口编号位数为6,因而56位长的端口编号列表最多可以包含9个端口编号,这在大多数情况下已经足够用了。以此类推,还可以定义96位和128位长的源路由格式。
以图1中的服务器A和服务器B之间的通信为例。s1是与服务器A相连的ToR交换机。当s1收到服务器A发送给服务器B的一个IP分组后,根据IP分组的目的地址从OSPF路由协议软件获得多条等价路径,例如前述的8条从s1到s8的最短路径。假设交换机采用随机选择的策略从8条最短路径中随机选择一条作为当前IP分组的传输路径,例如选择了路径s1→s2→s5→s6→s8。由于s2是路径上s1的下一跳节点,因此s1从s2开始对路径进行编码,即要编码的路径为(s2,s5,s6,s8)。令交换机s2上链路(s2,s5)的端口编号为p1,s5上链路(s5,s6)的端口编号为p2,s6上链路(s6,s8)的端口编号为p3,则路径的编码可以用端口编号列表(p1,p2,p3)对应的二进制位串来表示。上述例子中,假设数据中心交换机均为48端口交换机,其端口编号位数均为6。假设端口编号p1=11,p2=39,p3=25,因而端口编号列表(p1,p2,p3)对应的二进制位串为001011100111011001,总共18位。相应的路径信息可以用32位长的源路由来表示。初始的路径指针pointer为0,因此相应的二进制串为00000000101110011101100100000000,其中表示端口编号列表的二进制串中,不足部分填0来表示。编码结束后,交换机s1将32位源路由附加到IP分组前面,然后将IP分组发送给下一跳交换机s2。
本实施例中,数据中心网络中各层级的交换机基于端口二进制串依次转发该IP分组的步骤包括:
S1)判断IP分组中包含的目的IP地址是否为本交换机直接相连的服务器,若是,则将IP分组中携带的端口二进制串去除(可实现对服务器的透明),然后再发送给与本交换机直接相连的服务器,使得目的IP地址的服务器收到该IP分组,结束并退出;否则,跳转至下一步;
S2)基于路径指针在端口二进制串中找到本交换机的转发端口;
S3)将该IP分组的路径指针更新为下一个交换机对应的转发端口在目标路径中的位置,然后将更新路径指针后的该IP分组通过本交换机的转发端口输出。
本实施例中由于实现了基于分布式链路状态路由协议自动实现以交换机为粒度定制转发端口编号的长度以使得端口二进制串的长度最短,因此步骤S2)中基于路径指针在端口二进制串中找到本交换机的转发端口是指从端口二进制串中的第r位开始提取连续的mi位二进制数据;步骤S3)中将该IP分组的路径指针更新为下一个交换机对应的转发端口在目标路径中的位置是指将路径指针的值r更新为(r+mi),其中r为路径指针的值,mi为本交换机的转发端口编号位数。
此外,针对转发故障的情况下,本实施例步骤S3)中还包括下一个交换机对应的转发端口在目标路径中的位置大于端口二进制串的总长度或者本交换机的转发端口发生故障时进行转发的步骤:将该IP分组中原有的端口二进制串删除,再将删除端口二进制串后的IP分组采用预设的路由策略转发至数据中心网络中,最终使得目的IP地址的服务器收到该IP分组。
此处预设的路由策略可根据需要进行选择:
例如作为一种可选的方式,可采用传统的路由转发方法,使得中间的交换机不必再进行源路由选择、编码等操作,从而减少实现复杂性。
作为另一种可选的实施方式,也可以继续采用本实施例的核心方法,即:将该IP分组中原有的端口二进制串删除,然后将本交换机作为新的源交换机,根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条新的目标路径,将新的目标路径上的各个交换机的转发端口生成新的端口二进制串添加到IP分组中,并将IP分组通过该新的目标路径输出至数据中心网络中,以使数据中心网络中收到IP分组的各层级的交换机基于端口二进制串依次转发该IP分组直至目的IP地址收到该IP分组,该方式的复杂性会高一些,但是可在故障情况下进一步发挥源路由的作用,不会增加太多网络通信的开销,有效支撑在数据中心网络中实现多路径路由和网络负载均衡。
当路径上的第i跳交换机si接收到带有路径和路径指针信息的IP分组后,首先根据分组的IP目的地址判断目的地址是否是与交换机直接相连的地址,若是,则表明目的地址直接可达,因而将IP分组前面的路径和路径指针数据去除,然后将IP分组直接转发给目的IP地址对应的设备,处理结束。否则,根据路径指针和交换机si的端口编号位数,从表示路径的二进制串中提取出转发端口编号信息。假设IP分组中的路径指针值为r,si的端口编号位数为mi,则从二进制串的第r位开始提取连续的mi位二进制数据,得到的结果就是交换机si的转发端口编号。若(r+mi)的值大于二进制串的长度,或者编号对应的转发端口故障,则将IP分组前面的路径和路径指针数据去除,然后重新查找IP路由表,按照通常的IP路由转发方式进行IP分组的转发。否则,交换机si将路径指针的值更新为(r+mi),然后按照转发端口编号,将附带有路径和路径指针信息的IP分组从对应的端口转发给下一跳交换机,处理结束。
本实施例中,当交换机s2从s1接收到带有源路由信息的IP分组后,首先判断IP分组的目的地址是否是与交换机直接相连的地址。这里IP分组的目的地址为服务器B的IP地址,不是与s2直接相连的地址,因此s2从源路由信息中提取转发端口的编号信息。首先从表示源路由的二进制串中提取出路径指针,即r=0。其次,s2的端口编号长度为6,因此从表示端口编号列表的二进制串的第r位开始,提取连续6位二进制位数据,得到001011,即转发端口编号为11。然后,s2将路径指针的值更新为6,即表示源路由的二进制串被改变为00011000101110011101100100000000。最后,s2将带有源路由信息的IP分组从编号为11的端口转发给下一跳节点s5,处理结束。
类似地,当s5收到上述带有源路由信息的IP分组后,从源路由信息中得到路径指针为r=6,进一步提取得到转发端口的编号为39。然后将路径指针的值更新为12,表示源路由的二进制串被更新为00110000101110011101100100000000,再将带有源路由信息的IP分组从编号为39的端口转发给下一跳节点s6。
类似地,当s6收到上述带有源路由信息的IP分组后,从源路由信息中得到路径指针为r=12,进一步提取得到转发端口的编号为25。然后将路径指针的值更新为18,表示源路由的二进制串被更新为01001000101110011101100100000000,再将带有源路由信息的IP分组从编号为25的端口转发给下一跳节点s8。
当s8收到上述带有源路由信息的IP分组后,判断IP分组的目的地址是与它直接相连的地址,因此将IP分组前面的源路由信息去除,然后将IP分组从与目的地址相连的端口直接发送给目的节点,即将IP分组发送给服务器B,从而完成IP分组的传输过程。
综上所述,本实施例数据中心网络源路由方法针对数据中心网络多路径和负载均衡路由的需求,结合分布式链路状态路由协议,提出了一个简单高效的源路由方法,可以为提高数据中心网络资源利用率和传输性能提供良好的支持。本实施例数据中心网络源路由方法通过端口二进制串实现了高效的路径编码,能够充分发挥源路由的作用,同时不会增加太多网络通信的开销,实现一种简单高效的源路由技术,可以有效地支撑在数据中心网络中实现多路径路由和网络负载均衡。相比于MPLS SR和SRv6段路由技术,本实施例数据中心网络源路由方法仅需要在IP数据包前面增加4个字节或8个字节的开销,就可以满足数据中心网络中大多数情况下的多路径路由需求。
如图5所示,本实施例还提供一种用于应用前述的数据中心网络源路由方法的数据中心网络源路由装置,包括:
控制单元,用于基于分布式链路状态路由协议获取全网拓扑信息生成路由表或流表;
路由查表模块,用于在收到服务器或者源路由转发模块提交的IP分组时根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条目标路径,将目标路径上的各个交换机的转发端口生成端口二进制串添加到IP分组中;
源路由转发模块,用于转发来自源交换机的IP分组至交换模块,且在转发失败时将该IP分组中原有的端口二进制串删除后发送给路由查表模块以将本交换机作为新的源交换机重新启动该IP分组的转发;
交换模块,用于将IP分组进行数据交换;
输出接口队列,用于将待输出的IP分组通过指定的输出端口输出至数据中心网络中。
参见图5,交换机分为硬件部分和软件部分。硬件部分包括网络通信端口、路由表或流表、交换模块、路由查表模块和源路由转发模块等。其中,控制单元为在现有控制平面中增加的分布式链路状态路由协议软件实现,源路由转发模块是相比于传统数据中心交换机新增加的模块,用于完成数据包基于源路由信息的转发动作。网络通信端口通常有一个出接口队列,用于存放等待传输的数据包。硬件部分完成交换机数据平面的处理功能,如数据包的接收、查路由表或流表、数据包排队和发送等。软件部分包括交换机操作系统、路由协议软件、网络管理软件等,完成交换机控制平面的处理功能,如路由协议数据包的处理、路由计算、网络管理等。这里的路由协议软件是实现了功能扩展的某个分布式链路状态路由协议,如扩展的IS-IS或OSPF,扩展的功能主要是为实现本发明的源路由机制进行扩充的功能,即在网络中发布交换机的最大端口数、各个端口的编号等信息。作为一种可选的实施方式,本实施例中的交换机采用OSPF路由协议。
此外,本实施例还提供一种数据中心网络源路由装置,包括相互连接的路由处理器,所述路由处理器分别连接有输入网络接口和输出网络连接,所述路由处理器被编程或配置以执行前述数据中心网络源路由方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述数据中心网络源路由方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种数据中心网络源路由方法,其特征在于,包括:
1)数据中心网络中各层级的交换机通过分布式链路状态路由协议获得全网拓扑信息;
2)当源交换机从所连接的服务器接收到一个IP分组后,根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条目标路径,将目标路径上的各个交换机的转发端口生成端口二进制串添加到IP分组中,并将IP分组通过该目标路径输出至数据中心网络中,以使数据中心网络中收到IP分组的各层级的交换机基于端口二进制串依次转发该IP分组直至目的IP地址的服务器收到该IP分组;
其中,步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,每一个转发端口的长度为其中/>为上取整,N为对应交换机的最大端口数;
其中,步骤1)中获得全网拓扑信息时还包括获得各个交换机的端口编号位数,步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,交换机的最大端口数是指获得的交换机的端口编号位数;
其中,步骤2)中将目标路径上的各个交换机的转发端口生成端口二进制串时,还包括在端口二进制串中添加路径指针,所述路径指针用于在数据中心网络中各层级的交换机基于端口二进制串进行转发该IP分组时标记IP分组的当前路径位置在目标路径中的位置;
所述数据中心网络中收到IP分组的各层级的交换机基于端口二进制串依次转发该IP分组直至目的IP地址的服务器收到该IP分组包括:
S1)判断IP分组中包含的目的IP地址是否为本交换机直接相连的服务器,若是,则将IP分组中携带的端口二进制串去除,然后再发送给与本交换机直接相连的服务器,使得目的IP地址对应的服务器收到该IP分组,结束并退出;否则,跳转至下一步;
S2)基于路径指针在端口二进制串中找到本交换机的转发端口;
S3)将该IP分组的路径指针更新为下一个交换机对应的转发端口在目标路径中的位置,然后将更新路径指针后的该IP分组通过本交换机的转发端口输出。
2.根据权利要求1所述的数据中心网络源路由方法,其特征在于,步骤S2)中基于路径指针在端口二进制串中找到本交换机的转发端口是指从端口二进制串中的第r位开始提取连续的mi位二进制数据;步骤S3)中将该IP分组的路径指针更新为下一个交换机对应的转发端口在目标路径中的位置是指将路径指针的值r更新为(r+mi),其中r为路径指针的值,mi为本交换机的转发端口编号位数。
3.根据权利要求1所述的数据中心网络源路由方法,其特征在于,步骤S3)中还包括下一个交换机对应的转发端口在目标路径中的位置大于端口二进制串的总长度或者本交换机的转发端口发生故障时进行转发的步骤:将该IP分组中原有的端口二进制串删除,再将删除端口二进制串后的IP分组采用预设的路由策略转发至数据中心网络中,最终使得目的IP地址的服务器收到该IP分组。
4.一种用于应用权利要求1~3中任意一项所述的数据中心网络源路由方法的数据中心网络源路由装置,其特征在于,包括:
控制单元,用于基于分布式链路状态路由协议获取全网拓扑信息生成路由表或流表;
路由查表模块,用于在收到服务器或者源路由转发模块提交的IP分组时根据全网拓扑信息以及IP分组中包含的目的IP地址获得通往目的IP地址的一条或多条路径,并基于预设的策略确定一条目标路径,将目标路径上的各个交换机的转发端口生成端口二进制串添加到IP分组中;
源路由转发模块,用于转发来自源交换机的IP分组至交换模块,且在转发失败时将该IP分组中原有的端口二进制串删除后发送给路由查表模块以将本交换机作为新的源交换机重新启动该IP分组的转发;
交换模块,用于将IP分组进行数据交换;
输出接口队列,用于将待输出的IP分组通过指定的输出端口输出至数据中心网络中。
5.一种数据中心网络源路由装置,包括相互连接的路由处理器,所述路由处理器分别连接有输入网络接口和输出网络连接,其特征在于,所述路由处理器被编程或配置以执行权利要求1~3中任意一项所述数据中心网络源路由方法的步骤。
6.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~3中任意一项所述数据中心网络源路由方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111088344.9A CN113824781B (zh) | 2021-09-16 | 2021-09-16 | 一种数据中心网络源路由方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111088344.9A CN113824781B (zh) | 2021-09-16 | 2021-09-16 | 一种数据中心网络源路由方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113824781A CN113824781A (zh) | 2021-12-21 |
CN113824781B true CN113824781B (zh) | 2023-10-31 |
Family
ID=78922134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111088344.9A Active CN113824781B (zh) | 2021-09-16 | 2021-09-16 | 一种数据中心网络源路由方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113824781B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780628A (zh) * | 2012-07-31 | 2012-11-14 | 中国人民解放军国防科学技术大学 | 面向多核微处理器的片上互连网络路由方法 |
CN104579955A (zh) * | 2014-12-15 | 2015-04-29 | 清华大学 | 基于包粒度的数据中心网络源路由方法及装置 |
US9042234B1 (en) * | 2012-10-31 | 2015-05-26 | Big Switch Networks, Inc. | Systems and methods for efficient network traffic forwarding |
WO2015077878A1 (en) * | 2013-11-26 | 2015-06-04 | Rockstar Consortium Us Lp | Switched path aggregation for data centers |
CN110601983A (zh) * | 2019-10-15 | 2019-12-20 | 南京信息职业技术学院 | 一种协议无感知源路由转发方法及系统 |
CN110832813A (zh) * | 2017-06-27 | 2020-02-21 | 思科技术公司 | 使用分段路由的以太网虚拟专用网 |
CN111147385A (zh) * | 2019-12-18 | 2020-05-12 | 江苏理工学院 | 一种软件定义数据中心网络数据平面转发方法及系统 |
CN111356202A (zh) * | 2020-03-09 | 2020-06-30 | 大唐联诚信息系统技术有限公司 | 一种用于窄带自组网的低开销混合路由协议方法 |
CN111585890A (zh) * | 2020-04-10 | 2020-08-25 | 清华大学 | 基于SRv6的网络路径验证方法及系统 |
CN111713079A (zh) * | 2018-10-22 | 2020-09-25 | 思科技术公司 | 包括段路由的分组网络互通 |
CN113364677A (zh) * | 2021-06-07 | 2021-09-07 | 北京工业大学 | 一种SRv6 Endpoint故障保护方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11115324B2 (en) * | 2019-08-27 | 2021-09-07 | Nokia Solutions Networks Oy | System and method for performing segment routing over an MPLS network |
-
2021
- 2021-09-16 CN CN202111088344.9A patent/CN113824781B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780628A (zh) * | 2012-07-31 | 2012-11-14 | 中国人民解放军国防科学技术大学 | 面向多核微处理器的片上互连网络路由方法 |
US9042234B1 (en) * | 2012-10-31 | 2015-05-26 | Big Switch Networks, Inc. | Systems and methods for efficient network traffic forwarding |
WO2015077878A1 (en) * | 2013-11-26 | 2015-06-04 | Rockstar Consortium Us Lp | Switched path aggregation for data centers |
CN104579955A (zh) * | 2014-12-15 | 2015-04-29 | 清华大学 | 基于包粒度的数据中心网络源路由方法及装置 |
CN110832813A (zh) * | 2017-06-27 | 2020-02-21 | 思科技术公司 | 使用分段路由的以太网虚拟专用网 |
CN111713079A (zh) * | 2018-10-22 | 2020-09-25 | 思科技术公司 | 包括段路由的分组网络互通 |
CN110601983A (zh) * | 2019-10-15 | 2019-12-20 | 南京信息职业技术学院 | 一种协议无感知源路由转发方法及系统 |
CN111147385A (zh) * | 2019-12-18 | 2020-05-12 | 江苏理工学院 | 一种软件定义数据中心网络数据平面转发方法及系统 |
CN111356202A (zh) * | 2020-03-09 | 2020-06-30 | 大唐联诚信息系统技术有限公司 | 一种用于窄带自组网的低开销混合路由协议方法 |
CN111585890A (zh) * | 2020-04-10 | 2020-08-25 | 清华大学 | 基于SRv6的网络路径验证方法及系统 |
CN113364677A (zh) * | 2021-06-07 | 2021-09-07 | 北京工业大学 | 一种SRv6 Endpoint故障保护方法 |
Non-Patent Citations (5)
Title |
---|
《A Novel Resource Allocation Algorithm for a Heterogeneous Data Center》;王宝生;《2013 International Conference on Information Science and Applications (ICISA)》;全文 * |
《PolKA: Polynomial Key-based Architecture for Source Routing in Network Fabrics》;Cristina Dominicini;《2020 6th IEEE International Conference on Network Softwarization (NetSoft)》;全文 * |
《协议无关的数据中心网络源路由机制研究》;常坤;《计算机系统应用》;全文 * |
《现代数据中心网络特征研究》;王宏;《计算机研究与发展》;全文 * |
《空间延迟/中断容忍网络的接触图路由研究综述》;徐双;《软件学报》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113824781A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7520170B2 (ja) | パケット処理方法および装置、デバイス、ならびにシステム | |
US8792497B2 (en) | Method and apparatus for performing link aggregation | |
US7177276B1 (en) | Pipelined packet switching and queuing architecture | |
JP3734704B2 (ja) | パケット分類エンジン | |
JP4057067B2 (ja) | 多層スイッチング・ネットワーク要素中でパケット・フィールドを置換するための機構 | |
US9973400B2 (en) | Network flow information collection method and apparatus | |
CN108173982B (zh) | 跨板报文的nat处理方法及装置 | |
US20030002443A1 (en) | System and method for enhancing the availability of routing systems through equal cost multipath | |
WO2013054344A2 (en) | Method and apparatus for end-end communication and inter-domain routing in omnipresent ethernet networks with an option to migrate to mpls-tp | |
CN105262681A (zh) | 分布式路由架构 | |
US10826823B2 (en) | Centralized label-based software defined network | |
JP2013514691A (ja) | 複数のデータを処理するための方法および通信パケットをスイッチングするためのスイッチングデバイス | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
WO2017190559A1 (zh) | 路由查找方法、装置、分配节点、查找节点及入口节点 | |
EP3136662B1 (en) | Construction method, device and system for multi-path forwarding rules | |
CN1973503B (zh) | 流处理 | |
JP6055553B2 (ja) | キュースケジューリング方法、装置及びシステム | |
CN114079634B (zh) | 一种报文转发方法、装置及计算机可读存储介质 | |
CN113824781B (zh) | 一种数据中心网络源路由方法与装置 | |
Ren et al. | On Scalable Service Function Chaining with $\mathcal {O}(1) $ Flowtable Entries | |
CN109861908B (zh) | 一种路由转发方法及设备 | |
CN114866469A (zh) | 一种支持并行转发的多标识路由器架构实现方法及系统 | |
CN116094987A (zh) | 转发路径的确定方法及装置 | |
KR102001487B1 (ko) | 소프트웨어 정의 네트워킹 제어 방법 및 이를 수행하는 컴퓨팅 장치 | |
JP5022412B2 (ja) | 経路情報管理システム、経路情報管理方法、およびプログラム |
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 |