CN113676409B - 一种报文转发方法、装置、电子设备以及存储介质 - Google Patents

一种报文转发方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN113676409B
CN113676409B CN202110935461.8A CN202110935461A CN113676409B CN 113676409 B CN113676409 B CN 113676409B CN 202110935461 A CN202110935461 A CN 202110935461A CN 113676409 B CN113676409 B CN 113676409B
Authority
CN
China
Prior art keywords
target terminal
target
mac address
message
terminal
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
Application number
CN202110935461.8A
Other languages
English (en)
Other versions
CN113676409A (zh
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.)
CRSC Research and Design Institute Group Co Ltd
Original Assignee
CRSC Research and Design Institute Group 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 CRSC Research and Design Institute Group Co Ltd filed Critical CRSC Research and Design Institute Group Co Ltd
Priority to CN202110935461.8A priority Critical patent/CN113676409B/zh
Publication of CN113676409A publication Critical patent/CN113676409A/zh
Application granted granted Critical
Publication of CN113676409B publication Critical patent/CN113676409B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/74Address processing for routing
    • 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/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

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

Abstract

本发明公开了一种报文转发方法、装置、电子设备以及存储介质,属于通信技术领域。若确定第一目标终端具有向第二目标终端发送数据的需求,则为所述第一目标终端生成一个虚拟网关MAC地址,并发送至所述第一目标终端;确定所述第一目标终端向所述第二目标终端的通信链路上的目标交换设备;向所述目标交换设备下发流表,以使所述目标交换设备之间基于所述流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及所述目标交换设备中的末尾交换设备基于所述流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;其中,所述目标交换设备中的首个交换设备与所述第一目标终端相连接。实现了SDN网络中的三层互通。

Description

一种报文转发方法、装置、电子设备以及存储介质
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种报文转发方法、装置、电子设备以及存储介质。
背景技术
在传统网络的三层互通场景中,一台终端与另一台不同网段的终端尝试通信时,要先寻找自己的网关,网关收到数据包后会根据路由表对其进行转发。需要关注的是数据包中的四项内容:源IP地址、目的IP地址、源MAC地址、以及目的MAC地址。数据包在三层网络中经路由器一跳一跳地转发,直至到达目的终端。但是传统网络有组网配置不灵活,无法全局感知网络状态等缺点,因此被软件定义网络(Software Defined Network,SDN)网络所替代,但SDN网络不具有学习维护路由表的功能,要依靠控制器下发的流表来进行数据包转发。因此,如何灵活快速地实现SDN网络的三层互通尤为重要。
发明内容
本发明提供一种报文转发方法、装置、电子设备以及存储介质,以实现SDN网络的三层互通。
第一方面,本发明实施例提供了一种报文转发方法,包括:
若确定第一目标终端具有向第二目标终端发送数据的需求,则为所述第一目标终端生成一个虚拟网关MAC地址,并发送至所述第一目标终端;
确定所述第一目标终端向所述第二目标终端的通信链路上的目标交换设备;
向所述目标交换设备下发流表,以使所述目标交换设备之间基于所述流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及所述目标交换设备中的末尾交换设备基于所述流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,所述目标交换设备中的首个交换设备与所述第一目标终端相连接。
第二方面,本发明实施例还提供了一种报文转发装置,包括:
虚拟MAC地址生成模块,用于若确定第一目标终端具有向第二目标终端发送数据的需求,则为所述第一目标终端生成一个虚拟网关MAC地址,并发送至所述第一目标终端;
目标交换设备确定模块,用于确定所述第一目标终端向所述第二目标终端的通信链路上的目标交换设备;
流表下发模块,用于向所述目标交换设备下发流表,以使所述目标交换设备之间基于所述流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及所述目标交换设备中的末尾交换设备基于所述流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,所述目标交换设备中的首个交换设备与所述第一目标终端相连接。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所提供的报文转发方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所提供的报文转发方法。
本发明实施例的技术方案,通过若确定第一目标终端具有向第二目标终端发送数据的需求,则为第一目标终端生成一个虚拟网关MAC地址,并发送至第一目标终端;确定第一目标终端向第二目标终端的通信链路上的目标交换设备;向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。通过上述技术方案,实现了SDN网络中的三层互通;通过虚拟网关MAC来模拟传统网关设备的网络行为,节约了硬件资源,使得网络更加轻便和节能;同时交换设备仅进行转发操作,交换设备无需计算终端通信链路并维护路由表,从而提升了网络效率。
附图说明
图1是本发明实施例一提供的一种报文转发方法的流程图;
图2是本发明实施例二提供的一种报文转发方法的流程图;
图3是本发明实施例三提供的一种报文转发装置的结构示意图;
图4是本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种报文转发方法的流程图,本实施例可适用于Mesh组网场景中利用SDN网络进行报文转发的情况,该方法可以由报文转发装置来执行,该装置可以由软件和/或硬件的方式实现,并可集成于承载报文转发功能的电子设备中,例如SDN控制器中,可选的,SDN控制器中包含三层虚拟网关模块,用于生成虚拟网关MAC地址;三层虚拟网关模块的北向与REST接口连接,用于接收上层应用下发的配置信息;南向与Mesh组网中的交换设备连接,用于向交换设备下发流表并获取交换设备上报的数据包;SDN控制器是基于openflow标准协议与交换设备进行交互的。
如图1所示,该方法具体可以包括:
S110、若确定第一目标终端具有向第二目标终端发送数据的需求,则为第一目标终端生成一个虚拟网关MAC地址,并发送至第一目标终端。
其中,第一目标终端和第二目标终端是需要通过Mesh组网中的交换设备进行通信的两个终端,例如电脑等;第一目标终端和第二目标终端可以在Mesh组网中的同一台交换设备上,也可以在不同的交换设备上。
所谓虚拟网关MAC地址是指SDN控制器中三层虚拟网关模块为请求网关的终端生成的一个随机的MAC地址。
本实施例中,当第一目标终端发起三层通信时(如通过互ping或者发送UDP、TCP报文时),由于第一目标终端和第二目标终端不在同一网段,因此第一目标终端会向与第一目标终端连接的首个交换设备发送ARP请求消息,其中,ARP请求消息中字段包括:源MAC为第一目标终端的MAC地址,源IP为第一目标终端的IP地址,目的MAC为0,目的IP为第一目标终端的网关IP地址。首个交换设备收到ARP请求消息后,将该ARP请求消息上报给控制器;相应的,SDN控制器中的三层虚拟网关模块若接收到首个交换设备转发的第一目标终端的ARP请求消息,且识别到ARP请求消息中目的IP地址为第二目标终端的IP地址,则确定第一目标终端具有向第二目标终端发送数据的需求;进而控制器为第一目标终端生成一个随机的虚拟网关MAC地址,并基于虚拟网关MAC地址,构造ARP回复消息,将该ARP回复消息通过首个交换设备的端口发送至第一目标终端,其中,ARP回复消息中字段包括:源MAC为虚拟网关MAC地址,源IP为第一目标终端的网关IP地址,目的MAC为第一目标终端的MAC地址,目的IP为第一目标终端的IP地址。
其中,地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
S120、确定第一目标终端向第二目标终端的通信链路上的目标交换设备。
其中,目标交换设备是指实现第一目标终端和第二目标终端通信的最短链路上的交换设备。
本实施例中,若SDN控制器识别到第一目标终端和第二目标终端没有连接在同一交换设备上,则SDN控制器可以基于Mesh组网中的交换设备之间的拓扑网络结构,确定第一目标终端和第二目标终端的最短通信链路,进而确定该最短通信链路上的目标交换设备。
S130、向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。
其中,流表,包含交换设备进行报文转发规则的表,用于SDN控制器控制交换设备按照这种流表中的规则进行转发报文数据。
可选的,若SDN控制器识别到第一目标终端和第二目标终端没有连接在同一交换设备上,则向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。
具体的,第一目标终端向首个交换设备发送报文数据,其中,该报文数据包括:源MAC为第一目标终端的MAC地址,源IP为第一目标终端的IP地址,目的MAC为虚拟网关MAC地址,目的IP为第二目标终端的IP地址。进而,SDN控制器向目标设备中除末尾交换设备外的交换设备下发第一流表,其中,第一流表的匹配域包含:源IP为第一目标终端的IP地址,目的IP为第二目标终端的IP地址,目的MAC为虚拟网关MAC地址;流表的处理方式为:出口(output)为下一段链路连接的目标交换设备的端口。向目标设备中的末尾设备下发第二流表,其中,第二流表的匹配域包含:源IP为第一目标终端的IP地址,目的IP为第二目标终端的IP地址,目的MAC为虚拟网关MAC地址;流表的处理方式为:源MAC为虚拟网关MAC地址,目的MAC为第二目标终端的MAC地址,出口(output)为连接第二目标终端的设备端口(即第二目标终端与末尾交换设备连接的端口)。相应的,第二目标终端收到的报文数据包含:源MAC为虚拟网关MAC地址,源IP为第一目标终端的IP地址,目的MAC为第二目标终端的MAC地址,目的IP为第二目标终端的IP地址。
可以理解的是,相较于传统网络中路由器进行转发时会在每一跳都修改源、目的MAC地址,而保持源、目的IP地址不变;在到达目的终端前的最后一跳,需将目的MAC地址修改为目的终端的MAC地址,才能保证目的终端正常接收该报文数据。本发明实施例中,将网络整体视为虚拟网关,在交换设备之间转发过程中,不需要频繁修改源、目的MAC地址,只在最右一跳即末尾交换设备转发报文时,修改源、目的MAC地址,可以网络更加轻便更加节能,同时还节约了硬件资源。
可选的,若SDN控制器识别到第一目标终端和第二目标终端连接在同一台交换设备上,即第一目标终端和第二目标终端均连接在首台交换设备上,则SDN控制器向首台交换设备下发流表,以使得首台交换设备将报文数据发送给第二目标终端;其中,流表的匹配域包含:源IP为第一目标终端的IP地址,目的IP为第二目标终端的IP地址,目的MAC为虚拟网关MAC地址;流表的处理方式为:源MAC为虚拟网关MAC地址,目的MAC为第二目标终端的MAC地址,出口(output)为连接第二目标终端的设备端口。相应的,首台交换设备依据该流表内的规则,将报文数据转发至第二目标终端。相应的,第二目标终端收到的报文数据包含:源MAC为虚拟网关MAC地址,源IP为第一目标终端的IP地址,目的MAC为第二目标终端的MAC地址,目的IP为第二目标终端的IP地址。
本发明实施例的技术方案,通过若确定第一目标终端具有向第二目标终端发送数据的需求,则为第一目标终端生成一个虚拟网关MAC地址,并发送至第一目标终端;确定第一目标终端向第二目标终端的通信链路上的目标交换设备;向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。通过上述技术方案,实现了SDN网络中的三层互通;通过虚拟网关MAC来模拟传统网关设备的网络行为,节约了硬件资源,使得网络更加轻便和节能;同时交换设备仅进行转发操作,交换设备无需计算终端通信链路并维护路由表,从而提升了网络效率。
实施例二
图2是本发明实施例二提供的一种报文转发方法的流程图,在上述实施例的基础上,进一步优化,提供一种可选实施方案。
如图2所示,该方法具体可以包括:
S210、向交换设备下发四条初始流表,以获取包含报文类型的报文数据。
其中,报文类型包括LLDP、BDDP、ARP及IPV4中的至少一种,初始流表的匹配域的报文类型字段分别为LLDP、BDDP、ARP及IPV4,初始流表的处理方式为上报到控制器。
本实施例中,三层虚拟网关模块进行初始化,向所有的交换设备下发四条初始流表,以使SDN控制器可以获取所有报文类型的数据包。例如,其中一条初始流表的匹配域为:报文类型为ARP(ETH TYPE:ARP);处理方式为:出口为控制器(output:controller)。相应的,网络中的所有交换设备会根据这个流表的规则,将收到的ARP协议的报文数据发送给SDN控制器中。
S220、获取互联终端的配置信息。
其中,互联终端是指需要进行通信的两个终端,例如本发明中的第一目标终端和第二目标终端;配置信息包括互联终端的IP地址和互联终端的网关IP地址,例如第一目标终端的IP地址和第一目标终端的网关IP地址,第二目标终端的IP地址和第二目标终端的网关IP地址。
本实施例中,用户可以通过SDN控制器的REST接口向SDN控制器下发互联终端的配置信息;相应的,SDN控制器可以获取互联终端的配置信息。
S230、若确定第一目标终端具有向第二目标终端发送数据的需求,则为第一目标终端生成一个虚拟网关MAC地址,并发送至第一目标终端。
本实施例中,当第一目标终端发起三层通信时(如通过互ping或者发送UDP、TCP报文时),由于第一目标终端和第二目标终端不在同一网段,因此第一目标终端会向与第一目标终端连接的首个交换设备发送ARP请求消息,其中,ARP请求消息中字段包括:源MAC为第一目标终端的MAC地址,源IP为第一目标终端的IP地址,目的MAC为0,目的IP为第一目标终端的网关IP地址。首个交换设备收到ARP请求消息后,将该ARP请求消息上报给控制器;相应的,SDN控制器中的三层虚拟网关模块若接收到首个交换设备转发的第一目标终端的ARP请求消息,且识别到ARP请求消息中目的IP地址为第二目标终端的IP地址,则确定第一目标终端具有向第二目标终端发送数据的需求;进而控制器为第一目标终端生成一个随机的虚拟网关MAC地址,并基于虚拟网关MAC地址,构造ARP回复消息,将该ARP回复消息通过首个交换设备的端口发送至第一目标终端,其中,ARP回复消息中包括:源MAC为虚拟网关MAC地址,源IP为第一目标终端的网关IP地址,目的MAC为第一目标终端的MAC地址,目的IP为第一目标终端的IP地址。
S240、若接收到首个交换设备转发的第一目标终端的ARP单播请求消息,则向第一目标终端反馈ARP回复消息,以使第一目标终端对虚拟网关MAC地址进行确认。
本实施例中,第一目标终端在接收到包含虚拟网关MAC地址的SDN控制器发送的ARP消息后,会再次发送ARP单播请求消息,对收到的虚拟网关MAC地址进行确定;其中,ARP单播请求消息包括:源MAC为第一目标终端的MAC地址,源IP为第一目标终端的IP地址,目的MAC为虚拟网关MAC地址,目的IP为第二目标终端的IP地址。
相应的,SDN控制器接收到首个交换设备转发的第一目标终端ARP单播请求消息,SDN控制器确定该ARP单播请求为单播,则直接向第一目标终端反馈ARP回复消息,其中该ARP回复消息包括:源MAC为虚拟网关MAC地址,源IP为第一目标终端的网关IP地址,目的MAC为第一目标终端的MAC地址,目的IP为第一目标终端的IP地址。
可以理解的是,第一目标终端向SDN控制器发送两次ARP请求消息,可以确保得到的虚拟网关MAC地址的准确性。
S250、确定第一目标终端向第二目标终端的通信链路上的目标交换设备。
S260、向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。
本发明实施例的技术方案,通过若确定第一目标终端具有向第二目标终端发送数据的需求,则为第一目标终端生成一个虚拟网关MAC地址,并发送至第一目标终端;确定第一目标终端向第二目标终端的通信链路上的目标交换设备;向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。通过上述技术方案,实现了SDN网络中的三层互通;通过虚拟网关MAC来模拟传统网关设备的网络行为,节约了硬件资源,使得网络更加轻便和节能;同时交换设备仅进行转发操作,交换设备无需计算终端通信链路并维护路由表,从而提升了网络效率。
实施例三
图3是本发明实施例三提供的一种报文转发装置的结构示意图,本实施例可适用于Mesh组网场景中利用SDN网络进行报文转发的情况,该装置可以由软件和/或硬件的方式实现,并可集成于承载报文转发功能的电子设备中,例如SDN控制器中。
如图3所示,该装置具体可以包括虚拟MAC地址生成模块310、目标交换设备确定模块320和流表下发模块330,其中,
虚拟MAC地址生成模块310,用于若确定第一目标终端具有向第二目标终端发送数据的需求,则为第一目标终端生成一个虚拟网关MAC地址,并发送至第一目标终端;
目标交换设备确定模块320,用于确定第一目标终端向第二目标终端的通信链路上的目标交换设备;
流表下发模块330,用于向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。
本发明实施例的技术方案,通过若确定第一目标终端具有向第二目标终端发送数据的需求,则为第一目标终端生成一个虚拟网关MAC地址,并发送至第一目标终端;确定第一目标终端向第二目标终端的通信链路上的目标交换设备;向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。通过上述技术方案,实现了SDN网络中的三层互通;通过虚拟网关MAC来模拟传统网关设备的网络行为,节约了硬件资源,使得网络更加轻便和节能;同时交换设备仅进行转发操作,交换设备无需计算终端通信链路并维护路由表,从而提升了网络效率。
进一步地,虚拟MAC地址生成模块310具体用于:
若接收到首个交换设备转发的第一目标终端的ARP请求消息,且识别到ARP请求消息中目的IP地址为第二目标终端的IP地址,则确定第一目标终端具有向第二目标终端发送数据的需求。
进一步地,该装置还包括消息反馈模块,该消息反馈模块具体用于:
若接收到首个交换设备转发的第一目标终端的ARP单播请求消息,则向第一目标终端反馈ARP回复消息,以使第一目标终端对虚拟网关MAC地址进行确认。
进一步地,该装置还包括配置信息获取模块,该配置信息获取模块具体用于:
获取互联终端的配置信息;配置信息包括互联终端的IP地址和互联终端的网关IP地址。
进一步地,流表下发模块330还用于:
向交换设备下发四条初始流表,以获取包含报文类型的报文数据;报文类型包括LLDP、BDDP、ARP及IPV4中的至少一种,初始流表的匹配域的报文类型字段分别为LLDP、BDDP、ARP及IPV4,初始流表的处理方式为上报到控制器。
上述报文转发装置可执行本发明任意实施例所提供的报文转发方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四提供的一种电子设备的结构示意图,图4示出了适于用来实现本发明实施例实施方式的示例性设备的框图。图4显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器(高速缓存32)。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如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系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的报文转发方法。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行本发明实施例所提供的报文转发方法,该方法包括:
若确定第一目标终端具有向第二目标终端发送数据的需求,则为第一目标终端生成一个虚拟网关MAC地址,并发送至第一目标终端;
确定第一目标终端向第二目标终端的通信链路上的目标交换设备;
向目标交换设备下发流表,以使目标交换设备之间基于流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及目标交换设备中的末尾交换设备基于流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,目标交换设备中的首个交换设备与第一目标终端相连接。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (8)

1.一种报文转发方法,其特征在于,包括:
若确定第一目标终端具有向第二目标终端发送数据的需求,则为所述第一目标终端生成一个虚拟网关MAC地址,并发送至所述第一目标终端;
确定所述第一目标终端向所述第二目标终端的通信链路上的目标交换设备,其中,所述目标交换设备是指实现所述第一目标终端和所述第二目标终端通信的最短链路上的交换设备;
向所述目标交换设备下发流表,以使所述目标交换设备之间基于所述流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及所述目标交换设备中的末尾交换设备基于所述流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,所述目标交换设备中的首个交换设备与所述第一目标终端相连接;
所述确定第一目标终端具有向第二目标终端发送数据的需求,包括:
若接收到首个交换设备转发的第一目标终端的ARP请求,且识别到所述ARP请求中目的IP地址为第二目标终端的IP地址,则确定第一目标终端具有向第二目标终端发送数据的需求。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第一目标终端向所述第二目标终端的通信链路上的目标交换设备之前,还包括:
若接收到首个交换设备转发的第一目标终端的ARP单播请求消息,则向第一目标终端反馈ARP回复消息,以使所述第一目标终端对所述虚拟网关MAC地址进行确认。
3.根据权利要求1所述的方法,其特征在于,所述若确定第一目标终端具有向第二目标终端发送数据的需求,则为所述第一目标终端生成一个虚拟网关MAC地址,并发送至所述第一目标终端之前,还包括:
获取互联终端的配置信息;所述配置信息包括互联终端的IP地址和互联终端的网关IP地址。
4.根据权利要求1所述的方法,其特征在于,所述若确定第一目标终端具有向第二目标终端发送数据的需求,则为所述第一目标终端生成一个虚拟网关MAC地址,并发送至所述第一目标终端之前,还包括:
向交换设备下发四条初始流表,以获取包含报文类型的报文数据;所述报文类型包括LLDP、BDDP、ARP及IPV4中的至少一种,所述初始流表的匹配域的报文类型字段分别为LLDP、BDDP、ARP及IPV4,所述初始流表的处理方式为上报到控制器。
5.一种报文转发装置,其特征在于,包括:
虚拟MAC地址生成模块,用于若确定第一目标终端具有向第二目标终端发送数据的需求,则为所述第一目标终端生成一个虚拟网关MAC地址,并发送至所述第一目标终端;
目标交换设备确定模块,用于确定所述第一目标终端向所述第二目标终端的通信链路上的目标交换设备,其中,所述目标交换设备是指实现所述第一目标终端和所述第二目标终端通信的最短链路上的交换设备;
流表下发模块,用于向所述目标交换设备下发流表,以使所述目标交换设备之间基于所述流表中提供的接口通信方式转发第一目标终端向第二目标终端发送的报文数据,以及所述目标交换设备中的末尾交换设备基于所述流表中的源MAC地址和目的MAC地址向所述第二目标终端转发所述报文数据;所述源MAC地址为虚拟网关MAC地址,所述目的MAC地址为所述第二目标终端的MAC地址;其中,所述目标交换设备中的首个交换设备与所述第一目标终端相连接;
所述虚拟MAC地址生成模块具体用于:若接收到首个交换设备转发的第一目标终端的ARP请求,且识别到所述ARP请求中目的IP地址为第二目标终端的IP地址,则确定第一目标终端具有向第二目标终端发送数据的需求。
6.根据权利要求5所述的装置,其特征在于,还包括:
消息反馈模块,用于若接收到首个交换设备转发的第一目标终端的ARP单播请求消息,则向第一目标终端反馈ARP回复消息,以使所述第一目标终端对所述虚拟网关MAC地址进行确认。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一项所述的报文转发方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的报文转发方法。
CN202110935461.8A 2021-08-16 2021-08-16 一种报文转发方法、装置、电子设备以及存储介质 Active CN113676409B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110935461.8A CN113676409B (zh) 2021-08-16 2021-08-16 一种报文转发方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110935461.8A CN113676409B (zh) 2021-08-16 2021-08-16 一种报文转发方法、装置、电子设备以及存储介质

Publications (2)

Publication Number Publication Date
CN113676409A CN113676409A (zh) 2021-11-19
CN113676409B true CN113676409B (zh) 2023-04-18

Family

ID=78543034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110935461.8A Active CN113676409B (zh) 2021-08-16 2021-08-16 一种报文转发方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113676409B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114710795B (zh) * 2022-06-06 2022-08-26 希诺麦田技术(深圳)有限公司 无线自组网的arp表优化方法、设备及应用

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105450532A (zh) * 2014-09-28 2016-03-30 杭州华三通信技术有限公司 软件定义网络中的三层转发方法及装置
CN108881013A (zh) * 2018-06-29 2018-11-23 新华三技术有限公司 控制网关模式的方法、系统、sdn控制器和接入设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905577A (zh) * 2012-12-28 2014-07-02 中兴通讯股份有限公司 一种地址解析协议报文的处理方法和系统
CN104202266B (zh) * 2014-08-04 2017-06-23 福建星网锐捷网络有限公司 一种通信方法、交换机、控制器及通信系统
US10075393B2 (en) * 2015-12-31 2018-09-11 Fortinet, Inc. Packet routing using a software-defined networking (SDN) switch

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105450532A (zh) * 2014-09-28 2016-03-30 杭州华三通信技术有限公司 软件定义网络中的三层转发方法及装置
CN108881013A (zh) * 2018-06-29 2018-11-23 新华三技术有限公司 控制网关模式的方法、系统、sdn控制器和接入设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Piyush Raman Srivastava."Networking agent for overlay L2 routing and overlay to underlay external networks L3 routing using OpenFlow and Open vSwitch".《2015 17th Asia-Pacific Network Operations and Management Symposium (APNOMS)》.2015,全文. *

Also Published As

Publication number Publication date
CN113676409A (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
US10129137B2 (en) Transferring data in a gateway
CN111131037B (zh) 基于虚拟网关的数据传输方法、装置、介质与电子设备
CA2968964C (en) Source ip address transparency systems and methods
US10841275B2 (en) Method and apparatus for reducing IP addresses usage of NVME over fabrics devices
US20150188802A1 (en) System for supporting multi-tenant based on private ip address in virtual private cloud networks and operating method thereof
CN112040030B (zh) 报文传输方法、装置、计算机设备及存储介质
CN112333298B (zh) 报文传输方法、装置、计算机设备及存储介质
US10313302B2 (en) Methods for NAT (network address translation) traversal and systems using the same
CN110012118B (zh) 一种提供网络地址转换nat服务的方法及控制器
US10742545B2 (en) Multicasting system
CN113676409B (zh) 一种报文转发方法、装置、电子设备以及存储介质
US10938721B2 (en) Hash collision mitigation system
CN109818869B (zh) 组播流量转发端口的生成方法及相关设备
CN113452778A (zh) 会话保持方法、装置、设备、系统及存储介质
US20090292796A1 (en) Method and device for providing routing policies to user terminals according to applications executed on user terminals
WO2017036384A1 (zh) 运营商边缘设备及数据转发方法
US9667540B2 (en) Fiber channel over ethernet (FCoE) frame forwarding system
CN108234325B (zh) 基于ip任播的系统及报文转发方法
US20100238930A1 (en) Router and method of forwarding ipv6 packets
WO2022089412A1 (zh) 一种通信方法及装置
US7149794B1 (en) Tracing layer-2 route in networks based on broadcast medium
WO2021196963A1 (zh) 信息同步方法、终端及信息同步系统
US9258223B1 (en) Packet routing in a network address translation network
CN112367261A (zh) 一种报文转发方法及装置、分布式设备
US20200244617A1 (en) Address Resolution System

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