CN115412528A - 一种主机路由地址存储方法、装置、电子设备及存储介质 - Google Patents

一种主机路由地址存储方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115412528A
CN115412528A CN202210943124.8A CN202210943124A CN115412528A CN 115412528 A CN115412528 A CN 115412528A CN 202210943124 A CN202210943124 A CN 202210943124A CN 115412528 A CN115412528 A CN 115412528A
Authority
CN
China
Prior art keywords
host routing
host
routing address
server
address
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.)
Pending
Application number
CN202210943124.8A
Other languages
English (en)
Inventor
叶海丽
吴教仁
陈刚
邴笑然
王俊岭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202210943124.8A priority Critical patent/CN115412528A/zh
Publication of CN115412528A publication Critical patent/CN115412528A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2557Translation policies or rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开关于一种主机路由地址存储方法、装置、电子设备及存储介质,该方法包括:获取服务器发送的多个第一报文;解析多个第一报文,得到多个第一报文分别携带的主机路由地址;在多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址;将第一主机路由地址缓存于内核的网段路由表中。可见,通过将服务器的多个容器的主机路由地址汇聚到同一个目标网段,并将汇聚后的第一主机路由地址存储到交换机的内核的网段路由表中,从而可以解决HOST表资源不足的问题。

Description

一种主机路由地址存储方法、装置、电子设备及存储介质
技术领域
本申请涉及通信技术领域,特别是涉及一种主机路由地址存储方法、装置、电子设备及存储介质。
背景技术
由于IPv4(Internet Protocol Version 4,互联网协议第4版)存在网络地址资源不足的问题,制约了互联网的应用和发展。需要加快IPv6(Internet Protocol Version 6,互联网协议第6版)的上线部署。IPv6是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议。
按照IPv6容器网络的设计方案,服务器每个容器都把ND(Neighbor DiscoveryProtocol,邻居发现协议)报文发布到交换机,交换机学习所有IPv6网络容器地址。按照每台服务器大约分配300个IPv6网络容器地址来计算,每台交换机大约承载16K的IPv6网络容器地址。
相关技术中,交换机中IPv6网络容器地址的存储查找,使用的是交换机芯片的主机路由表资源,其中,主机路由表也可以称为HOST表;由于IPv6网络容器地址通常较多,交换机芯片的HOST表资源不足。也就是说,交换机的HOST表资源不能满足容器云对IPv6网络容器地址的需求。
发明内容
为了解决相关技术中存在的上述技术问题,本公开实施例提供了一种主机路由地址存储方法、装置、电子设备及存储介质,本公开的技术方案如下:
根据本公开实施例的第一方面,提供了一种主机路由地址存储方法,包括:
获取服务器发送的多个第一报文;其中,每个所述第一报文携带所述服务器的一个容器的主机路由地址;
解析所述多个第一报文,得到所述多个第一报文分别携带的主机路由地址;
在所述多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个所述IPv6主机路由地址具有相同的MAC地址和接口号时,将多个所述IPv6主机路由地址汇聚到同一网段,得到汇聚后的第一主机路由地址,并将所述第一主机路由地址指向所述服务器的目标出接口;所述目标出接口为所述接口号对应的接口;
将所述第一主机路由地址缓存于内核的网段路由表中。
可选的,还包括:
获取目标数据;所述目标数据为待发送给所述服务器的数据;
通过所述第一主机路由地址将所述目标数据转发至所述目标出接口;
通过所述目标出接口向所述服务器的各个容器发送所述目标数据。
可选的,还包括:
通过外部边界网关协议向目标交换机发送所述第一主机路由地址,以使得所述目标交换机接收到所述第一主机路由地址后,同步存储所述第一主机路由地址;所述目标交换机为用于同步存储所述第一主机路由地址的其他交换机;
相应的,所述获取目标数据,包括:
接收所述目标交换机通过所述第一主机路由地址转发的目标数据。
可选的,所述将所述第一主机路由地址缓存于内核的网段路由表中,包括:
通过内部边界网关协议将所述第一主机路由地址经由Redis数据库和Route数据库转发至内核的网段路由表。
可选的,还包括:
确定汇聚所述第一主机路由地址时,所对应的IPv6主机路由地址的数量;
将所述IPv6主机路由地址的数量确定为所述第一主机路由地址对应的引用计数;
对所述第一主机路由地址添加所述引用计数。
可选的,还包括:
接收服务器发送的第二报文,所述第二报文携带所述服务器的一个容器的主机路由地址;
对所述第二报文进行解析,得到所述第二报文所携带的主机路由地址,并生成所述第二报文对应的事件;所述事件用于表征所述服务器增加或者减少主机路由地址;
在所述第二报文对应的事件用于表征所述服务器增加主机路由地址,且所述主机路由地址为IPv6主机路由地址时,对所述IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址;
确定所述第一主机路由地址与所述第二主机路由地址之间的关联关系;所述关联关系为所述第一主机路由地址包括所述第二主机路由地址,或者,所述第一主机路由地址未包括所述第二主机路由地址;
在所述关联关系为所述第一主机路由地址包括所述第二主机路由地址时,增加所述第一主机路由地址对应的引用计数;所述第一主机路由地址对应的引用计数所增加的数量为汇聚所述第二主机路由地址时,所对应的IPv6主机路由地址的数量。
可选的,还包括:
在所述关联关系为所述第一主机路由地址未包括所述第二主机路由地址时,将所述第二主机路由地址缓存于内核的网段路由表中;
添加所述第二主机路由地址对应的引用计数;所述第二主机路由地址对应的引用计数为汇聚所述第二主机路由地址时,所对应的IPv6主机路由地址的数量。
可选的,还包括:
在所述第二报文对应的事件用于表征所述服务器减少主机路由地址,且所述主机路由地址为IPv6主机路由地址时,对所述IPv6主机路由地址进行汇聚,得到汇聚后的第三主机路由地址;
确定内核的网段路由表中缓存的所述第一主机路由地址是否包括所述第三主机路由地址;
在所述第一主机路由地址包括所述第三主机路由地址时,减少所述第一主机路由地址的引用计数,得到所述第一主机路由地址对应的更新后的引用计数。
可选的,还包括:
在所述更新后的引用计数为零时,删除所述第一主机路由地址。
可选的,还包括:
确定所述服务器对应的目标主机路由汇聚权限;
在所述服务器对应的目标主机路由汇聚权限为将服务器的多个容器路由地址汇聚到同一网段时,执行所述将所述服务器的多个容器的IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的目标主机路由地址。
可选的,还包括:
在所述确定所述服务器对应的目标主机路由汇聚权限之前,配置各个服务器对应的主机路由汇聚权限,所述路由汇聚权限包括将服务器的多个容器的主机路由地址汇聚到同一网段和不将服务器的多个容器的主机路由地址汇聚到同一网段。
根据本公开实施例的第二方面,提供了一种主机路由地址存储装置,包括:
第一报文获取模块,被配置为执行获取服务器发送的多个第一报文;其中,每个所述第一报文携带所述服务器的一个容器的主机路由地址;
第一报文解析模块,被配置为执行解析所述多个第一报文,得到所述多个第一报文分别携带的主机路由地址;
路由地址汇聚模块,被配置为执行在所述多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个所述IPv6主机路由地址具有相同的MAC地址和接口号时,将多个所述IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址,并将所述第一主机路由地址指向所述服务器的目标出接口;所述目标出接口为所述接口号对应的接口;
主机路由地址存储模块,被配置为执行将所述第一主机路由地址缓存于内核的网段路由表中。
可选的,还包括:
目标数据获取模块,被配置为执行获取目标数据;所述目标数据为待发送给所述服务器的数据;
第一数据发送模块,被配置为执行通过所述第一主机路由地址将所述目标数据转发至所述目标出接口;
第二数据发送模块,被配置为执行通过所述目标出接口向所述服务器的各个容器发送所述目标数据。
可选的,还包括:
主机路由地址发送模块,被配置为执行通过外部边界网关协议向目标交换机发送所述第一主机路由地址,以使得所述目标交换机接收到所述第一主机路由地址后,同步存储所述第一主机路由地址;所述目标交换机为用于同步存储所述第一主机路由地址的其他交换机;
相应的,所述目标数据获取模块,具体被配置为执行:
接收所述目标交换机通过所述第一主机路由地址转发的目标数据。
可选的,所述主机路由地址存储模块,具体被配置为执行:
通过内部边界网关协议将所述第一主机路由地址经由Redis数据库和Route数据库转发至内核的网段路由表。
可选的,还包括:
数量确定模块,被配置为执行确定汇聚所述第一主机路由地址时,所对应的IPv6主机路由地址的数量;
引用计数确定模块,被配置为执行将所述IPv6主机路由地址的数量确定为所述第一主机路由地址对应的引用计数;
引用计数增加模块,被配置为执行对所述第一主机路由地址添加所述引用计数。
可选的,还包括:
第二报文接收模块,被配置为执行接收服务器发送的第二报文,所述第二报文携带所述服务器的一个容器的主机路由地址;
第二报文解析模块,被配置为执行对所述第二报文进行解析,得到所述第二报文所携带的主机路由地址,并生成所述第二报文对应的事件;所述事件用于表征所述服务器增加或者减少主机路由地址;
路由地址汇聚模块,具体被配置为执行在所述第二报文对应的事件用于表征所述服务器增加主机路由地址,且所述主机路由地址为IPv6主机路由地址时,对所述IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址;
关联关系确定模块,被配置为执行确定所述第一主机路由地址与所述第二主机路由地址之间的关联关系;所述关联关系为所述第一主机路由地址包括所述第二主机路由地址,或者,所述第一主机路由地址未包括所述第二主机路由地址;
引用计数增加模块,具体被配置为执行在所述关联关系为所述第一主机路由地址包括所述第二主机路由地址时,增加所述第一主机路由地址对应的引用计数;所述第一主机路由地址对应的引用计数所增加的数量为汇聚所述第二主机路由地址时,所对应的IPv6主机路由地址的数量。
可选的,还包括:
第二主机路由地址缓存模块,被配置为执行在所述关联关系为所述第一主机路由地址未包括所述第二主机路由地址时,将所述第二主机路由地址缓存于内核的网段路由表中;
引用计数增加模块,具体被配置为执行添加所述第二主机路由地址对应的引用计数;所述第二主机路由地址对应的引用计数为汇聚所述第二主机路由地址时,所对应的IPv6主机路由地址的数量。
可选的,还包括:
路由地址汇聚模块,具体被配置为执行在所述第二报文对应的事件用于表征所述服务器减少主机路由地址,且所述主机路由地址为IPv6主机路由地址时,对所述IPv6主机路由地址进行汇聚,得到汇聚后的第三主机路由地址;
主机路由地址确定模块,被配置为执行确定内核的网段路由表中缓存的所述第一主机路由地址是否包括所述第三主机路由地址;
引用计数减少模块,被配置为执行在所述第一主机路由地址包括所述第三主机路由地址时,减少所述第一主机路由地址的引用计数,得到所述第一主机路由地址对应的更新后的引用计数。
可选的,还包括:
主机路由地址删除模块,被配置为执行在所述更新后的引用计数为零时,删除所述第一主机路由地址。
可选的,还包括:
主机路由汇聚权限确定模块,被配置为执行确定所述服务器对应的目标主机路由汇聚权限;
在所述服务器对应的目标主机路由汇聚权限为将服务器的多个容器路由地址汇聚到同一网段时,触发所述路由地址汇聚模块执行所述将所述服务器的多个容器的IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的目标主机路由地址。
可选的,还包括:
主机路由汇聚权限配置模块,被配置为执行在所述确定所述服务器对应的目标主机路由汇聚权限之前,配置各个服务器对应的主机路由汇聚权限,所述路由汇聚权限包括将服务器的多个容器的主机路由地址汇聚到同一网段和不将服务器的多个容器的主机路由地址汇聚到同一网段。
根据本公开实施例的第三方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现第一方面所述的方法。
根据本公开实施例的第四方面,提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行第一方面所述的方法。
根据本公开实施例的第五方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机实现第一方面所述的方法。
本公开实施例提供的技术方案中,本公开实施例提供的技术方案,获取服务器发送的多个第一报文;解析多个第一报文,得到多个第一报文分别携带的主机路由地址;在多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址;将第一主机路由地址缓存于内核的网段路由表中。
可见,通过本公开实施例提供的技术方案,在将服务器的多个容器的主机路由地址汇聚到同一个目标网段,得到汇聚后的第一主机路由地址后,直接将汇聚后的第一主机路由地址存储到交换机的内核的网段路由表中。而不像相关技术那样,将服务器容器的主机路由地址逐条下发到HOST表,从而可以解决相关技术中的HOST表资源不足的问题。
附图说明
图1是根据一示例性实施例示出的一种具体实例中,服务器和交换机的交互示意图;
图2是根据一示例性实施例示出的一种主机路由地址存储方法的流程图;
图3是一种将本公开的技术方案应用于sonic系统中的数据转发示意图;
图4是根据一示例性实施例示出的另一种主机路由地址存储方法的流程图;
图5是根据一示例性实施例示出的一种在服务器容器主机路由地址增加时,更新主机路由地址对应的引用计数的一种实施方式的流程图;
图6是图5中S540的一种实施方式的流程图;
图7是根据一示例性实施例示出的一种在服务器容器主机路由地址减少时,更新主机路由地址对应的引用计数的一种实施方式的流程图;
图8是服务器容器增加或者减少时,作为执行主体的交换机的所执行的整体技术方案的流程图。
图9是根据一示例性实施例示出的一种主机路由地址存储装置的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
面向IPv4地址短缺问题,需要加快IPv6的上线部署。按IPv6容器网络的设计方案,服务器每个容器都把ND报文发布到交换机,交换机通过解析ND报文,得到所有IPv6网络容器的地址。
按照每台服务器大约分配300个容器地址,每台交换机大约承载16K的IPv6主机路由地址。这些主机路由地址的存储查找,使用的是交换机芯片的HOST表资源。其中,交换机通过ARP(Address Resolution Protocol,地址解析协议)和ND学习得到的服务器容器的地址都下发到交换机芯片的HOST表中。而交换机芯片的HOST表资源有限。简而言之,交换机的HOST表资源不能满足容器云对IPv6地址的需求。
另外,相关技术中,当服务器容器的主机路由地址数量较多时,HOST表满时,将无法存储在HOST表中的主机路由地址下发到ROUTE(routing table,网段路由表),虽然可以解决HOST表资源不足的问题。但仍然存在如下四个方面的问题:
第一方面,由于ROUTE表中原本存储的主机路由地址是通过BGP(Border GatewayProtocol,边界网关协议)学习或者静态配置所得的;当HOST表满后,下发至ROUTE表的主机路由地址可能与ROUTE表中原本存储的主机路由地址具有相同的掩码,从而导致ROUTE表的主机路由地址冲突。
第二方面,交换机通过ARP和ND学习到服务器容器的主机路由地址后,会保存一份主机路由地址,所保存的主机路由地址可以称为主机路由地址的软件副本。然后,将学习到的服务器容器的主机路由地址下发到交换机芯片,通过交换机芯片的HOST表存储主机路由地址,当HOST表满后,再将其余的主机路由地址下发到ROUTE表中。存储在HOST表和ROUTE表为交换机硬件(交换机芯片)存储的主机路由地址。
由于服务器容器的主机路由地址的数量通常比较多,服务器容器存在增加或者减少的情况,此时,服务器容器的主机路由地址会增加或者减少。在交换机长期运行过程中,可能存在软件副本中存储的主机路由地址未发生变更,交换机硬件存储的主机路由地址已发生变更即增加或者减少。从而导致软件副本中的主机路由地址与交换机硬件存储的主机路由地址不一致。
第三方面,交换机学习到服务器容器的主机路由地址后,交换机会定期向服务器发送ND报文或者NS(Neighbor Solicitation,邻居请求协议)报文以对主机路由地址进行保活。具体的,服务器会定期向服务器发送ND报文或者NS报文进行探活,每个ND报文或者NS报文会携带一个服务器容器的主机路由地址,如果向服务器发送的某一ND报文或者NS报文时,服务器有应答,说明该ND报文或者NS报文携带的主机路由地址对应的服务器容器还存在,需要保活该条主机路由地址。如果向服务器发送的某一ND报文或者NS报文时,服务器没有应答,说明该ND报文或者NS报文携带的主机路由地址对应的服务器容器已经不存在,需要把该条主机路由地址删除。
由于服务器容器的主机路由地址较多,例如,有16K的主机路由地址,大概需要4分钟发送完成,交换机1s需要处理200个左右的ND报文或者NS报文,若交换机或者服务器的处理器对某一ND报文或者NS报文回应不及时,交换机则直接删除该ND报文或者NS报文所对应的主机路由地址,造成流量的抖动。
第四方面,由于HOST表和ROUTE表采用不同的硬件实现,当需要删除,修改,或查找已存储于ROUTE表中的主机路由地址时,存在效率较低的问题。
为了解决相关技术中存在的上述问题,本公开实施例提供了一种主机路由地址存储方法、装置、电子设备及存储介质。
为了方案描述清楚,第一方面,首先将结合具体实例对本公开实施例的整体技术方案进行详细阐述。如图1所示,包括服务器,以及交换机TOR和交换机Leaf。
其中,服务器包括网卡eth0和容器POD,在实际应用中,POD可以有很多个,为了描述方便,在图1中只示出两个POD,本公开实施例对容器的数量不做具体限定。并且,网卡eth0的MAC地址是唯一的。
从图1可以看出,网卡eth0与交换机TOR之间进行通信,网卡与两个交换机TOR进行连接,在实际应用中,相当于是一个双重保障,网卡与其中一个交换机TOR会建立一种全连接的场景。在图1中,假设网卡与左边的TOR建立了全链接的场景。
通过网卡eth0向交换机TOR发送NS报文或者NA(Neighbor Advertisement,邻居通告协议)报文,NS报文或者NA报文携带服务器容器POD的IPv6主机路由地址,即128位主机路由地址。对于一个服务器而言,其网卡eth0的MAC地址是唯一的,且交换机TOR和该服务器对接的接口是唯一的,因此,单个服务器容器的所有POD的主机路由地址的MAC地址相同(网卡地址),且对应的接口号相同。其中,MAC地址为网卡地址,接口号可以为VLAN100+PORT,例如,可以为VLAN100+56。
并且,在实际应用中,服务器容器的主机路由地址配置的网段较大,一般配置成56位的,也就是说,服务器容器的主机路由地址的网段通常都被配置为56掩码的。56掩码的路由地址可以包含64掩码的路由地址。
因此,交换机TOR在通过内核协议栈学习到一个服务器的所有容器的主机路由地址后,交换机软件可以将该服务器所有容器的主机路由地址汇聚成一个64位掩码的路由地址。举例而言,服务器容器的IPv6主机路由地址包括:2402:5ec0:106::2,2402:5ec0:106::3,2402:5ec0:106::4,……,也就是说,服务器容器的IPv6主机路由地址有很多条,可以将服务器容器的IPv6主机路由地址汇聚成一条64位掩码的路由地址,该64位掩码的路由地址可以为2402:5ec0:106::/64。
在汇聚得到64位掩码的主机路由地址后,直接将64位掩码的主机路由地址存储到交换机的内核的网段路由表中,而不像相关技术那样,将服务器容器的主机路由地址逐条下发到HOST表,从而可以解决相关技术中的HOST表资源不足的问题。
交换机TOR可以将64位掩码的主机路由地址指向目标出接口,该目标出接口为交换机和服务器对接的接口。当交换机向服务器容器发送数据时,不再通过HOST表进行转发,而是通过64位掩码的主机路由地址转发到目标出接口,通过目标出接口向服务器容器发送数据。
并且,交换机TOR可以通过外部边界网关协议eBGP(external Border GatewayProtocol,外部边界网关协议)将64位掩码的主机路由地址发布到交换机Leaf中,交换机Leaf接收到该64位掩码的主机路由地址后,保存该64位掩码的主机路由地址。交换机Leaf向服务器发送数据时,可以通过该64位掩码的主机路由地址将数据发送到交换机TOR,交换机TOR再通过该64位掩码的主机路由地址转发到目标出接口,通过目标出接口向服务器容器发送数据。
通过本公开实施例提供的技术方案,在获取服务器容器的主机路由表时,通过将容器的多个128位的主机路由地址进行汇聚,得到一条汇聚后的64位掩码的主机路由地址,并将该64位掩码的主机路由地址存储到内核的网段路由表中,而不像相关技术那样,将容器的多个主机路由地址逐条存储到HOST表中,从而达到节省交换机资源的目的。
并且,本公开实施例提供的技术方案,通过将64位掩码的主机路由地址仅存储到内核的网段路由表中,而不像相关技术那样,在服务器容器的主机路由地址数量较多时,将无法存储在HOST表中的主机路由地址下发到ROUTE表中,从而在可以解决HOST表资源不足的同时,还能解决上述相关技术中第一方面到第四方面所描述的问题。
在对本公开实施例的整体技术方案进行详细阐述后,第二方面,将对本公开实施例提供的一种主机路由地址存储方法进行详细阐述。
本公开实施例提供的一种主机路由地址存储方法的执行主体可以是交换机,该交换机可以是第一方面实施例所述的交换机TOR。
如图2所示,本公开实施例提供的一种主机路由地址存储方法,可以包括如下步骤:
S210,获取服务器发送的多个第一报文。
其中,每个第一报文携带服务器的一个容器的主机路由地址。
在实际应用中,服务器可以包括多个容器,服务器需要将多个容器的主机路由地址发布到作为执行主体的交换机时,可以通过网卡向作为执行主体的交换机发送多个报文,每一报文可以携带一个容器的主机路由地址。为了方案描述清楚,可以将服务器向作为执行主体的服务器所发送的报文称为第一报文,该第一报文可以是NS报文或者NA报文。
S220,解析多个第一报文,得到多个第一报文分别携带的主机路由地址。
具体的,交换机接收到服务器发送的多个第一报文后,对多个第一报文进行解析,通过交换机的内核协议栈学习得到多个第一报文分别携带的主机路由地址。即学习到服务器的多个容器的主机路由地址。
S230,在多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址,并将第一主机路由地址指向服务器的目标出接口。
其中,目标出接口为接口号对应的接口;
具体的,交换机得到多个第一报文分别携带的主机路由地址,判断多个第一报文所携带的主机路由地址是否为IPv6主机路由地址,在多个第一报文所携带的主机路由地址为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段。
通常情况下,服务器的容器的主机路由地址为56为掩码的主机路由地址,由于56为掩码的主机路由地址可以包括64位掩码的主机路由地址,因此,可以将多个IPv6主机路由地址汇聚成/64掩码的主机路由地址,即将多个IPv6主机路由地址汇聚到同一个64位网段,得到汇聚后的主机路由地址,为了方案描述清楚,将汇聚后的主机路由地址称为第一主机路由地址。
并且,作为执行主体的交换机,对服务器的多个容器的主机路由地址进行汇聚,得到第一主机路由地址即64位的主机路由地址后,可以将第一主机路由地址指向目标出接口,该目标出接口为交换机和服务器对接的接口。这样,当交换机向服务器容器发送数据时,不再通过HOST表进行转发,而是通过第一主机路由地址转发到目标出接口,通过目标出接口向服务器容器发送数据。
S240,将第一主机路由地址缓存于内核的网段路由表中。
在得到第一主机路由地址时,即得到服务器的主机路由表,因此,可以将第一主机路由地址缓存于内核的网段路由表即ROUTE表中,也就是说,ROUTE表中存储有服务器的主机路由表。由于第一主机路由地址是服务器的多个容器的主机路由地址汇聚而成的,因此,第一主机路由地址占用交换机内核的资源较少。而不像相关技术那样,将服务器的多个容器的主机路由地址逐条存储于HOST表中,进而本公开的技术方案可以解决相关技术中HOST表资源不足的问题。
作为本公开实施例的一种实现方式,该方法可以应用到sonic系统,其中,sonic系统为一种开源的交换机系统,其结构如图3所示。此时,将第一主机路由地址缓存于内核的网段路由表中,得到服务器的主机路由表,可以包括如下步骤:
通过内部边界网关协议将第一主机路由地址经由Redis数据库和Route数据库转发至内核的网段路由表。
具体的,从图3可以看出,交换机在接收到服务器发送的邻居请求协议报文或者邻居通告协议报文后,通过内核协议栈学习得到服务器的多个容器的主机路由地址,并将多个容器的主机路由地址汇聚成64位的主机路由地址(上面所述的第一主机路由地址),并通过内部边界网关协议,经由Redis数据库和Route数据库,将汇聚所得的64位主机路由地址转发至内核路由表,并将64位主机路由地址存储于内核的ROUTE表中。其中,Redis的全称为Remote Dictionary Server,中文为远程字典服务;Route数据库为路由数据库。
并且,从图3还可以看出,相关技术中,对于16K的ND路由地址,通过邻居数据库逐条下发到内核路由表中,并存储到HOST表中,由于HOST表的资源有限,因此,无法实现存储大量容器的主机路由地址。
可见,通过本实施方式提供的技术方案,能够对大量容器的主机路由地址进行汇聚,存储汇聚得到的主机路由地址所需要的资源较小,并将汇聚后的主机路由地址存储到ROUTE表中,极大降低了HOST表的资源占用,从而可以解决相关技术中的HOST表资源不足的问题。
本公开实施例提供的技术方案,获取服务器发送的多个第一报文;解析多个第一报文,得到多个第一报文分别携带的主机路由地址;在多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址;将第一主机路由地址缓存于内核的网段路由表中。
可见,通过本公开实施例提供的技术方案,在将服务器的多个容器的主机路由地址汇聚到同一个目标网段,得到汇聚后的第一主机路由地址后,直接将汇聚后的第一主机路由地址存储到交换机的内核网段路由表中。而不像相关技术那样,将服务器容器的主机路由地址逐条下发到硬件HOST表,从而可以解决相关技术中的HOST表资源不足的问题。
并且,本公开实施例提供的技术方案,通过将64位掩码的主机路由地址仅存储到内核的网段路由表中,而不像相关技术那样,在服务器容器的主机路由地址数量较多时,将无法存储在HOST表中的主机路由地址下发到ROUTE表中,从而在可以解决HOST表资源不足的同时,还能解决第一方面实施例中所述的第一方面到第四方面所描述的问题。
在上述实施例的基础上,在一种实现方式中,如图4所示,该主机路由地址存储获取方法还可以包括如下步骤:
S250,获取目标数据。
其中,目标数据为待发送给服务器的数据。
S260,通过第一主机路由地址将目标数据转发至目标出接口。
S270,通过目标出接口向服务器的各个容器发送目标数据。
由上述实施例描述可知,作为执行主体的交换机,对服务器的多个容器的主机路由地址进行汇聚,得到第一主机路由地址(即64位的主机路由地址)后,将第一主机路由地址指向目标出接口,该目标出接口为交换机和服务器对接的接口。
当作为执行主体的交换机向服务器容器发送目标数据时,不再通过HOST表进行转发,而是通过第一主机路由地址转发到目标出接口,通过目标出接口向服务器的各个容器发送目标数据。
可见,通过本实施方式提供的技术方案,交换机在向服务器多个容器发送数据时,不再通过HOST表逐条查询多个容器的主机路由地址,而是直接通过汇聚后的第一主机路由地址将数据发送到服务器的多个容器,进而交换机在向服务器转发数据时,可以节省因需从HOST表中逐条查询容器主机路由地址而消耗的时间,提供了转发数据的效率,并可以提高交换机转发性能的稳定性。
在上述实施例的基础上,在一种实施方式,该主机路由地址存储方法,还可以包括如下步骤a:
步骤a,通过外部边界网关协议向目标交换机发送第一主机路由地址,以使得目标交换机接收到第一主机路由地址后,同步存储第一主机路由地址。
其中,目标交换机为用于同步存储第一主机路由地址的其他交换机。
相应的,获取待发送至服务器的目标数据,可以包括如下步骤b:
步骤b,接收目标交换机通过第一主机路由地址转发的目标数据。
具体的,作为执行主体的交换机可以通过外部边界网关协议eBGP将汇聚所得的第一主机路由地址发布出去,例如,将汇聚所得的第一主机路由地址发送到目标交换机中。该交换机可以为第一方面实施例所述的Leaf,目标交换机接收到第一主机路由地址后,同步存储该第一主机路由地址。
并且,目标交换机向服务器发送目标数据时,可以通过该第一主机路由地址将数据发送到作为执行主体的交换机如TOR,交换机TOR再通过该第一主机路由地址转发到目标出接口,通过目标出接口向服务器容器发送目标数据。
可见,通过本实施方式提供的技术方案,作为执行主体的交换机不仅可以对服务器的多个容器的主机路由地址进行汇聚,得到汇聚后的第一主机路由地址,并可以将第一主机路由地址发布到其他目标交换机,目标交换机可以同步存储第一主机路由地址,这样,在目标交换机需要向服务器发送数据时,可以通过汇聚后的第一主机路由,经由作为执行主体的交换机将数据发送到服务器。可以节省因需从HOST表中逐条查询容器主机路由地址而消耗的时间,提供了转发数据的效率,并可以提高交换机转发性能的稳定性。
为了方便后续步骤中,在因服务器搬迁等原因导致服务器容器的主机路由表没有用处时,对汇聚所得的第一主机路由地址进行删除操作。在一种实施方式中,还可以包括如下步骤:
步骤c1,确定汇聚第一主机路由地址时,所对应的IPv6主机路由地址的数量。
步骤c2,将IPv6主机路由地址的数量确定为第一主机路由地址对应的引用计数。
步骤c3,对第一主机路由地址添加引用计数。
具体的,由于第一主机路由地址是多个容器的IPv6主机路由地址汇聚而成的,因此,可以确定汇聚第一主机路由地址时,IPv6主机路由地址的数量,即服务器的容器的数量,将服务器的容器的数量确定为第一主机路由地址对应的引用计数,并对一主机路由地址添加该引用计数。
可见,通过对第一主机路由地址添加该引用计数,便于后续步骤中,因服务器搬迁等原因导致第一主机路由地址的引用计数为0时,判定该第一主机路由地址没有用处,此时,对第一主机路由地址进行删除操作,进而降低了交换机内核的资源占用。
在上述实施例的基础上,在一种实施方式中,如图5所示,该主机路由地址存储方法还可以包括如下步骤,分别为:
S510,接收服务器发送的第二报文。
其中,第二报文携带服务器的一个容器的主机路由地址。
在实际应用中,在服务器增加了容器后,还需要将新增加的容器的主机路由地址发布到作为执行主体的交换机中,此时,服务器可以向作为执行主体的服务器发送NS报文或者NA报文,为了方案描述清楚,将该NS报文或者NA报文称为第二报文。
或者,在服务器减少了容器后,还需要告知作为执行主体的交换机将需要减少的容器的主机路由地址删除,此时,服务器也可以向作为执行主体的服务器发送NS报文或者NA报文,为了方案描述清楚,将该NS报文或者NA报文称为第二报文。
S520,对第二报文进行解析,得到第二报文所携带的主机路由地址,并生成第二报文对应的事件。
其中,事件用于表征服务器增加或者减少主机路由地址。
具体的,由上述步骤S510的描述可知,服务器增加了容器或减少了容器时,向作为执行主体的交换机发送第二报文,交换机在接收到第二报文后,解析第二报文,得到第二报文携带的主机路由地址,并生成第二报文对应的事件,该事件用于表征服务器增加主机路由地址,或者,服务器减少主机路由地址。
S530,在第二报文对应的事件用于表征服务器增加主机路由地址,且主机路由地址为IPv6主机路由地址时,对IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址。
具体的,在第二报文的事件用于表征服务器增加主机路由地址时,判断第二报文携带的主机路由地址是否为IPv6主机路由地址,如果主机路由地址为IPv6主机路由地址,则对IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址,即将IPv6主机路由地址汇聚成64位掩码的路由地址。
S540,确定第一主机路由地址与第二主机路由地址之间的关联关系。
其中,关联关系为第一主机路由地址包括第二主机路由地址,或者,第一主机路由地址未包括第二主机路由地址。
具体的,在得到汇聚后的第二主机路由地址后,可以通过判断内核中已缓存的、经汇聚所得的第一主机路由地址中是否已经包括该第二主机路由地址,来确定第一主机路由地址与第二主机路由地址之间的关联关系。
S550,在关联关系为第一主机路由地址包括第二主机路由地址时,增加第一主机路由地址对应的引用计数。
其中,第一主机路由地址对应的引用计数所增加的数量为汇聚第二主机路由地址时,所对应的IPv6主机路由地址的数量。
具体的,在第一主机路由地址包括第二主机路由地址时,说明交换机内核中已经存在第二主机路由地址,此时,需要增加对应的第一主机路由地址的引用计数。且增加的引用计数是汇聚第二主机路由地址时,所对应的IPv6主机路由地址的数量。
可见,通过本实施方式提供的技术方案,在服务器容器主机路由地址增加时,对IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址,并通过确定第一主机路由地址和第二主机路由地址的关联关系,来更新第一主机路由地址的引用计数,从而便于后续步骤中,因服务器搬迁等原因导致第二主机路由地址的引用计数为0时,对第二主机路由地址进行删除操作,进而降低了交换机内核的资源占用。
在一种实施方式中,如图6所示,可以包括如下步骤:
S560,在关联关系为第一主机路由地址未包括第二主机路由地址时,将第二主机路由地址缓存于内核的网段路由表中;
S570,添加第二主机路由地址对应的引用计数。
其中,第二主机路由地址对应的引用计数为汇聚第二主机路由地址时,所对应的IPv6主机路由地址的数量。
具体的,当第一主机路由地址不包括第二主机路由地址时,说明交换机内核中还没有缓存第二主机路由地址,此时,将第二主机路由地址缓存于内核的网段路由表中,并增加该第二主机路由地址的引用计数。例如,该第二主机路由地址是由20个IPv6主机路由地址汇聚而成,那么,该第二主机路由的引用计数为20。
可见,通过本实施方式提供的技术方案,在服务器的容器增加时,且新增容器的主机路由地址是IPv6主机路由地址时,可以将该IPv6主机路由地址进行汇聚得到汇聚后的第二主机路由地址,当第二主机路由地址未存在于交换机内核的缓存中时,缓存该第二主机路由地址,并添加对应的引用计数。从而便于后续步骤中,因服务器搬迁等原因导致第二主机路由地址的引用计数为0时,对第二主机路由地址进行删除操作,进而降低了交换机内核的资源占用。
在图5所示实施例的基础上,在一种实施方式中,如图7所示,该主机路由地址存储方法还可以包括如下步骤,分别为:
S710,在第二报文对应的事件用于表征服务器减少主机路由地址,且主机路由地址为IPv6主机路由地址时,对IPv6主机路由地址进行汇聚,得到汇聚后的第三主机路由地址。
具体的,在第二报文的事件用于表征服务器减少主机路由地址时,判断第二报文携带的主机路由地址是否为IPv6主机路由地址,如果主机路由地址为IPv6主机路由地址,则对IPv6主机路由地址进行汇聚,得到汇聚后的第三主机路由地址,即将IPv6主机路由地址汇聚成64位掩码的路由地址。
S720,确定内核的网段路由表中缓存的第一主机路由地址是否包括第三主机路由地址。
具体的,在得到汇聚后的第二主机路由地址后,可以判断内核中已缓存的、经汇聚所得的第一主机路由地址中是否已经包括该第二主机路由地址。
S730,在第一主机路由地址包括第三主机路由地址时,减少第一主机路由地址的引用计数,得到第一主机路由地址对应的更新后的引用计数。
具体的,当第一主机路由地址包括第三主机路由地址时,说明交换机内核中已经存在第三主机路由地址,此时,需要减少对应的第一主机路由地址的引用计数。
可见,通过本实施方式提供的技术方案,在服务器的容器减少时,且所减少容器的主机路由地址是IPv6主机路由地址时,可以将该IPv6主机路由地址进行汇聚得到汇聚后的第三主机路由地址,当第三主机路由地址已经存在于交换机内核的缓存中时,减少第一主机路由地址的引用计数。从而便于后续步骤中,因服务器搬迁等原因导致第一主机路由地址的引用计数为0时,对第一主机路由地址进行删除操作,进而降低了交换机内核的资源占用。
在图7所示实施例的基础上,该主机路由地址存储方法还可以包括如下步骤:
在更新后的引用计数为零时,删除第一主机路由地址。
具体的,判断第一主机路由地址对应的更新后的引用计数为0时,说明该第一主机路由地址当前已经没有用处,需要老化掉,因此,删除第一主机路由地址,以减少第一主机路由地址对内核资源的占用。
可见,通过本实施方式提供的技术方案,当第一主机路由地址的引用计数为0时,说明第一主机路由地址当前已经没有用处,需要老化掉,通过对第一主机路由地址进行删除操作,进而降低了交换机内核的资源占用。
在上述实施例的基础上,在一种实施方式中,该主机路由地址存储方法还可以包括如下步骤d1:
步骤d1,配置各个服务器对应的主机路由汇聚权限。
其中,路由汇聚权限包括将服务器的多个容器的主机路由地址汇聚到同一网段和不将服务器的多个容器的主机路由地址汇聚到同一网段。
具体的,可以配置是否对服务器容器的主机路由地址进行汇聚。假如服务器中有多个虚拟机,此时,服务器容器的主机路由地址的数量较多,那么可以配置对服务器容器的主机路由地址进行汇聚。
假如服务器中不是虚拟机,而是物理机,那么,此时,服务器容器的主机路由地址的数量相对较少,由于HOST表能够满足物理机的主机路由地址的资源占用情况,此时可以配置不对服务器容器的主机路由地址进行聚合。在需要对服务器容器的主机路由地址进行汇聚时,再将权限切换为对服务器容器的主机路由地址进行汇聚。
可见,通过本实施例提供的技术方案,可以灵活配置是否对服务器容器的主机路由地址进行汇聚,在服务器容器的主机路由地址的数量较多时,对服务器容器的主机路由地址进行汇聚。在服务器容器的主机路由地址的数量较少时,可以不对服务器容器的主机路由地址进行汇聚,即将服务器容器的主机路由地址逐条存储于HOST表中。
在上述实施例的基础上,在一种实施方式中,该主机路由地址存储方法还可以包括如下步骤d2和步骤d3:
步骤d2,确定服务器对应的目标主机路由汇聚权限;
步骤d3,在服务器对应的主机路由汇聚权限为将服务器的多个容器路由地址汇聚到同一网段,执行将服务器的多个容器的IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的目标主机路由地址。
具体的,在执行将服务器的多个容器的IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的目标主机路由地址之前,可以确定服务器对应的目标主机路由汇聚权限,在服务器对应的主机路由汇聚权限为将服务器的多个容器路由地址汇聚到同一网段,再执行将服务器的多个容器的IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的目标主机路由地址。
可见,本实施例提供的技术方案,可以灵活配置是否对服务器容器的主机路由地址进行汇聚,在服务器容器的主机路由地址的数量较多时,可以配置对服务器容器的主机路由地址进行汇聚,以实现直接将汇聚后的第一主机路由地址存储到交换机的内核的网段路由表中。而不像相关技术那样,将服务器容器的主机路由地址逐条下发到HOST表,从而可以解决相关技术中的HOST表资源不足的问题。
为了方案描述清楚,下面将对服务器容器增加或者减少时,作为执行主体的交换机的所执行的整体技术方案进行详细阐述。如图8所示,可以包括如下步骤:
S810,接收服务器发送的第二报文。
其中,第二报文携带服务器的一个容器的主机路由地址。
在实际应用中,在服务器增加了容器后,还需要将新增加的容器的主机路由地址发布到作为执行主体的交换机中,此时,服务器可以向作为执行主体的服务器发送NS报文或者NA报文,为了方案描述清楚,将该NS报文或者NA报文称为第二报文。
或者,在服务器减少了容器后,还需要告知作为执行主体的交换机将需要减少的容器的主机路由地址删除,此时,服务器也可以向作为执行主体的服务器发送NS报文或者NA报文,为了方案描述清楚,将该NS报文或者NA报文称为第二报文。
S820,对第二报文进行解析,得到第二报文所携带的主机路由地址,并生成第二报文对应的事件。
S830,判断第二报文对应的事件是否为用于表征服务器增加主机路由地址。若为是,执行S840。若为否,执行S8100。
S840,判断主机路由地址为IPv6主机路由地址。若为是,执行步骤S850,若为否,执行步骤S860。
S850,对IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址。
具体的,在第二报文的事件用于表征服务器增加主机路由地址时,判断第二报文携带的主机路由地址是否为IPv6主机路由地址,如果主机路由地址为IPv6主机路由地址,则对IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址,即将IPv6主机路由地址汇聚成64位掩码的路由地址。
S860,下发该IPv4主机路由地址的32网段路由,并可以将该IPv4主机路由地址存储到HOST表中。
S870,判断内核的网段路由表中缓存的第一主机路由地址是否包括第二主机路由地址。若为是,执行S880。若为否,执行S890。
具体的,在得到汇聚后的第二主机路由地址后,可以判断内核中已缓存的、经汇聚所得的第一主机路由地址中是否已经包括该第二主机路由地址。
S880,增加对应的第一主机路由地址的引用计数。
具体的,当第一主机路由地址包括第二主机路由地址时,说明交换机内核中已经存在第二主机路由地址,此时,需要增加对应的第一主机路由地址的引用计数。
S890,将第二主机路由地址缓存于内核的网段路由表的ROUTE表中,并添加第二主机路由地址对应的引用计数。
具体的,当第一主机路由地址不包括第二主机路由地址时,说明交换机内核中还没有缓存第二主机路由地址,此时,将第二主机路由地址缓存于内核的网段路由表中,并增加该第二主机路由地址的引用计数。例如,该第二主机路由地址是由20个IPv6主机路由地址汇聚而成,那么,该第二主机路由的引用计数为20。
S8100,在第二报文对应的事件用于表征服务器减少主机路由地址,判断主机路由地址是否为IPv6主机路由地址;若为是,执行S8110。
S5810,对IPv6主机路由地址进行汇聚,得到汇聚后的第三主机路由地址。
具体的,在第二报文的事件用于表征服务器减少主机路由地址时,判断第二报文携带的主机路由地址是否为IPv6主机路由地址,如果主机路由地址为IPv6主机路由地址,则对IPv6主机路由地址进行汇聚,得到汇聚后的第三主机路由地址,即将IPv6主机路由地址汇聚成64位掩码的路由地址。
S8120,判断内核的网段路由表中缓存的第一主机路由地址是否包括第三主机路由地址。若为是,执行步骤S8120。若为否,结束。
具体的,在得到汇聚后的第三主机路由地址后,可以判断内核中已缓存的、经汇聚所得的第一主机路由地址中是否已经包括该第三主机路由地址。
S8130,在第一主机路由地址包括第三主机路由地址时,减少第一主机路由地址的引用计数,得到第一主机路由地址对应的更新后的引用计数。
具体的,当第一主机路由地址包括第三主机路由地址时,说明交换机内核中已经存在第三主机路由地址,此时,需要减少对应的第一主机路由地址的引用计数。当第一主机路由地址未包括第三主机路由地址时,不做处理,即流程结束。
S8140,判断更新后的引用计数是否为零。若为是,执行S8150,若为否,结束,
S8150,删除第一主机路由地址。
具体的,判断第一主机路由地址对应的更新后的引用计数为0时,说明该第一主机路由地址当前已经没有用处,需要老化掉,因此,删除第一主机路由地址,以减少第一主机路由地址对内核资源的占用。
可见,通过本实施方式提供的技术方案,在服务器的容器减少时,且所减少容器的主机路由地址是IPv6主机路由地址时,可以将该IPv6主机路由地址进行汇聚得到汇聚后的第三主机路由地址,当第三主机路由地址已经存在于交换机内核的缓存中时,减少第一主机路由地址的引用计数。从而便于后续步骤中,因服务器搬迁等原因导致第一主机路由地址的引用计数为0时,对第一主机路由地址进行删除操作,进而降低了交换机内核的资源占用。
根据本公开实施例的第二方面,提供了一种主机路由地址存储装置,如图9所示,包括:
第一报文获取模块910,被配置为执行获取服务器发送的多个第一报文;其中,每个所述第一报文携带所述服务器的一个容器的主机路由地址;
第一报文解析模块920,被配置为执行解析所述多个第一报文,得到所述多个第一报文分别携带的主机路由地址;
路由地址汇聚模块930,被配置为执行在所述多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个所述IPv6主机路由地址具有相同的MAC地址和接口号时,将多个所述IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址,并将所述第一主机路由地址指向所述服务器的目标出接口;所述目标出接口为所述接口号对应的接口;主机路由地址存储模块940,被配置为执行将所述第一主机路由地址缓存于内核的网段路由表中。
本公开实施例提供的技术方案中,本公开实施例提供的技术方案,获取服务器发送的多个第一报文;解析多个第一报文,得到多个第一报文分别携带的主机路由地址;在多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址;将第一主机路由地址缓存于内核的网段路由表中。
可见,通过本公开实施例提供的技术方案,在将服务器的多个容器的主机路由地址汇聚到同一个目标网段,得到汇聚后的第一主机路由地址后,直接将汇聚后的第一主机路由地址存储到交换机的内核的网段路由表中。而不像相关技术那样,将服务器容器的主机路由地址逐条下发到HOST表,从而可以解决相关技术中的HOST表资源不足的问题。
可选的,还包括:
目标数据获取模块,被配置为执行获取目标数据;所述目标数据为待发送给所述服务器的数据;
第一数据发送模块,被配置为执行通过所述第一主机路由地址将所述目标数据转发至所述目标出接口;
第二数据发送模块,被配置为执行通过所述目标出接口向所述服务器的各个容器发送所述目标数据。
可选的,还包括:
主机路由地址发送模块,被配置为执行通过外部边界网关协议向目标交换机发送所述第一主机路由地址,以使得所述目标交换机接收到所述第一主机路由地址后,同步存储所述第一主机路由地址;所述目标交换机为用于同步存储所述第一主机路由地址的其他交换机;
相应的,所述目标数据获取模块,具体被配置为执行:
接收所述目标交换机通过所述第一主机路由地址转发的目标数据。
可选的,所述主机路由地址存储模块,具体被配置为执行:
通过内部边界网关协议将所述第一主机路由地址经由Redis数据库和Route数据库转发至内核的网段路由表。
可选的,还包括:
数量确定模块,被配置为执行确定汇聚所述第一主机路由地址时,所对应的IPv6主机路由地址的数量;
引用计数确定模块,被配置为执行将所述IPv6主机路由地址的数量确定为所述第一主机路由地址对应的引用计数;
引用计数增加模块,被配置为执行对所述第一主机路由地址添加所述引用计数。
可选的,还包括:
第二报文接收模块,被配置为执行接收服务器发送的第二报文,所述第二报文携带所述服务器的一个容器的主机路由地址;
第二报文解析模块,被配置为执行对所述第二报文进行解析,得到所述第二报文所携带的主机路由地址,并生成所述第二报文对应的事件;所述事件用于表征所述服务器增加或者减少主机路由地址;
路由地址汇聚模块,具体被配置为执行在所述第二报文对应的事件用于表征所述服务器增加主机路由地址,且所述主机路由地址为IPv6主机路由地址时,对所述IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址;
关联关系确定模块,被配置为执行确定所述第一主机路由地址与所述第二主机路由地址之间的关联关系;所述关联关系为所述第一主机路由地址包括所述第二主机路由地址,或者,所述第一主机路由地址未包括所述第二主机路由地址;
引用计数增加模块,具体被配置为执行在所述关联关系为所述第一主机路由地址包括所述第二主机路由地址时,增加所述第一主机路由地址对应的引用计数;所述第一主机路由地址对应的引用计数所增加的数量为汇聚所述第二主机路由地址时,所对应的IPv6主机路由地址的数量。
可选的,还包括:
第二主机路由地址缓存模块,被配置为执行在所述关联关系为所述第一主机路由地址未包括所述第二主机路由地址时,将所述第二主机路由地址缓存于内核的网段路由表中;
引用计数添加模块,被配置为执行添加所述第二主机路由地址对应的引用计数;所述第二主机路由地址对应的引用计数为汇聚所述第二主机路由地址时,所对应的IPv6主机路由地址的数量。
可选的,还包括:
路由地址汇聚模块,具体被配置为执行在所述第二报文对应的事件用于表征所述服务器减少主机路由地址,且所述主机路由地址为IPv6主机路由地址时,对所述IPv6主机路由地址进行汇聚,得到汇聚后的第三主机路由地址;
主机路由地址确定模块,被配置为执行确定内核的网段路由表中缓存的所述第一主机路由地址是否包括所述第三主机路由地址;
引用计数减少模块,被配置为执行在所述第一主机路由地址包括所述第三主机路由地址时,减少所述第一主机路由地址的引用计数,得到所述第一主机路由地址对应的更新后的引用计数。
可选的,还包括:
主机路由地址删除模块,被配置为执行在所述更新后的引用计数为零时,删除所述第一主机路由地址。
可选的,还包括:
主机路由汇聚权限确定模块,被配置为执行确定所述服务器对应的目标主机路由汇聚权限;
在所述服务器对应的目标主机路由汇聚权限为将服务器的多个容器路由地址汇聚到同一网段时,触发所述路由地址汇聚模块执行所述将所述服务器的多个容器的IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的目标主机路由地址。
可选的,还包括:
主机路由汇聚权限配置模块,被配置为执行在所述确定所述服务器对应的目标主机路由汇聚权限之前,配置各个服务器对应的主机路由汇聚权限,所述路由汇聚权限包括将服务器的多个容器的主机路由地址汇聚到同一网段和不将服务器的多个容器的主机路由地址汇聚到同一网段。
根据本公开实施例的第三方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现第一方面所述的方法。
本公开实施例提供的技术方案中,本公开实施例提供的技术方案,获取服务器发送的多个第一报文;解析多个第一报文,得到多个第一报文分别携带的主机路由地址;在多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址;将第一主机路由地址缓存于内核的网段路由表中。
可见,通过本公开实施例提供的技术方案,在将服务器的多个容器的主机路由地址汇聚到同一个目标网段,得到汇聚后的第一主机路由地址后,直接将汇聚后的第一主机路由地址存储到交换机的内核的网段路由表中。而不像相关技术那样,将服务器容器的主机路由地址逐条下发到HOST表,从而可以解决相关技术中的HOST表资源不足的问题。
根据本公开实施例的第四方面,提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行第一方面所述的方法。
本公开实施例提供的技术方案中,本公开实施例提供的技术方案,获取服务器发送的多个第一报文;解析多个第一报文,得到多个第一报文分别携带的主机路由地址;在多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址;将第一主机路由地址缓存于内核的网段路由表中。
可见,通过本公开实施例提供的技术方案,在将服务器的多个容器的主机路由地址汇聚到同一个目标网段,得到汇聚后的第一主机路由地址后,直接将汇聚后的第一主机路由地址存储到交换机的内核的网段路由表中。而不像相关技术那样,将服务器容器的主机路由地址逐条下发到HOST表,从而可以解决相关技术中的HOST表资源不足的问题。
根据本公开实施例的第五方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机实现第一方面所述的方法。
本公开实施例提供的技术方案中,本公开实施例提供的技术方案,获取服务器发送的多个第一报文;解析多个第一报文,得到多个第一报文分别携带的主机路由地址;在多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个IPv6主机路由地址具有相同的MAC地址和接口号时,将多个IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址;将第一主机路由地址缓存于内核的网段路由表中。
可见,通过本公开实施例提供的技术方案,在将服务器的多个容器的主机路由地址汇聚到同一个目标网段,得到汇聚后的第一主机路由地址后,直接将汇聚后的第一主机路由地址存储到交换机的内核的网段路由表中。而不像相关技术那样,将服务器容器的主机路由地址逐条下发到HOST表,从而可以解决相关技术中的HOST表资源不足的问题。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (15)

1.一种主机路由地址存储方法,其特征在于,包括:
获取服务器发送的多个第一报文;其中,每个所述第一报文携带所述服务器的一个容器的主机路由地址;
解析所述多个第一报文,得到所述多个第一报文分别携带的主机路由地址;
在所述多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个所述IPv6主机路由地址具有相同的MAC地址和接口号时,将多个所述IPv6主机路由地址汇聚到同一网段,得到汇聚后的第一主机路由地址,并将所述第一主机路由地址指向所述服务器的目标出接口;所述目标出接口为所述接口号对应的接口;
将所述第一主机路由地址缓存于内核的网段路由表中。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取目标数据;所述目标数据为待发送给所述服务器的数据;
通过所述第一主机路由地址将所述目标数据转发至所述目标出接口;
通过所述目标出接口向所述服务器的各个容器发送所述目标数据。
3.根据权利要求2所述的方法,其特征在于,还包括:
通过外部边界网关协议向目标交换机发送所述第一主机路由地址,以使得所述目标交换机接收到所述第一主机路由地址后,同步存储所述第一主机路由地址;所述目标交换机为用于同步存储所述第一主机路由地址的其他交换机;
相应的,所述获取目标数据,包括:
接收所述目标交换机通过所述第一主机路由地址转发的目标数据。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述将所述第一主机路由地址缓存于内核的网段路由表,包括:
通过内部边界网关协议将所述第一主机路由地址经由Redis数据库和Route数据库转发至内核的网段路由表。
5.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
确定汇聚所述第一主机路由地址时,所对应的IPv6主机路由地址的数量;
将所述IPv6主机路由地址的数量确定为所述第一主机路由地址对应的引用计数;
对所述第一主机路由地址添加所述引用计数。
6.根据权利要求5所述的方法,其特征在于,还包括:
接收服务器发送的第二报文,所述第二报文携带所述服务器的一个容器的主机路由地址;
对所述第二报文进行解析,得到所述第二报文所携带的主机路由地址,并生成所述第二报文对应的事件;所述事件用于表征所述服务器增加或者减少主机路由地址;
在所述第二报文对应的事件用于表征所述服务器增加主机路由地址,且所述主机路由地址为IPv6主机路由地址时,对所述IPv6主机路由地址进行汇聚,得到汇聚后的第二主机路由地址;
确定所述第一主机路由地址与所述第二主机路由地址之间的关联关系;所述关联关系为所述第一主机路由地址包括所述第二主机路由地址,或者,所述第一主机路由地址未包括所述第二主机路由地址;
在所述关联关系为所述第一主机路由地址包括所述第二主机路由地址时,增加所述第一主机路由地址对应的引用计数;所述第一主机路由地址对应的引用计数所增加的数量为汇聚所述第二主机路由地址时,所对应的IPv6主机路由地址的数量。
7.根据权利要求6所述的方法,其特征在于,还包括:
在所述关联关系为所述第一主机路由地址未包括所述第二主机路由地址时,将所述第二主机路由地址缓存于内核的网段路由表中;
添加所述第二主机路由地址对应的引用计数;所述第二主机路由地址对应的引用计数为汇聚所述第二主机路由地址时,所对应的IPv6主机路由地址的数量。
8.根据权利要求6所述的方法,其特征在于,还包括:
在所述第二报文对应的事件用于表征所述服务器减少主机路由地址,且所述主机路由地址为IPv6主机路由地址时,对所述IPv6主机路由地址进行汇聚,得到汇聚后的第三主机路由地址;
确定内核的网段路由表中缓存的所述第一主机路由地址是否包括所述第三主机路由地址;
在所述第一主机路由地址包括所述第三主机路由地址时,减少所述第一主机路由地址的引用计数,得到所述第一主机路由地址对应的更新后的引用计数。
9.根据权利要求8所述的方法,其特征在于,还包括:
在所述更新后的引用计数为零时,删除所述第一主机路由地址。
10.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
确定所述服务器对应的目标主机路由汇聚权限;
在所述服务器对应的目标主机路由汇聚权限为将服务器的多个容器路由地址汇聚到同一网段时,执行所述将所述服务器的多个容器的IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的目标主机路由地址。
11.根据权利要求10所述的方法,其特征在于,还包括:
在所述确定所述服务器对应的目标主机路由汇聚权限之前,配置各个服务器对应的主机路由汇聚权限,所述路由汇聚权限包括将服务器的多个容器的主机路由地址汇聚到同一网段和不将服务器的多个容器的主机路由地址汇聚到同一网段。
12.一种主机路由地址存储装置,其特征在于,包括:
第一报文获取模块,被配置为执行获取服务器发送的多个第一报文;其中,每个所述第一报文携带所述服务器的一个容器的主机路由地址;
第一报文解析模块,被配置为执行解析所述多个第一报文,得到所述多个第一报文分别携带的主机路由地址;
路由地址汇聚模块,被配置为执行在所述多个第一报文分别携带的主机路由地址均为IPv6主机路由地址,且多个所述IPv6主机路由地址具有相同的MAC地址和接口号时,将多个所述IPv6主机路由地址汇聚到同一目标网段,得到汇聚后的第一主机路由地址,并将所述第一主机路由地址指向所述服务器的目标出接口;所述目标出接口为所述接口号对应的接口;
主机路由地址存储模块,被配置为执行将所述第一主机路由地址缓存于内核的网段路由表中。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至11任一项所述的方法。
14.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至11任一项所述的方法。
15.一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机实现如权利要求1至11任一项所述的方法。
CN202210943124.8A 2022-08-08 2022-08-08 一种主机路由地址存储方法、装置、电子设备及存储介质 Pending CN115412528A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210943124.8A CN115412528A (zh) 2022-08-08 2022-08-08 一种主机路由地址存储方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210943124.8A CN115412528A (zh) 2022-08-08 2022-08-08 一种主机路由地址存储方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115412528A true CN115412528A (zh) 2022-11-29

Family

ID=84160263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210943124.8A Pending CN115412528A (zh) 2022-08-08 2022-08-08 一种主机路由地址存储方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115412528A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101014014A (zh) * 2007-02-09 2007-08-08 华为技术有限公司 路由聚合方法、报文转发方法以及自治系统边界路由器
CN101695047A (zh) * 2009-10-26 2010-04-14 中兴通讯股份有限公司 一种实现动态隧道报文转发的方法及交换机
CN102055817A (zh) * 2010-12-30 2011-05-11 中国人民解放军信息工程大学 同源地址束汇聚方法及同源汇聚网络路由系统
CN104426781A (zh) * 2013-09-05 2015-03-18 华为技术有限公司 实现组播路由汇聚的方法、组播方法及路由设备
CN105763444A (zh) * 2016-01-27 2016-07-13 杭州华三通信技术有限公司 一种路由同步方法及装置
CN107547407A (zh) * 2017-09-15 2018-01-05 新华三技术有限公司 报文传输方法、装置和实现装置
CN111865803A (zh) * 2020-06-01 2020-10-30 锐捷网络股份有限公司 基于evpn的路由处理方法及装置
CN112532501A (zh) * 2019-09-18 2021-03-19 中国电信股份有限公司 主机物理地址处理方法和装置、计算机可读存储介质
CN112867086A (zh) * 2021-01-29 2021-05-28 新华三信息安全技术有限公司 一种报文处理方法及装置
CN113381936A (zh) * 2020-03-09 2021-09-10 阿里巴巴集团控股有限公司 网络信息处理方法、装置及网络设备
CN113438329A (zh) * 2020-03-23 2021-09-24 华为技术有限公司 Mac地址发送方法、装置和系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101014014A (zh) * 2007-02-09 2007-08-08 华为技术有限公司 路由聚合方法、报文转发方法以及自治系统边界路由器
CN101695047A (zh) * 2009-10-26 2010-04-14 中兴通讯股份有限公司 一种实现动态隧道报文转发的方法及交换机
CN102055817A (zh) * 2010-12-30 2011-05-11 中国人民解放军信息工程大学 同源地址束汇聚方法及同源汇聚网络路由系统
CN104426781A (zh) * 2013-09-05 2015-03-18 华为技术有限公司 实现组播路由汇聚的方法、组播方法及路由设备
CN105763444A (zh) * 2016-01-27 2016-07-13 杭州华三通信技术有限公司 一种路由同步方法及装置
CN107547407A (zh) * 2017-09-15 2018-01-05 新华三技术有限公司 报文传输方法、装置和实现装置
CN112532501A (zh) * 2019-09-18 2021-03-19 中国电信股份有限公司 主机物理地址处理方法和装置、计算机可读存储介质
CN113381936A (zh) * 2020-03-09 2021-09-10 阿里巴巴集团控股有限公司 网络信息处理方法、装置及网络设备
CN113438329A (zh) * 2020-03-23 2021-09-24 华为技术有限公司 Mac地址发送方法、装置和系统
CN111865803A (zh) * 2020-06-01 2020-10-30 锐捷网络股份有限公司 基于evpn的路由处理方法及装置
CN112867086A (zh) * 2021-01-29 2021-05-28 新华三信息安全技术有限公司 一种报文处理方法及装置

Similar Documents

Publication Publication Date Title
US11522734B2 (en) Method for controlling a remote service access path and relevant device
CN107465590B (zh) 网络基础设施系统、路由网络业务的方法及计算机可读介质
US11575606B2 (en) Method, apparatus, and system for generating, and processing packets according to, a flow filtering rule
CN109040243B (zh) 一种报文处理方法及装置
US7257643B2 (en) Method and apparatus to improve network routing
US20130290563A1 (en) Answer augmentation system for authoritative dns servers
CN106713144B (zh) 一种报文出口信息的读写方法及转发引擎
CN112887229B (zh) 一种会话信息同步方法及装置
CN110012118B (zh) 一种提供网络地址转换nat服务的方法及控制器
CN109088957B (zh) Nat规则管理的方法、装置和设备
CN110932890A (zh) 一种数据传输方法、服务器及计算机可读存储介质
CN110958334B (zh) 报文处理方法及装置
US10805202B1 (en) Control plane compression of next hop information
CN113796048A (zh) 采用数据中心网络管理器的分布式负载均衡器健康状况管理
CN109413224B (zh) 报文转发方法和装置
Li et al. A software-defined address resolution proxy
CN113709133A (zh) 一种基于数据中心的ipvc6通信系统
US10229459B1 (en) Method and apparatus for routing in transaction management systems
CN114793199B (zh) 一种报文处理方法、装置及网络设备
CN115412528A (zh) 一种主机路由地址存储方法、装置、电子设备及存储介质
Jain et al. Evolving to 6G: Improving the Cellular Core to lower control and data plane latency
CN114760263B (zh) 一种地址解析方法、云平台及介质
CN111245728A (zh) 具多网卡计算装置的数据报文转发方法及系统
WO2022068484A1 (zh) 一种业务链地址池切片处理方法、装置及系统
CN112653639B (zh) 一种基于多线程交互处理的IPv6报文分片重组方法

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