CN104079486A - 一种网关及其传送数据的方法 - Google Patents

一种网关及其传送数据的方法 Download PDF

Info

Publication number
CN104079486A
CN104079486A CN201310105310.5A CN201310105310A CN104079486A CN 104079486 A CN104079486 A CN 104079486A CN 201310105310 A CN201310105310 A CN 201310105310A CN 104079486 A CN104079486 A CN 104079486A
Authority
CN
China
Prior art keywords
node
simm
address
mac address
routing
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
CN201310105310.5A
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201310105310.5A priority Critical patent/CN104079486A/zh
Priority to US14/648,278 priority patent/US9887905B2/en
Priority to PCT/CN2014/073132 priority patent/WO2014154087A1/en
Publication of CN104079486A publication Critical patent/CN104079486A/zh
Priority to US15/823,326 priority patent/US10135717B2/en
Priority to US15/823,299 priority patent/US10129137B2/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/668Internet protocol [IP] address subnets

Landscapes

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

Abstract

本发明公开了一种网关及其传送数据的方法,该网关与SIMM节点相连,该方法包括:响应于需要建立SIMM节点的多MAC地址路由信息:获得SIMM节点的IP地址对应的多个MAC地址以及至少根据获得的SIMM节点的IP地址对应的多个MAC地址建立SIMM节点的多MAC地址路由信息;响应于接收到发送给SIMM节点的IP地址的数据报文,利用建立的SIMM节点的多MAC地址路由信息对数据报文路由。该发明能够提高SIMM节点的接收的流量的负载平衡效率,增加网关到SIMM节点之间的带宽利用率。

Description

一种网关及其传送数据的方法
技术领域
本发明的实施例涉及网络数据传输,具体涉及一种网关及其传送数据的方法。
背景技术
传统上,一个IP节点使用一个IP地址和一个MAC地址。为了增加带宽和有效性,一些新技术能够使得IP节点(无论是物理的还是逻辑的)具有一个IP地址以及多个MAC地址,每个MAC地址通常对应一个物理网络接口卡或者出接口(Egress Port),这种节点叫SIMM节点(Single IP address and multiple MACaddress,单个IP多个MAC)。
使用网络接口卡编组(NICteaming alb/slb)模式的服务器是SIMM节点的一种具体表现形式。网络接口卡编组就是把同一台服务器上的多个物理网卡通过软件绑定成一个虚拟的网卡,也就是说,对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序,以及本服务器所在的网络,这台服务器只有一个网络链接或者说只有一个可以访问的IP地址。图1示出了通过SIMM节点服务器发出的数据包可以通过不同的网络接口卡使用一个IP地址发送到不同的目标节点的示意图,该方案一方面可以提高网络速度;另一方面还可以通过编组实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Faulttolerance)。
但是,在接收不同子网的数据时,问题就出现了。图2示出了当目标节点与SIMM节点在不同的子网中时,SIMM节点接收的流量。显然接收的流量不是负载均衡的。因为SIMM节点的进入流量需要经过一个网关,网关知道SIMM节点只有一个IP地址,而且因为现有的ARP机制,网关只能知道这个IP地址对应于一个MAC地址和一个出接口,因此,发送SIMM节点的流量只会从一个固定的出接口出去,而SIMM节点只会在一个网络接口卡接收这类三层流量。这种情况下,SIMM节点的接收的流量的负载平衡的效率降低到仿佛只有一个网络接口卡或者一个出接口。
发明内容
为了解决现有技术中的问题,本发明公开的实施方式提出了一种网关及其传送数据的方法。
根据本发明实施例的一个方面,提供了一种网关传送数据的方法,该网关与SIMM节点相连,该方法包括:响应于需要建立SIMM节点的多MAC地址路由信息:获得SIMM节点的IP地址对应的多个MAC地址;以及至少根据获得的SIMM节点的IP地址对应的多个MAC地址建立SIMM节点的多MAC地址路由信息;以及响应于接收到发送给SIMM节点的IP地址的数据报文,利用建立的SIMM节点的多MAC地址路由信息对数据报文路由。
根据本发明实施例的另一个方面,提供了一种网关,与SIMM节点相连,包括:SIMM节点的多MAC地址路由信息建立模块,被配置为响应于需要建立SIMM节点的多MAC地址路由信息,获得SIMM节点的IP地址对应的多个MAC地址并且至少根据获得的SIMM节点的IP地址对应的多个MAC地址建立SIMM节点的多MAC地址路由信息;以及SIMM节点接收数据的路由模块,被配置为响应于接收到发送给SIMM节点的IP地址的数据报文,利用建立的SIMM节点的多MAC地址路由信息对数据报文路由。
利用本发明实施例的方法和装置,可以有效地提高SIMM节点的接收的流量的负载平衡效率,增加网关到SIMM节点之间的带宽利用率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了通过SIMM节点服务器发出的数据包可以通过不同的网络接口卡使用一个IP地址发送到不同的目标节点的示意图;
图2示出了当目标节点与SIMM节点在不同的子网中时,SIMM节点接收的流量;
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图4示出了ARP协议过程以及路由表的部分信息;
图5示出了ECMP路由技术的过程以及路由表的部分信息。
图6示出了根据本发明的一个实施例的网关传送数据的方法的流程图;
图7示出了一种示意性的扩展的ARP的报文格式;
图8示出了执行步骤S602后的路由表部分信息;以及
图9示出了根据本发明的一个实施例的网关的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图3显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
以下结合附图和具体例子描述本发明的实施方式。
在TCP/IP协议中,节点A给节点B发送IP包,如果两者之间并没有使用其它通讯协议,单纯只以TCP/IP协议来沟通时,由于位于不同的网段,所以正常状态下需要网关封包连接,从而找到下一个要去的IP地址。IP路由是一个通过路由表进行路由的过程。网关上会存储一份路由表。路由表是根据路由协议建立的,这样节点A在自己或其网关(gateway)的路由表(route table)查看节点B的IP地址,然后将数据包使用路由协议发送。
一个典型的路线包括至少两个字段:目的IP地址和下一跳IP地址。下一跳IP地址是在一个子网内的直接连接的IP节点。当一个IP数据包转发,路由过程执行以下操作:根据最长前缀匹配算法搜索路由表中的目的IP相匹配的条目,如果找到,在链路层将要转发的IP数据包封装成帧,并且直接分发到下一跳IP节点。链路层的封装和分发使用的信息至少包括下一跳IP节点的硬件地址(如以太网MAC地址)以及其它的链路层信息。在典型的实施中,和路由相关的一个数据结构存储该信息。路由表中有一个称为next_hop_ptr的指针指向该相关的结构。在下文中,该数据结构被称为为NEXT_HOP表。NEXT_HOP表里面至少包含了出接口(Egress Port)和下一跳的MAC地址。路由协议根据NEXT_HOP表里面包含的出接口和下一跳MAC地址将数据包传送到该下一跳MAC地址的出接口。NEXT_HOP表的信息是通过地址解析协议即ARP协议(Address Resolution Protocol)建立的。
地址解析协议(ARP)是在仅知道主机的IP地址时确定其物理(MAC)地址的一种协议。图4示出了ARP协议过程以及路由表的部分信息。ARP协议中,在节点A不知道节点B的MAC地址及出接口的情况下,节点A的ARP表建立模块就广播一个ARP请求报文,请求报文中含有节点B的IP地址,以太网中同一个子网的所有计算机都会接收这个请求,而正常的情况下只有节点B会给出ARP应答报文,ARP应答报文中就填充上了节点B的MAC地址,并回复给节点A。节点A的ARP表建立模块内部的ARP表就会包含节点B的IP地址与MAC地址的映射关系,并填入next_hop_ptr指针指向的NEXT_HOP表,这样节点A就可以发包给节点B了,并且在收到ARP报文,进行MAC地址学习的时候可以学习到出接口相关信息。在数据传输过程中,根据图4,路由表中查到下一跳的IP地址为1.1.1.1,如果路由表中的next_hop_ptr的指针指向的NEXT_HOP表已经包含出接口(Egress Port)和下一跳的MAC地址,则直接将数据包传送到该下一跳MAC地址的出接口;否则ARP表建立模块使用地址解析协议填充NEXT_HOP表需要的信息,然后进行数据包的转发。可见,现有技术中,下一跳IP地址通过ARP协议或者静态配置可以被解析成NEXT_HOP表中的唯一的MAC地址。
如果节点B是一个SIMM节点,节点B发送数据包时,会利用一定的算法(例如HASH算法),选择其中的一个网卡发送,来实现不同网卡之间的负载均衡和网卡冗余。但是当节点B从节点A接收数据包时,当节点A的网关查询节点B的MAC地址,发出一个广播的ARP请求报文时,节点B的每个网卡上都会收到这个ARP请求报文,但是节点B会根据节点A的IP地址根据一定的算法(例如HASH算法),选择其中的一个网卡发出ARP应答报文,并把该网卡的MAC地址填写在ARP应答报文中。由于节点A的IP地址是唯一的,因此只会收到节点B的一个网卡的MAC地址,节点A就会在后续的数据报文中加入节点B的该MAC地址,这样,节点B的多个网卡中只有该MAC地址对应的网卡接收数据报文,就会造成负载失衡。
当存在多个下一跳(Next Hop)同时到达同一目的地址的网络环境中,如果使用传统的路由技术,发往该目的地址的数据包只能利用其中的一个下一跳链路,因此需要用到等价多路径技术(Equal-CostMultipathRouting,ECMP)。图5示出了ECMP路由技术的过程以及路由表的部分信息。根据图5,在有ECMP的情况下,下一跳IP地址包含多个IP地址,报文进行路由转发的时候,当发现有多个下一跳的时候,通常会以报文里面的目的IP作为KEY(也可以以目的IP地址和源IP地址作为KEY,甚至源端口也可以作为KEY),计算一个HASH值,再根据这个HASH值来选择NEXT_HOP表中的一个下一跳进行转发。ECMP可以保证在该网络环境下多条链路都能被使用到,不仅增加了传输带宽利用率,并且可以无时延无丢包地备份失效链路的数据传输。
本发明的实施例在传统的ECMP技术基础上,提出改进的ARP表,其中允许相同的IP地址对应多个MAC地址和出接口。同样做到了在多个链路上进行负载分担。
并且,本发明的实施例公开了一种网关传送数据的方法,该网关与SIMM节点相连,图6示出了根据本发明的一个实施例的网关传送数据的方法的流程图,根据图6,该方法包括:在步骤S601,响应于需要建立SIMM节点的多MAC地址路由信息,获得SIMM节点的IP地址对应的多个MAC地址以及至少根据获得的SIMM节点的IP地址对应的多个MAC地址建立SIMM节点的多MAC地址路由信息;在步骤S602,响应于接收到发送给该SIMM节点的IP地址的数据报文,利用建立的SIMM节点的多MAC地址路由信息对数据报文路由。这里,建立SIMM节点的多MAC地址路由信息处理需要利用SIMM节点的IP地址对应的多个MAC地址,还需要其他信息,例如出接口等信息。
在一种实施方式中,多MAC地址路由信息至少包括路由表、ARP表、该路由表的下一跳指针指向的NEXT_HOP表的各表中的信息,并且其中建立SIMM节点的多MAC地址路由信息包括:在ARP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;在NEXT_HOP表的各表中加入SIMM节点的IP地址与多个MAC地址的对应关系;在路由表中建立SIMM节点的路由条目。其中,这三个步骤中,在路由表中建立SIMM节点的路由条目可以在其它两个步骤前后执行,效果是一样的。
在另一种实施方式中,利用建立的SIMM节点的多MAC地址路由信息对数据报文路由包括:获得路由表中建立的SIMM节点的路由条目;使用ECMP路由技术选择NEXT_HOP表中的SIMM节点的IP地址对应的多个MAC地址中的一个作为该数据报文的接收端MAC地址;以及将数据报文发送到选择的MAC地址。
对于网关如何获得SIMM节点的IP地址对应的多个MAC地址,在一种实施方式中,SIMM节点使用ARP应答报文来更新网关的ARP缓存。对来自不同IP地址的ARP请求报文,SIMM节点根据特定的算法(例如HASH算法)选择其一个MAC地址作为ARP应答报文中的发送者MAC地址,算法能够保证全部SIMM节点的MAC地址最后都公开给与SIMM节点相连的网关。可以利用这一特性来获得SIMM节点的IP地址对应的多个MAC地址。但是,网关必须利用不同的IP地址来骗过SIMM节点。因此,其中从网关端看,该方法包括:首先在同一个子网将足够多个保留的IP地址分别作为源IP地址,网关的MAC地址作为源MAC地址,SIMM节点的IP地址作为目的地址,发送多个ARP请求报文;响应于接收到ARP响应报文,将SIMM节点返回的多个ARP应答中重复的MAC地址忽略,就可以获得SIMM节点的IP地址对应的多个MAC地址。上述实施方式不需要SIMM节点修改ARP协议,仅仅利用现有的ARP协议即可。一种优选的实施方式中,多个保留的IP地址为连续的IP地址,这样效果更好。这些保留的IP地址是伪IP地址。
在另一种实施方式中,网关发送获得SIMM节点的IP地址对应的MAC地址的请求;然后就可以直接接收到SIMM节点的IP地址对应的多个MAC地址。这种实施方式可以完全脱离现有的ARP协议。
或者,仍然利用现有的ARP协议,在另外一种实施方式中,可以扩展现有的ARP应答报文,在一个应答报文中,网关响应于接收到发出的ARP请求报文的扩展的ARP应答报文,可以一次性得到SIMM的全部MAC地址,其中,该扩展的ARP应答报文中载入SIMM节点的多个MAC地址。图7示出了一种示意性的扩展的ARP的报文格式。对于这种特殊的ARP报文,硬件类型可以设置一个当前还没有被使用的类型,比如240,然后在ARP报文的结尾加上如下的字段<地址数目,发送方MAC地址*地址数目>。
本领域技术人员可以知道,还可以采用其它SIMM节点和网关的对话方式获得SIMM节点的IP地址对应的多个MAC地址,这里不再赘述。
并且在上述实施方式中,如果出现任何的网卡故障或者故障恢复,SIMM节点需要以某种方式通知网关,以便网关重新启动SIMM节点的路由条目创建过程。
图8示出了执行步骤S602后的路由表部分信息。图8中的3个箭头分别表明了在ARP表中加入SIMM节点的IP地址与多个MAC地址的对应关系、在NEXT_HOP表中加入SIMM节点的IP地址与多个MAC地址的对应关系、以及在路由表中建立SIMM节点的路由条目这三个步骤的执行过程。获得SIMM节点的IP地址对应的多个MAC地址后,就可以在ARP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;并且根据ARP表中的对应关系,在路由表的下一跳指针指向的NEXT_HOP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;可以在收到SIMM节点的IP地址对应的多个MAC地址后,就建立SIMM节点的路由条目,其中记录下一条的数量为多个MAC地址的个数;也可以根据ARP表中的信息创建SIMM节点的路由条目。
在向SIMM节点的IP地址发送数据报文的路由过程中,可以假设SIMM节点的路由条目已经被创建好,则网关在接收到发送给该SIMM节点的IP地址的数据报文时,获得SIMM节点的路由条目。如图8所示,根据路由条目信息,发现该节点具有唯一的IP地址,但是具有多个MAC地址(这里是3个下一跳),可以确定该节点为SIMM节点,就使用ECMP路由技术,从下一跳指针指向的NEXT_HOP表中的SIMM节点的IP地址对应的多个MAC地址中选择一个作为该数据报文的接收端MAC地址,将数据报文发送到选择的MAC地址。这样,当网关收到一个到SIMM节点的三层报文的时候,就可以平衡SIMM节点中多个网络接口卡的负载。
在同一个发明构思下,本发明的实施例还公开了一种网关,与SIMM节点相连,图9示出了根据本发明的一个实施例的网关的结构图,根据图9,该网关包括:SIMM节点的多MAC地址路由信息建立模块901,被配置为响应于需要建立SIMM节点的多MAC地址路由信息,获得SIMM节点的IP地址对应的多个MAC地址并且至少根据获得的SIMM节点的IP地址对应的多个MAC地址建立SIMM节点的多MAC地址路由信息;以及SIMM节点接收数据的路由模块902,被配置为响应于接收到发送给该SIMM节点的IP地址的数据报文,利用建立的SIMM节点的多MAC地址路由信息对数据报文路由。
在一种实施方式中,多MAC地址路由信息至少包括路由表、ARP表、该路由表的下一跳指针指向的NEXT_HOP表中的信息,并且其中SIMM节点的多MAC地址路由信息建立模块包括(图9未示出):ARP表建立模决,被配置为在ARP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;NEXT_HOP表建立模块,被配置为在NEXT_HOP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;以及路由条目建立模块,被配置为在路由表中建立SIMM节点的路由条目。
在另一种实施方式中,SIMM节点接收数据的路由模块包括(图9未示出):路由条目获得模块,被配置为获得路由表中建立的SIMM节点的路由条目;选择模块,被配置为使用ECMP路由技术选择NEXT_HOP表中的SIMM节点的IP地址对应的多个MAC地址中的一个作为该数据报文的接收端MAC地址;以及发送模块,被配置为将数据报文发送到选择的MAC地址。
在一种实施方式中,SIMM节点的多MAC地址路由信息建立模块包括:ARP请求报文发送模块,被配置为在同一个子网将足够多个保留的IP地址分别作为源IP地址,网关的MAC地址作为源MAC地址,SIMM节点的IP地址作为目的IP地址,发送足够多个ARP请求报文;以及重复条目忽略模块,被配置为响应于从SIMM节点接收到足够多个ARP响应报文,将返回的多个ARP应答报文中重复的目的MAC地址忽略,从而获得SIMM节点的IP地址对应的多个MAC地址。
在一种实施方式中,SIMM节点的多MAC地址路由信息建立模块包括:多个MAC地址请求发送模块,被配置为向相连的SIMM节点发送获得该SIMM节点的IP地址对应的多个MAC地址的请求;以及多个MAC地址接收模块,被配置为接收该SIMM节点的IP地址对应的多个MAC地址。
在一种实施方式中,SIMM节点的多MAC地址路由信息建立模块包括:ARP请求报文发送模块,被配置为发送获得SIMM节点的IP地址对应的MAC地址的ARP请求报文;以及扩展ARP应答报文接收模块,被配置为接收扩展的ARP应答报文,其中,所述扩展的ARP应答报文中载入SIMM节点的多个MAC地址。
在另一种实施方式中,路由条目建立模块还被配置为在路由表中更新下一跳的数量。
在又一种实施方式中,路由条目获得模块还被配置为:根据路由表中建立的SIMM节点的路由条目,确定该节点具有唯一的IP地址并且具有多个不同的MAC地址,从而确定该节点为SIMM节点。
可以理解,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (16)

1.一种网关传送数据的方法,该网关与SIMM节点相连,该方法包括:
响应于需要建立SIMM节点的多MAC地址路由信息:
获得SIMM节点的IP地址对应的多个MAC地址;以及
至少根据获得的SIMM节点的IP地址对应的多个MAC地址建立SIMM节点的多MAC地址路由信息;以及
响应于接收到发送给SIMM节点的IP地址的数据报文,利用建立的SIMM节点的多MAC地址路由信息对数据报文路由。
2.根据权利要求1所述的方法,其中多MAC地址路由信息至少包括路由表、ARP表、该路由表的下一跳指针指向的NEXT_HOP表的各表中的信息,并且其中建立SIMM节点的多MAC地址路由信息包括:
在ARP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;
在NEXT_HOP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;
在路由表中建立SIMM节点的路由条目。
3.根据权利要求2所述的方法,其中利用建立的SIMM节点的多MAC地址路由信息对数据报文路由包括:
获得路由表中建立的SIMM节点的路由条目;
使用ECMP路由技术选择NEXT_HOP表中的SIMM节点的IP地址对应的多个MAC地址中的一个作为该数据报文的接收端MAC地址;
将数据报文发送到选择的MAC地址。
4.根据权利要求1-3之一所述的方法,其中获得SIMM节点的IP地址对应的多个MAC地址包括:
在同一个子网将足够多个保留的IP地址分别作为源IP地址,网关的MAC地址作为源MAC地址,SIMM节点的IP地址作为目的IP地址,发送足够多个ARP请求报文;
响应于从SIMM节点接收到足够多个ARP响应报文,将返回的多个ARP应答报文中重复的目的MAC地址忽略,从而获得SIMM节点的IP地址对应的多个MAC地址。
5.根据权利要求1-3之一所述的方法,其中获得SIMM节点的IP地址对应的多个MAC地址包括:
发送获得SIMM节点的IP地址对应的多个MAC地址的请求;
接收SIMM节点的IP地址对应的多个MAC地址。
6.根据权利要求1-3之一所述的方法,其中获得SIMM节点的IP地址对应的多个MAC地址包括:
发送获得SIMM节点的IP地址对应的MAC地址的ARP请求报文;
接收扩展的ARP应答报文,其中,所述扩展的ARP应答报文中载入SIMM节点的多个MAC地址。
7.根据权利要求2所述的方法,其中在路由表中建立SIMM节点的路由条目包括在路由表中更新下一跳的数量。
8.根据权利要求3所述的方法,其中获得路由表中建立的SIMM节点的路由条目包括:根据路由表中建立的SIMM节点的路由条目,确定该节点具有唯一的IP地址并且具有多个不同的MAC地址,从而确定该节点为SIMM节点。
9.一种网关,与SIMM节点相连,包括:
SIMM节点的多MAC地址路由信息建立模块,被配置为响应于需要建立SIMM节点的多MAC地址路由信息,获得SIMM节点的IP地址对应的多个MAC地址并且至少根据获得的SIMM节点的IP地址对应的多个MAC地址建立SIMM节点的多MAC地址路由信息;以及
SIMM节点接收数据的路由模块,被配置为响应于接收到发送给SIMM节点的IP地址的数据报文,利用建立的SIMM节点的多MAC地址路由信息对数据报文路由。
10.根据权利要求9所述的网关,其中多MAC地址路由信息至少包括路由表、ARP表、该路由表的下一跳指针指向的NEXT_HOP表的各表中的信息,并且其中SIMM节点的多MAC地址路由信息建立模块包括:
ARP表建立模块,被配置为在ARP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;
NEXT_HOP表建立模块,被配置为在NEXT_HOP表中加入SIMM节点的IP地址与多个MAC地址的对应关系;
路由条目建立模块,被配置为在路由表中建立SIMM节点的路由条目。
11.根据权利要求10所述的网关,其中SIMM节点接收数据的路由模块包括:
路由条目获得模块,被配置为获得路由表中建立的SIMM节点的路由条目;
选择模块,被配置为使用ECMP路由技术选择NEXT_HOP表中的SIMM节点的IP地址对应的多个MAC地址中的一个作为该数据报文的接收端MAC地址;
发送模块,被配置为将数据报文发送到选择的MAC地址。
12.根据权利要求9-11之一所述的网关,其中SIMM节点的多MAC地址路由信息建立模块包括:
ARP请求报文发送模块,被配置为在同一个子网将足够多个保留的IP地址分别作为源IP地址,网关的MAC地址作为源MAC地址,SIMM节点的IP地址作为目的IP地址,发送足够多个ARP请求报文;
重复条目忽略模块,被配置为响应于从SIMM节点接收到足够多个ARP响应报文,将返回的多个ARP应答报文中重复的目的MAC地址忽略,从而获得SIMM节点的IP地址对应的多个MAC地址。
13.根据权利要求9-11之一所述的网关,其中SIMM节点的多MAC地址路由信息建立模块包括:
多个MAC地址请求发送模块,被配置为发送获得SIMM节点的IP地址对应的多个MAC地址的请求;
多个MAC地址接收模块,被配置为接收SIMM节点的IP地址对应的多个MAC地址。
14.根据权利要求9-11之一所述的网关,其中SIMM节点的多MAC地址路由信息建立模块包括:
ARP请求报文发送模块,被配置为发送获得SIMM节点的IP地址对应的MAC地址的ARP请求报文;
扩展ARP应答报文接收模块,被配置为接收扩展的ARP应答报文,其中,所述扩展的ARP应答报文中载入SIMM节点的多个MAC地址。
15.根据权利要求10所述的网关,其中路由条目建立模块还被配置为在路由表中更新下一跳的数量。
16.根据权利要求11所述的网关,其中路由条目获得模块还被配置为:根据路由表中建立的SIMM节点的路由条目,确定该节点具有唯一的IP地址并且具有多个MAC地址,从而确定该节点为SIMM节点。
CN201310105310.5A 2013-03-28 2013-03-28 一种网关及其传送数据的方法 Pending CN104079486A (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201310105310.5A CN104079486A (zh) 2013-03-28 2013-03-28 一种网关及其传送数据的方法
US14/648,278 US9887905B2 (en) 2013-03-28 2014-03-10 Transferring data in a gateway
PCT/CN2014/073132 WO2014154087A1 (en) 2013-03-28 2014-03-10 A gateway and its method of transfering data
US15/823,326 US10135717B2 (en) 2013-03-28 2017-11-27 Transferring data in a gateway
US15/823,299 US10129137B2 (en) 2013-03-28 2017-11-27 Transferring data in a gateway

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310105310.5A CN104079486A (zh) 2013-03-28 2013-03-28 一种网关及其传送数据的方法

Publications (1)

Publication Number Publication Date
CN104079486A true CN104079486A (zh) 2014-10-01

Family

ID=51600538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310105310.5A Pending CN104079486A (zh) 2013-03-28 2013-03-28 一种网关及其传送数据的方法

Country Status (3)

Country Link
US (3) US9887905B2 (zh)
CN (1) CN104079486A (zh)
WO (1) WO2014154087A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812263A (zh) * 2016-03-10 2016-07-27 盛科网络(苏州)有限公司 一种在asic芯片中实现路由arp信息和编辑信息分离的方法
CN106375131A (zh) * 2016-10-20 2017-02-01 浪潮电子信息产业股份有限公司 一种虚拟化网络上行链路负载均衡方法
US9887905B2 (en) 2013-03-28 2018-02-06 International Business Machines Corporation Transferring data in a gateway
CN110224936A (zh) * 2019-06-12 2019-09-10 四川灵通电讯有限公司 基于mac地址和网络接口的路由方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2854377B1 (en) * 2013-09-27 2016-07-13 Alcatel Lucent A method for centralized address resolution
JP2016158011A (ja) * 2015-02-23 2016-09-01 ルネサスエレクトロニクス株式会社 配信制御装置、データ配信システム、配信制御方法及びプログラム
CN106982163B (zh) 2016-01-18 2020-12-04 华为技术有限公司 按需获取路由的方法及网关
US10397097B2 (en) * 2017-01-18 2019-08-27 Futurewei Technologies, Inc. Weighted next hop selection at a router using an equal cost multipath process
US10805258B2 (en) * 2018-11-28 2020-10-13 International Business Machines Corporation Multiple link layer address resolution protocol (ARP)
CN109639554B (zh) * 2018-12-26 2022-01-21 山东有人物联网股份有限公司 一种远程vlan实现方法
US10805202B1 (en) * 2019-01-25 2020-10-13 Juniper Networks, Inc. Control plane compression of next hop information
US11063869B2 (en) * 2019-10-28 2021-07-13 Dell Products L.P. ARP table management system
CN114944981B (zh) * 2022-05-20 2023-08-04 国网江苏省电力有限公司 网络高可用的通信方法、装置、存储介质和电子设备
CN115297027B (zh) * 2022-08-02 2023-08-25 上海海得控制系统股份有限公司 孤岛网络设备间链路识别方法、系统、存储介质、网管服务器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505334A (zh) * 2002-12-04 2004-06-16 联想(北京)有限公司 一种单一ip地址多硬件地址的动态解析方法
CN1505335A (zh) * 2002-12-04 2004-06-16 联想(北京)有限公司 一种提高以太网带宽的方法
US20070002826A1 (en) * 2005-06-29 2007-01-04 Bennett Matthew J System implementing shared interface for network link aggregation and system management
CN101404619A (zh) * 2008-11-17 2009-04-08 杭州华三通信技术有限公司 一种实现服务器负载均衡的方法和一种三层交换机
CN101610283A (zh) * 2009-07-17 2009-12-23 浪潮电子信息产业股份有限公司 一种网卡绑定状态下动态接收负载均衡的方法
CN101729425A (zh) * 2009-12-22 2010-06-09 杭州华三通信技术有限公司 Vrrp组网中流量发送的方法及设备
CN102316136A (zh) * 2010-07-01 2012-01-11 英业达股份有限公司 一种双控制器系统的负载均衡方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505399B2 (en) 2004-08-13 2009-03-17 Hewlett-Packard Development Company, L.P. Receive load balancing on multiple network adapters
US8040903B2 (en) 2005-02-01 2011-10-18 Hewlett-Packard Development Company, L.P. Automated configuration of point-to-point load balancing between teamed network resources of peer devices
US7872965B2 (en) 2005-08-01 2011-01-18 Hewlett-Packard Development Company, L.P. Network resource teaming providing resource redundancy and transmit/receive load-balancing through a plurality of redundant port trunks
US7693044B2 (en) 2005-12-15 2010-04-06 Nvidia Corporation Single logical network interface for advanced load balancing and fail-over functionality
US7710862B2 (en) * 2006-08-30 2010-05-04 Hewlett-Packard Development Company, L.P. Method and system of assigning media access control (MAC) addresses across teamed communication ports
US7899848B2 (en) 2006-11-12 2011-03-01 Dell Products L.P. Methods to model NIC teaming and load balancing
US9237034B2 (en) 2008-10-21 2016-01-12 Iii Holdings 1, Llc Methods and systems for providing network access redundancy
US8369332B2 (en) 2009-08-21 2013-02-05 Alcatel Lucent Server-side load balancing using parent-child link aggregation groups
US8897303B2 (en) * 2010-06-29 2014-11-25 Futurewei Technologies, Inc. Delegate gateways and proxy for target hosts in large layer 2 and address resolution with duplicated internet protocol addresses
CN101938415B (zh) 2010-08-30 2012-07-18 北京傲天动联技术有限公司 网络转发设备的快速转发方法
US9025603B2 (en) 2011-03-08 2015-05-05 Qualcomm Incorporated Addressing scheme for hybrid communication networks
US8953617B2 (en) * 2013-01-11 2015-02-10 Dell Products, Lp System and method for utilizing a unique identifier while registering a device in a network
CN104079486A (zh) 2013-03-28 2014-10-01 国际商业机器公司 一种网关及其传送数据的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505334A (zh) * 2002-12-04 2004-06-16 联想(北京)有限公司 一种单一ip地址多硬件地址的动态解析方法
CN1505335A (zh) * 2002-12-04 2004-06-16 联想(北京)有限公司 一种提高以太网带宽的方法
US20070002826A1 (en) * 2005-06-29 2007-01-04 Bennett Matthew J System implementing shared interface for network link aggregation and system management
CN101404619A (zh) * 2008-11-17 2009-04-08 杭州华三通信技术有限公司 一种实现服务器负载均衡的方法和一种三层交换机
CN101610283A (zh) * 2009-07-17 2009-12-23 浪潮电子信息产业股份有限公司 一种网卡绑定状态下动态接收负载均衡的方法
CN101729425A (zh) * 2009-12-22 2010-06-09 杭州华三通信技术有限公司 Vrrp组网中流量发送的方法及设备
CN102316136A (zh) * 2010-07-01 2012-01-11 英业达股份有限公司 一种双控制器系统的负载均衡方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9887905B2 (en) 2013-03-28 2018-02-06 International Business Machines Corporation Transferring data in a gateway
US10129137B2 (en) 2013-03-28 2018-11-13 International Business Machines Corporation Transferring data in a gateway
US10135717B2 (en) 2013-03-28 2018-11-20 International Business Machines Corporation Transferring data in a gateway
CN105812263A (zh) * 2016-03-10 2016-07-27 盛科网络(苏州)有限公司 一种在asic芯片中实现路由arp信息和编辑信息分离的方法
CN105812263B (zh) * 2016-03-10 2019-03-29 盛科网络(苏州)有限公司 一种在asic芯片中实现路由arp信息和编辑信息分离的方法
CN106375131A (zh) * 2016-10-20 2017-02-01 浪潮电子信息产业股份有限公司 一种虚拟化网络上行链路负载均衡方法
CN106375131B (zh) * 2016-10-20 2019-08-02 浪潮电子信息产业股份有限公司 一种虚拟化网络上行链路负载均衡方法
CN110224936A (zh) * 2019-06-12 2019-09-10 四川灵通电讯有限公司 基于mac地址和网络接口的路由方法

Also Published As

Publication number Publication date
US10129137B2 (en) 2018-11-13
US20180083860A1 (en) 2018-03-22
WO2014154087A1 (en) 2014-10-02
US20180083861A1 (en) 2018-03-22
US9887905B2 (en) 2018-02-06
US20150312137A1 (en) 2015-10-29
US10135717B2 (en) 2018-11-20

Similar Documents

Publication Publication Date Title
CN104079486A (zh) 一种网关及其传送数据的方法
CN108574616B (zh) 一种处理路由的方法、设备及系统
WO2018166252A1 (zh) Evpn报文处理方法、设备及系统
US8705522B2 (en) Mobile router support for IPv6
US10476797B2 (en) Systems and methods to route over a link aggregation group to a true next hop
US8743879B2 (en) Label switched routing to connect low power network domains
CN108243103B (zh) 用于在克洛斯网络中分配路由协议信息的装置、系统和方法
JP4995891B2 (ja) Macブリッジを用いたマルチホップメッシュネットワークの接続
CN108718278B (zh) 一种报文传输方法和装置
US7760666B2 (en) Method of generating and managing connection identifiers for supporting multicast for each group in IPv6-based wireless network and network interface using the method
CN101511117B (zh) 一种二层跨网段通信的方法、系统和设备
CN105791457A (zh) 一种数据处理方法及装置
CN103259725A (zh) 报文发送方法和网络设备
JP2020520612A (ja) パケット伝送方法、エッジデバイス及び機械可読記憶媒体
US10142223B2 (en) Symmetric intersubnet traffic load balancing in multihomed networks
WO2020173198A1 (zh) 一种报文的处理方法、报文转发装置以及报文处理装置
WO2022048412A1 (zh) 一种生成表项的方法、发送报文的方法、设备及系统
CN107547665A (zh) 一种dhcp地址分配的方法、设备及系统
JP7483924B2 (ja) 接続ステータス検出方法、関連デバイス、コンピュータ記憶媒体、およびコンピュータプログラム
CN110784407A (zh) 接口配置方法、数据传输方法、装置及电子设备
CN1875573B (zh) 提供能够在不同类型的网络之间进行数据通信的隧道服务的方法、节点和服务器
CN102932255B (zh) 隧道路径选择的方法及装置
CN103220217B (zh) 一种路由生成方法和设备
CN111130978B (zh) 网络流量转发方法、装置、电子设备及机器可读存储介质
WO2021000619A1 (zh) 报文转发方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20141001

RJ01 Rejection of invention patent application after publication