CN104301238A - 一种报文处理方法、装置及系统 - Google Patents
一种报文处理方法、装置及系统 Download PDFInfo
- Publication number
- CN104301238A CN104301238A CN201410553998.8A CN201410553998A CN104301238A CN 104301238 A CN104301238 A CN 104301238A CN 201410553998 A CN201410553998 A CN 201410553998A CN 104301238 A CN104301238 A CN 104301238A
- Authority
- CN
- China
- Prior art keywords
- openflow switch
- source mac
- rule
- request message
- arp request
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文处理方法,装置及系统。所述方法包括:接收第一OpenFlow交换机上报的ARP请求报文;获取所述ARP请求报文中的目的IP,以及源MAC地址;从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口;并,在确定所述OpenFlow交换机端口所在的第二OpenFlow交换机中存在合理的与所述源MAC地址对应的流表转发规则时,将所述ARP请求报文转发至所述OpenFlow交换机端口。通过本发明的方法,无需处理ARP回应报文和将ARP请求报文泛洪至所有的端口,可以避免产生大量的广播报文,能够提高局域网的带宽利用率、通信吞吐量和性能。
Description
技术领域
本发明涉及无线通信领域,尤其涉及一种报文处理方法,装置及系统。
背景技术
在采用以太网技术构建的局域网中,一个主机A(源主机)要和另一个位于同一IP(Internet Protocol,互联网协议)网段的主机B(目的主机)进行直接通信,首先要获取目的主机B的MAC地址。为了获取目的主机B的MAC地址,源主机A将产生一个ARP(Address Resolution Protocol,地址解析协议)请求报文(ARP Request),ARP请求报文的目的IP字段为目的主机B的IP,目的MAC地址为空(全0),而ARP请求报文的源IP和源MAC地址字段则分别为源主机A的IP地址和MAC地址,并把这个报文封装在一个以太网的广播帧(目的MAC地址为FF:FF:FF:FF:FF:FF)中通过网卡发送出去。与主机A相连的以太网交换机收到这个以太网帧,按照以太网协议的转发约定,把该广播帧往除来源端口外的所有端口转发出去,如果有其他以太网交换机与这台交换机相连,则其他以太网交换机也会收到该广播帧并把其往接收端口外的所有端口转发出去。如果目的主机B与这些以太网交换机中的一台相连,则其就会收到该ARP请求报文。收到该ARP请求报文后,主机B解析ARP请求报文并确定请求的目的IP为自身时,则会构造一个ARP回应报文(ARPReply),ARP回应报文的目的IP字段为主机A的IP,目的MAC地址为主机A的MAC地址,而请求报文的源IP和源MAC地址字段则为主机B的IP地址和MAC地址。目的主机B构造好ARP回应报文后并把这个报文封装在一个以太网的单播帧(目的MAC地址为主机A的MAC地址)中通过网卡发送出去。从而主机A获取到了主机B的MAC地址,然后主机A便可以与主机B通信。
如图1所示,为现有技术中一个典型的局域网架构的示意图。在图1所示的局域网中,以太网交换机具备学习MAC地址和端口的映射关系的能力。此时,在图1所示的局域网中,当位于192.168.1.0/24网段上的主机与同网段的主机通信无需经过路由器,其首先产生并发出一个ARP请求报文,由与其直接相连的以太网交换机转发到除来源端口的所有端口(假设其他端口都处于同一个VLAN)。如果有匹配目的IP的主机收到该广播的ARP请求报文,则产生并发出一个ARP回应报文,并由以太网交换机根据之前学到的MAC地址与端口的映射表转发到源主机所在的端口,以使源主机能够获得目的主机的MAC地址,以便于与目的主机通信。
然而,上述ARP报文的处理方法会带来大量的广播报文流量:具体的,上述ARP报文处理方法中会产生大量的ARP请求报文,在一个网段内主机之间通信频繁的情况下会影响局域网的吞吐量和转发性能。例如,在一个有65025台主机的IP子网中,这些主机两两之间的通信都会产生ARP请求报文,并由以太网交换机泛洪到其他端口,使得局域网的通信吞吐量和性能都较低。
发明内容
本发明的目的是提供一种报文处理方法,装置及系统,以克服相关技术中泛洪ARP请求报文,导致大量的广播报文流量,影响局域网的通信吞吐量和性能的问题。
本发明提供一种报文处理方法,包括:
接收第一OpenFlow交换机上报的地址解析协议ARP请求报文;
获取所述ARP请求报文中的目的互联网协议IP,以及源MAC地址;
从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口;并,
在确定所述OpenFlow交换机端口所在的第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理时,将所述ARP请求报文转发至所述OpenFlow交换机端口;其中,所述流表转发规则用于指示所述第二OpenFlow交换机在接收到针对所述源MAC地址的ARP回应报文时,根据所述流表转发规则将所述ARP回应报文转发至相应端口,所述相应端口为通向所述源MAC地址对应的源主机的端口。
其中,所述获取所述ARP请求报文中的目的IP,以及源MAC地址之后,所述方法还包括:
针对任一下连的OpenFlow交换机,当确定该OpenFlow交换机未接收到与所述源MAC地址对应的流表转发规则时,或当确定该OpenFlow交换机中安装的与所述源MAC地址对应的流表转发规则已失效时,确定该OpenFlow交换机与源MAC地址对应的源主机之间的第一转发路径;并,
根据所述第一转发路径生成与所述源MAC地址对应的流表转发规则,并向该OpenFlow交换机下发生成的与所述源MAC地址对应的流表转发规则。
其中,所述从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口之后,所述方法还包括:
当在所述映射表中查询到与所述目的IP对应的OpenFlow交换机端口时,确定查询到的所述OpenFlow交换机端口与所述源MAC地址对应的源主机之间的,用于转发回应所述源MAC地址的ARP请求报文的ARP回应报文的第二转发路径;并向所述第二转发路径上的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则;
当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
其中,所述方法还包括:
当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,将所述ARP请求报文转发至除所述ARP请求报文的来源端口以及内部端口之外的其他端口,所述内部端口为OpenFlow交换机之间进行直接连接的端口。
其中,所述方法还包括:
根据所述ARP请求报文中的源IP和发送所述ARP请求报文的主机所在的OpenFlow交换机端口,更新所述映射表。
另一方面,本发明还提供一种报文处理装置,所述装置包括:
ARP请求接收模块,用于接收第一OpenFlow交换机上报的地址解析协议ARP请求报文;
ARP请求分析模块,用于获取所述ARP请求报文中的目的互联网协议IP,以及源MAC地址;
端口查询模块,用于获取所述ARP请求报文中的目的互联网协议IP,以及源MAC地址;
ARP请求转发模块,用于在确定所述OpenFlow交换机端口所在的第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理时,将所述ARP请求报文转发至所述OpenFlow交换机端口;其中,所述流表转发规则用于指示所述第二OpenFlow交换机在接收到针对所述源MAC地址的ARP回应报文时,根据所述流表转发规则将所述ARP回应报文转发至相应端口,所述相应端口为通向所述源MAC地址对应的源主机的端口。
其中,所述装置还包括:
转发路径确定模块,用于所述ARP请求分析模块获取所述ARP请求报文中的目的IP,以及源MAC地址之后,针对任一下连的OpenFlow交换机,当确定该OpenFlow交换机未接收到与所述源MAC地址对应的流表转发规则时,或当确定该OpenFlow交换机中安装的与所述源MAC地址对应的流表转发规则已失效时,确定该OpenFlow交换机与源MAC地址对应的源主机之间的第一转发路径;
第一流表规则下发模块,用于根据所述第一转发路径生成与所述源MAC地址对应的流表转发规则,并向该OpenFlow交换机下发生成的与所述源MAC地址对应的流表转发规则。
其中,所述装置还包括:
第二流表规则下发模块,用于所述端口查询模块从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口之后,当在所述映射表中查询到与所述目的IP对应的OpenFlow交换机端口时,确定查询到的所述OpenFlow交换机端口与所述源MAC地址对应的源主机之间的,用于转发回应所述源MAC地址的ARP请求报文的ARP回应报文的第二转发路径;并向所述第二转发路径上的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则;
第三流表规则下发模块,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
其中,所述装置还包括:
泛洪模块,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,将所述ARP请求报文转发至除所述ARP请求报文的来源端口以及内部端口之外的其他端口,所述内部端口为OpenFlow交换机之间进行直接相连的端口。
其中,所述装置还包括:
映射表更新模块,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
再一方面,本发明还提供一种报文处理系统,包括SDN(Software DefinedNetwork,软件定义网络)控制器、管理设备、OpenFlow交换机和主机:
所述SDN控制器与所述管理设备连接,并通过所述管理设备下连所述OpenFlow交换机,其中,所述SDN控制器通过所述管理设备控制所述OpenFlow交换机,所述SDN控制器包括上述装置中的任一所述的装置;
所述OpenFlow交换机下连主机。
本发明至少具有以下有益效果:通过当SDN控制器接收到ARP请求报文后,根据维护的映射表转发该ARP请求报文至目的主机所在的OpenFlow交换机端口,无需将ARP请求报文泛洪给所有的端口,避免产生大量的广播报文流量,从而能够提高局域网的的带宽利用率、通信吞吐量和性能。此外,SDN控制器仅转发ARP请求报文,由于转发处理简单,使得SDN控制器能够及时、高效的处理ARP请求报文,提高ARP请求报文的处理效率,进而能够实现源主机和目的主机能够快速建立连接进行通信,从而降低通信延迟并提高局域网的转发效率,从而能够进一步提升局域网的性能和吞吐量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
图1为现有技术中局域网架构的示意图;
图2为本发明实施例中报文处理系统的示意图;
图3为本发明实施例中报文处理方法的示例性流程图;
图4为本发明实施例中报文处理方法的另一示例性流程图;
图5为本发明实施例中报文处理装置的示意图;
图6为本发明实施例中报文处理装置的另一示意图。
具体实施方式
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明实施例提供一种报文处理系统,该系统中包括SDN控制器、管理设备、OpenFlow交换机和主机,其中,所述SDN控制器与所述管理设备连接,并通过所述管理设备下连所述OpenFlow交换机,其中,所述SDN控制器通过所述管理设备控制所述OpenFlow交换机;所述OpenFlow交换机下连主机。该系统的示意图如图2所示:其中,SDN控制器可以下连至少一台OpenFlow交换机,一台OpenFlow交换机可以下连至少一台主机。
其中,在一个实施例中,以太网交换机可以作为管理设备,以太网交换机通过管理通路与SDN控制器相连,SDN控制器通过以太网交换机下连并控制OpenFlow交换机;OpenFlow交换机下连主机。
基于上述的报文处理系统,本发明实施例提供一种报文处理方法,在本发明实施例提供的报文处理方法中,OpenFlow交换机在接收到主机发送的ARP请求报文后,将该ARP请求报文上报给SDN控制器;SDN控制器中预先维护有IP与OpenFlow交换机端口的映射表,该OpenFlow交换机端口用于下连主机,因此,该映射表用于确定映射表中的IP对应的主机所在的OpenFlow交换机端口;当SDN控制器接收到ARP请求报文后,会根据维护的映射表查找出目的IP的主机所在的OpenFlow交换机端口,将该ARP请求报文转发至该端口,从而不必将ARP请求报文泛洪给所有的端口,避免产生大量的广播报文流量,从而能够提高局域网的通信吞吐量和性能。此外,SDN控制器仅转发ARP请求报文,由于转发处理简单,使得SDN控制器能够及时有效的处理ARP请求报文,提高ARP请求报文的处理效率,进而能够实现源主机和目的主机能够快速建立连接进而进行通信,从而节约出时间和资源以便于整个局域网有时间和资源处理其他事件,从而能够进一步提升局域网的性能和吞吐量。此外,本发明实施例中,SDN控制器并不转发和生成ARP回应报文,能够进一步降低SDN控制器的处理负担,从而节约资源。下面对本发明实施例提供的报文处理方法进行详细说明。
实施例一
基于上述的报文处理系统,本发明实施例中提供的报文处理方法,如图3所示,该方法包括以下步骤:
步骤301:接收第一OpenFlow交换机上报的ARP请求报文。
步骤302:获取所述ARP请求报文中的目的IP,以及源MAC地址。
步骤303:从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口。
其中,映射表中有至少一条记录,每一条记录中包含一个IP和一个OpenFlow交换机端口的对应关系。其中,在每一条记录中,OpenFlow交换机端口为使用与该端口对应的IP的主机所在的OpenFlow交换机上的端口。
步骤304:在确定所述OpenFlow交换机端口所在的第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理时,将所述ARP请求报文转发至所述OpenFlow交换机端口;其中,所述流表转发规则用于指示所述第二OpenFlow交换机在接收到针对所述源MAC地址的ARP回应报文时,根据所述流表转发规则将所述ARP回应报文转发至相应端口,所述相应端口为通向所述源MAC地址对应的源主机的端口。
其中,在一个实施例中,确定所述OpenFlow交换机端口所在的第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理包括以下两种情况:一是,当确定第二OpenFlow交换机中不存在与源MAC地址对应的流表转发规则时,则下发该流表转发规则给第二OpenFlow交换机,并将确定第二OpenFlow交换机接收到该流表转发规则视为第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理;二是,将确定第二OpenFlow交换机中存在与源MAC地址对应的流表转发规则,且该流表转发规则有效视为第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理,其中,流表转发规则有效,例如是该流表转发规则的接收时间与当前时间的时间差小于或等于第一预设时长。
其中,在一个实施例中,每一个流表转发规则中至少包括目的MAC地址,该目的MAC地址为源主机的源MAC地址,对匹配该流表的目的MAC地址的报文的动作为转发,以及转发的目的端口。例如,一OpenFlow上安装有与源MAC地址对应的流表转发规则,则该交换机根据该流表转发规则执行相应操作的方法为:当接收到ARP回应报文时,判断该ARP回应报文中的目的MAC地址与流表转发规则中的目的MAC地址是否匹配,若是时,则向该流表转发规则中的目的端口转发该ARP回应报文,以使该ARP回应报文能够传输至与该目的端口连接的主机或另一OpenFlow交换机中。
其中,在一个实施例中,可以通过以下两种方式下发与源MAC地址对应的流表转发规则:
方式一:在步骤302之后,且步骤303之前,向所有OpenFlow交换机下发与源MAC地址对应的流表转发规则,具体的,可执行为:针对任一下连的OpenFlow交换机,当确定该OpenFlow交换机未接收到与所述源MAC地址对应的流表转发规则时,或当确定该OpenFlow交换机中安装的与所述源MAC地址对应的流表转发规则已失效时,确定该OpenFlow交换机与源MAC地址对应的源主机之间的第一转发路径;并,根据所述第一转发路径生成与所述源MAC地址对应的流表转发规则,并向该OpenFlow交换机下发生成的与所述源MAC地址对应的流表转发规则。
其中,在方式一中,每一个OpenFlow交换机对应一个与源MAC地址对应的流表转发规则。在不同OpenFlow交换机中,针对同一源MAC地址的流表转发规则的不同,在于执行转发动作时的目的端口不同。因此,针对每一个源MAC地址,每一个交换机都有自己的相应的流表转发规则。
其中,在一个实施例中,确定的第一转发路径可以是包含最少数量的OpenFlow交换机的转发路径。例如,主机B与标记为A3的OpenFlow交换机相连,若标记为A的OpenFlow交换机与主机B通信,可以有两种路径:路径一是,依次经过标记分别为A2、A4、A3的OpenFlow交换机与主机B通信;路径二是,依次经过标记分别为A2、A3的OpenFlow交换机与主机B通信,则因路径二包含的OpenFlow交换机的数量最少,则将路径二视为标记为A的OpenFlow交换机与主机B之间的第一转发路径。
综上,在方式一中,通过将与源MAC地址对应的流表转发规则下发给所有下连的OpenFlow交换机,使得每一个OpenFlow交换机中安装有针对该源MAC地址的流表转发规则,以便于任意一个OpenFlow交换机当收到针对该源MAC地址的ARP回应报文时都能够及时有效的根据该流表转发规则进行处理,将针对源MAC地址的ARP回应顺利转发至与源MAC地址对应的源主机中,以便于源主机能够及时获得目的主机的MAC地址并和目的主机通信。在与源MAC地址对应的流表转发规则失效时,重新下发该流表转发规则从而能够保证该流表转发规则的及时和有效性,以便于能够准确的处理ARP回应报文,将ARP回应报文转发至正确的源主机上。
方式二:在步骤303之后,且步骤304之前,根据查询结果有针对性的下发与源MAC地址对应的流表转发规则,具体的,可执行为:
当在所述映射表中查询到与所述目的IP对应的OpenFlow交换机端口时,确定查询到的所述OpenFlow交换机端口与所述源MAC地址对应的源主机之间的,用于转发回应所述源MAC地址的ARP请求报文的ARP回应报文的第二转发路径;并向所述第二转发路径上的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则;
当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
其中,第二转发路径的确定方法可以与第一转发路径的确定方法相同,在此不再赘述。
其中,在方式二中,与方式一中相同,每一个OpenFlow交换机对应一个与源MAC地址对应的流表转发规则,在此不再赘述。
综上,在方式二中,通过每次都下发与源MAC地址对应的流表转发规则能够保证该流表转发规则的及时性和有效性;通过根据查询结果有针对性的下发与源MAC地址对应的流表转发规则,从而在映射表中查询到结果时,可以将与源MAC地址对应的流表转发规则发生给必要的OpenFlow交换机。而不需要下发与源MAC地址对应的流表转发规则给无需转发ARP回应请求的OpenFlow交换机,从而节省了SDN控制器下发与源MAC地址对应的流表转发规则的次数,降低SDN控制器的资源消耗。当在映射表中未查询到结果时,由SDN控制器向所有下连的OpenFlow交换机下发各自的与源MAC地址对应的流表转发规则,从而保证在任意的一台OpenFlow交换机在收到针对源MAC地址的ARP回应报文时,都能够及时有效的处理该报文,将其转发给源MAC地址所在的目的主机。
其中,在一个实施例中,当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,将所述ARP请求报文转发至除所述ARP请求报文的来源端口以及内部端口之外的其他端口,所述内部端口为OpenFlow交换机之间进行直接相连的端口。例如标记为A1的OpenFlow交换机与标记为A2的OpenFlow交换机直接相连,则连接A1和A2两OpenFlow交换机的端口为内部端口。由此,通过由SDN控制器泛洪该ARP请求报文,以便于能够及时的处理ARP请求报文,以便于目的主机在接收到该ARP请求报文时能够及时发出ARP回应报文,并由与目的主机相连的OpenFlow交换机根据与源MAC地址对应的流表转发规则转发该ARP回应报文。此外,不像来源端口和内部端口转发
其中,在一个实施例中,实际应用中,网络中的IP和OpenFlow交换机端口的对应关系可能会改变,例如主机更换了OpenFlow交换机端口等导致该对应关系的改变。因此,SDN控制器中维护的映射表需要更新,具体的更新的方法可执行为:根据所述ARP请求报文中的源IP和发送所述ARP请求报文的主机所在的OpenFlow交换机端口,更新所述映射表。
此外,当在映射表中查询不到ARP请求报文中的目的IP对应的OpenFlow交换机端口时,需要泛洪该ARP请求报文,即前述将所述ARP请求报文转发至除所述ARP请求报文的来源端口以及内部端口之外的其他端口,这说明映射表不完善,需要添加该目的IP和OpenFlow交换机端口的对应关系,而此时,可以将该ARP请求报文中的目的IP存储起来,并在泛洪该ARP请求报文之前或同时,重新向所有下连的OpenFlow交换机下发针对该ARP请求报文中的源MAC地址的流表转发规则,该规则中要求OpenFlow交换机在接收到针对该源MAC地址的ARP回应报文时,将该ARP回应报文转发给通往源主机的端口同时,将该ARP回应报文上报给SDN控制器。当SDN控制器收到该ARP回应报文时,可以根据预先存储的IP确定出需要将该ARP回应报文中的源IP(即预先存储的IP)和发送该ARP回应报文的主机所在的OpenFlow交换机端口更新至映射表中,从而进一步保证映射表的完整性和准确性。
通过根据ARP请求报文和/或ARP请求报文及时的更新映射表中,IP与OpenFlow交换机端口的映射关系,能够及时的标准映射表的实时性和准确性,还可以应对交换机端口所连接主机变更的情况。
其中,在一个实施例中,SDN控制器中维护的映射表还可以定期老化,具体的,可执行为:删除所述映射表中超过第二预设时长仍未更新的记录。通过定期老化删除映射表中的记录,可以保证映射表的准确性。
综上,本发明实施例中当SDN控制器接收到ARP请求报文后,会根据维护的映射表转发该ARP请求报文至目的主机所在的OpenFlow交换机端口,从而不必将ARP请求报文泛洪给所有的端口,避免产生大量的广播报文流量,从而能够提高局域网的通信吞吐量和性能。此外,SDN控制器仅转发ARP请求报文,由于转发处理简单,使得SDN控制器能够及时有效的处理ARP请求报文,提高ARP请求报文的处理效率,进而能够实现源主机和目的主机能够快速建立连接进行通信,从而节约出时间和资源以便于整个局域网有时间和资源处理其他事件,从而能够进一步提升局域网的性能和吞吐量。通过下发流表转发规则,使得由OpenFlow交换机将ARP回应报文转发至源主机,使得ARP回应报文由OpenFlow交换机处理。而针对ARP回应报文,SDN控制器仅用于下发针对源MAC地址的流表转发规则,从而进一步降低SDN控制器的处理负担,节约处理资源。
下面通过一简单实施例,对本发明实施例中报文处理方法进行详细说明。
实施例二
如图4所示,以同一网段中的主机A请求主机B的MAC地址为例,对本发明实施例中报文处理方法进行详细说明,该方法包括以下步骤:
步骤401:主机A生成一个ARP请求报文,该ARP请求报文中的目的IP为主机B的IP。
步骤402:下连主机A的OpenFlow交换机F1收到主机A发送的ARP请求报文后,将该ARP请求报文上报给SDN控制器。
步骤403:SDN控制器接收OpenFlow交换机F1上报的ARP请求报文。
步骤404:SDN控制器获取ARP请求报文中的目的IP,以及主机A的MAC地址。
步骤405:针对任一下连的OpenFlow交换机,SDN控制器当确定该OpenFlow交换机中未接收到与主机A的MAC地址对应的流表转发规则时,或当确定该OpenFlow交换机中安装的与主机A的MAC地址对应的流表转发规则已失效时,向该OpenFlow交换机下发相应的与主机A的MAC地址对应的流表转发规则。
步骤406:SDN控制器从维护的IP与OpenFlow交换机端口的映射表中,查询到与目的IP对应的OpenFlow交换机端口。
步骤407:SDN控制器在确定所述OpenFlow交换机端口所在的OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理时,将ARP请求报文转发至所述OpenFlow交换机端口。
步骤408:主机B通过与目的IP对应的OpenFlow交换机端口接收到ARP请求报文后,生成并发送ARP回应报文,该ARP回应报文中目的MAC地址为主机A的MAC地址。
步骤409:下连主机B的OpenFlow交换机F2接收并安装SDN控制器下发的与主机A的MAC地址对应的流表转发规则,并在接收到主机B的ARP回应报文时,确定该ARP回应报文中的目的MAC地址与流表转发规则中的目的MAC地址匹配时,根据该流表转发规则将该ARP回应报文转发给目的端口,该目的端口与OpenFlow交换机F3相连。
步骤410:OpenFlow交换机F3接收并安装SDN控制器下发的与主机A的MAC地址对应的流表转发规则,并在接收到OpenFlow交换机F2发送来的ARP回应报文时,确定该ARP回应报文中的目的MAC地址与流表转发规则中的目的MAC地址匹配时,根据该流表转发规则将该ARP回应报文转发给目的端口,该目的端口与OpenFlow交换机F1相连。
步骤411:OpenFlow交换机F1接收并安装SDN控制器下发的与主机A的MAC地址对应的流表转发规则,并在接收到OpenFlow交换机F3发送来的ARP回应报文时,确定该ARP回应报文中的目的MAC地址与流表转发规则中的目的MAC地址匹配时,根据该流表转发规则将该ARP回应报文转发给目的端口,即与主机A相连的端口。
步骤412:主机A获取到ARP回应报文后,从该ARP回应报文中获得主机B的MAC地址。
相应的,基于上述的方法,本发明实施例还提供一种报文处理装置,如图5所示,所述装置包括:
ARP请求接收模块501,用于接收第一OpenFlow交换机上报的地址解析协议ARP请求报文;
ARP请求分析模块502,用于获取所述ARP请求报文中的目的互联网协议IP,以及源MAC地址;
端口查询模块503,用于获取所述ARP请求报文中的目的互联网协议IP,以及源MAC地址;
ARP请求转发模块504,用于在确定所述OpenFlow交换机端口所在的第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理时,将所述ARP请求报文转发至所述OpenFlow交换机端口;其中,所述流表转发规则用于指示所述第二OpenFlow交换机在接收到针对所述源MAC地址的ARP回应报文时,根据所述流表转发规则将所述ARP回应报文转发至相应端口,所述相应端口为通向所述源MAC地址对应的源主机的端口。
其中,在一个实施例中,如图6所示,所述装置还包括:
转发路径确定模块505,用于所述ARP请求分析模块获取所述ARP请求报文中的目的IP,以及源MAC地址之后,针对任一下连的OpenFlow交换机,当确定该OpenFlow交换机未接收到与所述源MAC地址对应的流表转发规则时,或当确定该OpenFlow交换机中安装的与所述源MAC地址对应的流表转发规则已失效时,确定该OpenFlow交换机与源MAC地址对应的源主机之间的第一转发路径;
第一流表规则下发模块506,用于根据所述第一转发路径生成与所述源MAC地址对应的流表转发规则,并向该OpenFlow交换机下发生成的与所述源MAC地址对应的流表转发规则。
其中,在一个实施例中,如图6所示,所述装置还包括:
第二流表规则下发模块507,用于所述端口查询模块从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口之后,当在所述映射表中查询到与所述目的IP对应的OpenFlow交换机端口时,确定查询到的所述OpenFlow交换机端口与所述源MAC地址对应的源主机之间的,用于转发回应所述源MAC地址的ARP请求报文的ARP回应报文的第二转发路径;并向所述第二转发路径上的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则;
第三流表规则下发模块508,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
其中,在一个实施例中,如图6所示,所述装置还包括:
泛洪模块509,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,将所述ARP请求报文转发至除所述ARP请求报文的来源端口以及内部端口之外的其他端口,所述内部端口为OpenFlow交换机之间进行直接相连的端口。
其中,在一个实施例中,如图6所示,所述装置还包括:
映射表更新模块510,映射表更新模块,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
关于上述的报文处理系统,其中SDN控制器可以包括上述的任一装置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种报文处理方法,其特征在于,所述方法包括:
接收第一OpenFlow交换机上报的地址解析协议ARP请求报文;
获取所述ARP请求报文中的目的互联网协议IP,以及源MAC地址;
从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口;并,
在确定所述OpenFlow交换机端口所在的第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理时,将所述ARP请求报文转发至所述OpenFlow交换机端口;其中,所述流表转发规则用于指示所述第二OpenFlow交换机在接收到针对所述源MAC地址的ARP回应报文时,根据所述流表转发规则将所述ARP回应报文转发至相应端口,所述相应端口为通向所述源MAC地址对应的源主机的端口。
2.根据权利要求1所述的方法,其特征在于,所述获取所述ARP请求报文中的目的IP,以及源MAC地址之后,所述方法还包括:
针对任一下连的OpenFlow交换机,当确定该OpenFlow交换机未接收到与所述源MAC地址对应的流表转发规则时,或当确定该OpenFlow交换机中安装的与所述源MAC地址对应的流表转发规则已失效时,确定该OpenFlow交换机与源MAC地址对应的源主机之间的第一转发路径;并,
根据所述第一转发路径生成与所述源MAC地址对应的流表转发规则,并向该OpenFlow交换机下发生成的与所述源MAC地址对应的流表转发规则。
3.根据权利要求1所述的方法,其特征在于,所述从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口之后,所述方法还包括:
当在所述映射表中查询到与所述目的IP对应的OpenFlow交换机端口时,确定查询到的所述OpenFlow交换机端口与所述源MAC地址对应的源主机之间的,用于转发回应所述源MAC地址的ARP请求报文的ARP回应报文的第二转发路径;并向所述第二转发路径上的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则;
当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
4.根据权利要求1-3中任一所述的方法,其特征在于,所述方法还包括:
当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,将所述ARP请求报文转发至除所述ARP请求报文的来源端口以及内部端口之外的其他端口,所述内部端口为OpenFlow交换机之间进行直接相连的端口。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述ARP请求报文中的源IP和发送所述ARP请求报文的主机所在的OpenFlow交换机端口,更新所述映射表。
6.一种报文处理装置,其特征在于,所述装置包括:
ARP请求接收模块,用于接收第一OpenFlow交换机上报的地址解析协议ARP请求报文;
ARP请求分析模块,用于获取所述ARP请求报文中的目的互联网协议IP,以及源MAC地址;
端口查询模块,用于获取所述ARP请求报文中的目的互联网协议IP,以及源MAC地址;
ARP请求转发模块,用于在确定所述OpenFlow交换机端口所在的第二OpenFlow交换机中存在与所述源MAC地址对应的流表转发规则,且该流表转发规则合理时,将所述ARP请求报文转发至所述OpenFlow交换机端口;其中,所述流表转发规则用于指示所述第二OpenFlow交换机在接收到针对所述源MAC地址的ARP回应报文时,根据所述流表转发规则将所述ARP回应报文转发至相应端口,所述相应端口为通向所述源MAC地址对应的源主机的端口。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
转发路径确定模块,用于所述ARP请求分析模块获取所述ARP请求报文中的目的IP,以及源MAC地址之后,针对任一下连的OpenFlow交换机,当确定该OpenFlow交换机未接收到与所述源MAC地址对应的流表转发规则时,或当确定该OpenFlow交换机中安装的与所述源MAC地址对应的流表转发规则已失效时,确定该OpenFlow交换机与源MAC地址对应的源主机之间的第一转发路径;
第一流表规则下发模块,用于根据所述第一转发路径生成与所述源MAC地址对应的流表转发规则,并向该OpenFlow交换机下发生成的与所述源MAC地址对应的流表转发规则。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二流表规则下发模块,用于所述端口查询模块从维护的IP与OpenFlow交换机端口的映射表中,查询与所述目的IP对应的OpenFlow交换机端口之后,当在所述映射表中查询到与所述目的IP对应的OpenFlow交换机端口时,确定查询到的所述OpenFlow交换机端口与所述源MAC地址对应的源主机之间的,用于转发回应所述源MAC地址的ARP请求报文的ARP回应报文的第二转发路径;并向所述第二转发路径上的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则;
第三流表规则下发模块,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
9.根据权利要求6-8中任一所述的装置,其特征在于,所述装置还包括:
泛洪模块,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,将所述ARP请求报文转发至除所述ARP请求报文的来源端口以及内部端口之外的其他端口,所述内部端口为OpenFlow交换机之间进行直接相连的端口。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
映射表更新模块,用于当在所述映射表中未查询到与所述目的IP对应的OpenFlow交换机端口时,向所有下连的OpenFlow交换机下发相应的与所述源MAC地址对应的流表转发规则。
11.一种报文处理系统,包括软件自定义网络SDN控制器、管理设备、OpenFlow交换机和主机,其特征在于:
所述SDN控制器与所述管理设备连接,并通过所述管理设备下连所述OpenFlow交换机,其中,所述SDN控制器通过所述管理设备控制所述OpenFlow交换机,所述SDN控制器包括权利要求6-10中任一所述的装置;
所述OpenFlow交换机下连主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410553998.8A CN104301238A (zh) | 2014-10-17 | 2014-10-17 | 一种报文处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410553998.8A CN104301238A (zh) | 2014-10-17 | 2014-10-17 | 一种报文处理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104301238A true CN104301238A (zh) | 2015-01-21 |
Family
ID=52320811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410553998.8A Pending CN104301238A (zh) | 2014-10-17 | 2014-10-17 | 一种报文处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104301238A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245632A (zh) * | 2015-10-16 | 2016-01-13 | 电子科技大学 | 一种sdn网络中不同网段主机间通信方法 |
CN105812502A (zh) * | 2016-03-07 | 2016-07-27 | 北京工业大学 | 基于OpenFlow的地址解析协议代理技术的实现方法 |
CN106302220A (zh) * | 2016-08-26 | 2017-01-04 | 北京工业大学 | 一种sdn网络精细化控制传统交换机的方法 |
CN106331018A (zh) * | 2015-06-30 | 2017-01-11 | 上海宽带技术及应用工程研究中心 | 基于负载均衡的sdn网络主机发现方法及系统 |
CN106411739A (zh) * | 2015-07-31 | 2017-02-15 | 华为技术有限公司 | 一种数据转发方法、装置及系统 |
CN106936715A (zh) * | 2015-12-31 | 2017-07-07 | 新华三技术有限公司 | 虚拟机报文控制方法及装置 |
WO2018099354A1 (zh) * | 2016-11-29 | 2018-06-07 | 新华三技术有限公司 | 报文传输 |
CN109617816A (zh) * | 2015-09-17 | 2019-04-12 | 杭州数梦工场科技有限公司 | 一种数据报文的传输方法和装置 |
CN109729026A (zh) * | 2017-10-27 | 2019-05-07 | 迈普通信技术股份有限公司 | 一种sdn网络的控制方法和sdn控制器 |
CN110581803A (zh) * | 2019-10-09 | 2019-12-17 | 中国联合网络通信集团有限公司 | 基于sdn的报文转发方法和装置 |
CN111510516A (zh) * | 2020-04-22 | 2020-08-07 | 上海御渡半导体科技有限公司 | 一种测试机分布式系统网络框架及通信方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938794A (zh) * | 2012-11-14 | 2013-02-20 | 华为技术有限公司 | 地址解析协议arp消息转发方法、交换机和控制器 |
CN103051629A (zh) * | 2012-12-24 | 2013-04-17 | 华为技术有限公司 | 一种基于软件定义网络中数据处理的系统、方法和节点 |
WO2014115157A1 (en) * | 2013-01-24 | 2014-07-31 | Hewlett-Packard Development Comany, L.P. | Address resolution in software-defined networks |
-
2014
- 2014-10-17 CN CN201410553998.8A patent/CN104301238A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938794A (zh) * | 2012-11-14 | 2013-02-20 | 华为技术有限公司 | 地址解析协议arp消息转发方法、交换机和控制器 |
CN103051629A (zh) * | 2012-12-24 | 2013-04-17 | 华为技术有限公司 | 一种基于软件定义网络中数据处理的系统、方法和节点 |
WO2014115157A1 (en) * | 2013-01-24 | 2014-07-31 | Hewlett-Packard Development Comany, L.P. | Address resolution in software-defined networks |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106331018A (zh) * | 2015-06-30 | 2017-01-11 | 上海宽带技术及应用工程研究中心 | 基于负载均衡的sdn网络主机发现方法及系统 |
CN106331018B (zh) * | 2015-06-30 | 2019-04-02 | 上海宽带技术及应用工程研究中心 | 基于负载均衡的sdn网络主机发现方法及系统 |
CN106411739A (zh) * | 2015-07-31 | 2017-02-15 | 华为技术有限公司 | 一种数据转发方法、装置及系统 |
CN109617816A (zh) * | 2015-09-17 | 2019-04-12 | 杭州数梦工场科技有限公司 | 一种数据报文的传输方法和装置 |
CN105245632B (zh) * | 2015-10-16 | 2018-08-14 | 电子科技大学 | 一种sdn网络中不同网段主机间通信方法 |
CN105245632A (zh) * | 2015-10-16 | 2016-01-13 | 电子科技大学 | 一种sdn网络中不同网段主机间通信方法 |
US10484274B2 (en) | 2015-12-31 | 2019-11-19 | New H3C Technologies Co., Ltd | Controlling packets of virtual machines |
CN106936715A (zh) * | 2015-12-31 | 2017-07-07 | 新华三技术有限公司 | 虚拟机报文控制方法及装置 |
CN106936715B (zh) * | 2015-12-31 | 2019-06-07 | 新华三技术有限公司 | 虚拟机报文控制方法及装置 |
CN105812502A (zh) * | 2016-03-07 | 2016-07-27 | 北京工业大学 | 基于OpenFlow的地址解析协议代理技术的实现方法 |
CN106302220A (zh) * | 2016-08-26 | 2017-01-04 | 北京工业大学 | 一种sdn网络精细化控制传统交换机的方法 |
WO2018099354A1 (zh) * | 2016-11-29 | 2018-06-07 | 新华三技术有限公司 | 报文传输 |
US10833990B2 (en) | 2016-11-29 | 2020-11-10 | New H3C Technologies Co., Ltd. | Transmitting packet |
CN109729026A (zh) * | 2017-10-27 | 2019-05-07 | 迈普通信技术股份有限公司 | 一种sdn网络的控制方法和sdn控制器 |
CN110581803A (zh) * | 2019-10-09 | 2019-12-17 | 中国联合网络通信集团有限公司 | 基于sdn的报文转发方法和装置 |
CN110581803B (zh) * | 2019-10-09 | 2022-01-28 | 中国联合网络通信集团有限公司 | 基于sdn的报文转发方法和装置 |
CN111510516A (zh) * | 2020-04-22 | 2020-08-07 | 上海御渡半导体科技有限公司 | 一种测试机分布式系统网络框架及通信方法 |
CN111510516B (zh) * | 2020-04-22 | 2022-11-08 | 上海御渡半导体科技有限公司 | 一种测试机分布式系统网络框架及通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104301238A (zh) | 一种报文处理方法、装置及系统 | |
CN107204867B (zh) | 一种信息传输方法、装置和系统 | |
US20240022650A1 (en) | Computing power application traffic forwarding method and apparatus | |
US11374857B2 (en) | Network device management method and apparatus, and system for indicating a network device to perform management operation | |
KR102018395B1 (ko) | 분할 아키텍쳐 네트워크에서의 패킷 방송 메카니즘 | |
EP3001614B1 (en) | Technologies for bridging between coarse-grained and fine-grained load balancing | |
CN109561033B (zh) | Overlay网络中组播复制的方法及装置 | |
US20150263862A1 (en) | Communication system, control apparatus, communication control method, transfer control method, and transfer control program | |
CN104301451A (zh) | 一种跨网段主机通信方法、装置及系统 | |
KR102025680B1 (ko) | Sdn 기반의 arp 구현 방법 및 장치 | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
CN111010329B (zh) | 一种报文传输方法及装置 | |
CN101383772B (zh) | 一种自动发现并建立mac路由信息表的方法及装置 | |
CN105337855A (zh) | 一种处理修改后的报文方法和装置 | |
CN102291259A (zh) | 基于多主站模式的低压电力线通信网络层管理方法 | |
US7860027B2 (en) | Extending an IP everywhere network over a plurality of flooding domains | |
CN104301229A (zh) | 数据包转发方法、路由表生成方法及装置 | |
CN104125150A (zh) | 一种协议报文处理方法、装置及系统 | |
US9985926B2 (en) | Address acquiring method and network virtualization edge device | |
CN110768911A (zh) | 流量高效引流方法、装置、设备、系统及存储介质 | |
JPWO2015118822A1 (ja) | 通信制御システム、通信制御方法および通信制御プログラム | |
CN111682968A (zh) | 一种通信设备入网管理方法及系统 | |
CN103441931A (zh) | 一种报文发送方法及装置 | |
CN105392171A (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: 20150121 |
|
RJ01 | Rejection of invention patent application after publication |