CN107623757B - 表项更新方法和装置 - Google Patents
表项更新方法和装置 Download PDFInfo
- Publication number
- CN107623757B CN107623757B CN201711027471.1A CN201711027471A CN107623757B CN 107623757 B CN107623757 B CN 107623757B CN 201711027471 A CN201711027471 A CN 201711027471A CN 107623757 B CN107623757 B CN 107623757B
- Authority
- CN
- China
- Prior art keywords
- message
- mac address
- arp
- forwarding
- access device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了表项更新方法和装置。本申请中,接入设备在在检测到本地接入VM的端口与已存储的与VM的MAC地址匹配的MAC转发表项中的出端口不同时上报MAC地址冲突报文给SDN控制器,以触发SDN控制器从MAC地址冲突报文中提取出VM的IP地址,构造ARP请求报文并广播发送,最终依据接收的所述VM响应所述ARP请求报文的ARP应答报文更新已学习的所述VM的ARP信息中的接入设备和出端口,根据所述VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述VM的流量,及时防止VM迁移后发出的ARP免费报文未被SDN控制器正常接收而导致发向该VM的报文转发异常。
Description
技术领域
本申请涉及网络通信技术,特别涉及表项更新方法和装置。
背景技术
在软件自定义网络(SDN:Software Defined Network)中,接入设备、网关不会自动创建转发流表项,而是依赖于SDN控制器下发。
在SDN中,当虚拟机(VM:Virtual Machine)上线时,VM会主动发送ARP请求报文,以请求网关MAC地址。接入设备收到来自VM的ARP请求报文时,将ARP请求报文上送至SDN控制器。SDN控制器依据接收的ARP请求报文学习并保存该VM的ARP信息,并依据VM的ARP信息为各接入设备、网关分别生成用于向该VM转发报文的转发流表项,将为各接入设备、网关生成的转发流表项下发给各接入设备、网关。
发明内容
本申请提供了表项更新方法和装置,以防止VM迁移后发出的ARP请求报文未被SDN控制器正常接收而导致去往该VM的流量转发异常。
本申请提供的技术方案包括:
一种表项更新方法,该方法应用于SDN控制器,包括:
接收接入设备在检测到MAC地址冲突时上报的MAC地址冲突报文,所述MAC地址冲突为:所述接入设备在检测到本地接入VM的端口与所述接入设备已存储的与所述VM的MAC地址匹配的MAC转发表项中的出端口不同;
从所述MAC地址冲突报文中提取出所述VM的IP地址,构造ARP请求报文并广播发送,所述ARP请求报文中的目标IP地址为所述VM的IP地址;
接收所述接入设备上报的所述VM响应所述ARP请求报文的ARP应答报文,依据所述ARP应答报文更新已学习的所述VM的ARP信息中的接入设备和出端口,更新后的出端口为接入设备收到ARP应答报文的端口,更新后的接入设备为上报所述ARP应答报文的接入设备;
根据所述VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述VM的流量。
一种表项更新方法,该方法应用于接入设备,包括:
接收本地第一虚拟机VM发送的报文;
当检测到MAC地址冲突时,上报携带所述第一VM的IP地址的MAC地址冲突报文至SDN控制器,以触发所述SDN控制器构造目标IP地址为所述第一VM的IP地址的ARP请求报文;所述MAC地址冲突为:本设备上接入所述第一VM的端口与本设备上已存储的与所述第一VM的MAC地址匹配的MAC转发表项中的出端口不同;
接收SDN控制器发送的所述ARP请求报文并广播发送给本地接入的各VM;
接收所述第一VM返回的响应所述ARP请求报文的ARP应答报文;
将所述ARP应答报文上报至SDN控制器,以使SDN控制器更新第一VM的ARP信息中的出端口和接入设备并根据所述ARP信息为各接入设备生成用于指导去往所述第一VM的流量转发的转发流表项。
一种表项更新装置,该装置应用于SDN控制器,包括:
MAC地址冲突报文接收单元,接收接入设备在检测到MAC地址冲突时上报的MAC地址冲突报文,所述MAC地址冲突为:所述接入设备在检测到本地接入虚拟机VM的端口与所述接入设备已存储的与所述VM的MAC地址匹配的MAC转发表项中的出端口不同;
ARP请求报文构造单元,用于从所述MAC地址冲突报文中提取出所述VM的IP地址,构造ARP请求报文并广播发送,所述ARP请求报文中的目标IP地址为所述VM的IP地址;
ARP应答接收单元,用于接收所述接入设备上报的所述VM响应所述ARP请求报文的ARP应答报文;
表项更新单元,用于依据所述ARP应答报文更新已学习的所述VM的ARP信息中的接入设备和出端口,更新后的出端口为接入设备收到ARP应答报文的端口,更新后的接入设备为上报所述ARP应答报文的接入设备;根据所述VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述VM的流量。
一种表项更新装置,该装置应用于接入设备,包括:
MAC地址冲突单元,用于接收本地第一虚拟机VM发送的报文;当检测到MAC地址冲突时,上报携带所述第一VM的IP地址的MAC地址冲突报文至SDN控制器,以触发所述SDN控制器构造目标IP地址为所述第一VM的IP地址的ARP请求报文;所述MAC地址冲突为:本设备上接入所述第一VM的端口与本设备上已存储的与所述第一VM的MAC地址匹配的MAC转发表项中的出端口不同;
ARP请求报文单元,用于接收SDN控制器发送的所述ARP请求报文并广播发送给本地接入的各VM;
ARP应答单元,用于接收所述第一VM返回的响应所述ARP请求报文的ARP应答报文,将所述ARP应答报文上报至SDN控制器,以使SDN控制器更新第一VM的ARP信息中的出端口和接入设备并根据所述ARP信息为各接入设备生成用于指导去往所述第一VM的流量转发的转发流表项。
由以上技术方案可以看出,本申请中,接入设备在在检测到本地接入VM的端口与已存储的与所述VM的MAC地址匹配的MAC转发表项中的出端口不同时确认MAC地址冲突则上报MAC地址冲突报文给SDN控制器,以触发SDN控制器接收到MAC地址冲突报文时从MAC地址冲突报文中提取出所述VM的IP地址,构造ARP请求报文并广播发送,最终依据接收的所述VM响应所述ARP请求报文的ARP应答报文更新已学习的所述VM的ARP信息中的接入设备和出端口,根据所述VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述VM的流量,及时防止VM迁移后发出的ARP免费报文未被SDN控制器正常接收而导致发向该VM的报文转发异常。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请提供的VM迁移应用组网示意图;
图2为本申请提供的方法流程图;
图3为本申请提供的实施例组网示意图;
图4为本申请提供的装置结构示意图;
图5为本申请提供的另一装置结构示意图。
具体实施方式
在SDN中,当VM完成迁移后,VM会发送免费ARP请求报文。以图1所示的组网为例描述VM的迁移:
在图1所示的SDN中存在以下三个接入设备:SW110、SW111、SW112,其中,VM100接入至SW110的端口Port1_0,VM101接入至SW111的端口Port1_1,VM102接入至SW112的端口Port1_2。
SDN控制器学习的VM100的ARP信息如表1所示:
表1
SDN中各接入设备(即SW110、SW111、SW112)、以及网关上保存的VM100的转发流表项是依赖于SDN控制器依据表1所示的VM100的ARP信息生成并下发的。其中,SDN中各接入设备(即SW110、SW111、SW112)、以及网关上保存的VM100的转发流表项主要包括VM100的MAC转发表项和IP转发表项。仅以VM100的MAC转发表项为例,在SW110上,VM100的MAC转发表项如表2所示:
表2在SW111上,VM100的MAC转发表项如表3所示:
表3
在SW112、网关上,VM100的MAC转发表项类似表3,不再一一描述。
以VM100从SW110的端口Port1_0迁移至SW111的端口Port1_3为例:
当VM100从SW110的端口Port1_0迁移至SW111的端口Port1_3后,VM100会主动发送ARP免费报文。SW111收到ARP免费报文后,将ARP免费报文上送至SDN控制器。SDN控制器依据接收的ARP免费报文学习VM100的ARP信息,此时学习的VM100的ARP信息如表4所示:
表4
SDN控制器发现VM100的接入设备和接入端口发生了变更,则一方面会更新VM100的ARP信息,即将保存的如表1所示的ARP信息更新为如表4所示的ARP信息;另一方面会依据更新后的VM100的ARP信息生成用于指导各接入设备(即SW110、SW111、SW112)转发去往VM100的流量的转发流表项。这里,为各接入设备生成的转发流表项其包含用于指导二层转发的转发流表项信息和用于指导三层转发的转发流表项信息。
之后,SDN控制器按照MAC-IP表的形式下发生成的用于指导各接入设备(即SW110、SW111、SW112)转发去往VM100的流量的转发流表项。如此,当接入设备SW110、SW111、SW112和网关接收到转发流表项时,将转发流表项信息中用于指导二层转发的转发流表项信息下发到MAC转发表中(此时下发至MAC地址表的转发流表项信息称为MAC转发表项),将转发流表项中用于指导三层转发的流表项信息下发到IP转发表中(此时下发至IP转发表的转发流表项信息称为IP转发表项)。
下面仅以MAC转发表项为例描述:
表5示出了SDN控制器为SW11生成的用于指导转发去往VM100的二层流量的MAC转发表项:
表5
SW11接收到SDN控制器下发的如表5所示的VM100的MAC转发表项,比较该接收的如表5所示的VM100的MAC转发表项与已保存的如表2所示的VM100的MAC转发表项不同(不同主要体现在出接口),则将已保存的VM100的MAC转发表项更新为该接收的如表5所示的VM100的MAC转发表项。
表6示出了SDN控制器为SW111生成的用于指导转发去往VM100的二层流量的MAC转发表项:
表6
SDN控制器下发如表6所示的VM100的MAC转发表项给SW111。SW111接收到SDN控制器下发的如表6所示的VM100的MAC转发表项,比较该接收的如表6所示的VM100的MAC转发表项与已保存的如表3所示的VM100的MAC转发表项不同(不同主要体现在出接口),则将已保存的VM100的MAC转发表项更新为该接收的如表6所示的VM100的MAC转发表项。SDN控制器为SW112、网关生成用于指导转发去往VM100的二层流量的MAC转发表项类似,不再一一描述。
之后,SDN中各接入设备(即SW110、SW111、SW112)、以及网关按照更新后的VM100的转发流表项向VM100转发报文。
但是,在VM100从SW110的端口Port1_0迁移至SW111的端口Port1_3后,经常会出现如下问题:VM100发出的ARP免费报文有可能不会被SDN控制器收到,SDN控制器无法感知到VM100从SW110的端口Port1_0迁移至SW111的端口Port1_3。
比如,尽管如上描述,VM100从SW110的端口Port1_0迁移至SW111的端口Port1_3后,VM100会主动发送ARP免费报文。但是,当SW111收到ARP免费报文后,因为网络问题并没有上送ARP免费报文给SDN控制器,或者SW111上送ARP免费报文给SDN控制器,但因为SDN控制器的报文接收队列已满而被SDN控制器丢弃,最终导致SDN控制器不能正常收到ARP免费报文,进而导致SDN控制器无法感知到VM100从SW110的端口Port1_0迁移至SW111的端口Port1_3,如此,SDN控制器会认为VM100依然接入SW110的端口Port1_0,并未发生迁移。
以SW110为例,SW111、SW112、网关类似,则因为SDN控制器认为VM100未发生迁移,依然是接入SW110的端口Port1_0,则SDN控制器不会重新为SW110生成VM100的转发流表项。以VM100的转发流表项为MAC转发表项为例,则SW110保存的VM100的MAC转发表项仍如表2所示。如此,当SW110后续向VM100转发数据报文时,仍然会依据表2所示的VM100的MAC转发表项通过出端口Port1_0转发。而事实上,VM100已从SW110的端口Port1_0迁移至SW111的端口Port1_3,SW110通过出端口Port1_0转发发向VM100的数据报文是不能达到VM100的,这导致VM100的业务异常。
基于此,为了防止VM迁移后发出的ARP免费报文未被SDN控制器正常接收而导致发向该VM的报文转发异常,提高SDN网络中VM迁移的可靠性,本申请提供了如图2所示的方法:
参见图2,图2为本申请提供的方法流程图。如图2所示,该流程可包括以下步骤:
步骤201,接入设备接收本地VM(记为第一VM)发送的报文,当检测到MAC地址冲突时,上报携带所述第一VM的IP地址的MAC地址冲突报文至SDN控制器,以触发所述SDN控制器构造目标IP地址为所述第一VM的IP地址的ARP请求报文;所述MAC地址冲突为:本设备上接入所述第一VM的端口与本设备上已存储的与所述第一VM的MAC地址匹配的MAC转发表项中的出端口不同。
在本申请中,当接入设备检查出本设备上接入所述第一VM的端口与本设备上已存储的与所述第一VM的MAC地址匹配的MAC转发表项中的出端口不同,则就认MAC地址冲突,上报MAC地址冲突报文至SDN控制器。其中,本设备上接入第一VM的端口具体为本设备接收到报文的端口。第一VM的MAC地址为本设备接收到的报文的源MAC地址。
在一个例子中,接入设备接收的报文为数据报文,以下均以数据报文为例描述。
作为一个实施例,MAC地址冲突报文可为:接入设备对接收的数据报文按照OpenFlow协议封装而得到的报文。换言之,MAC地址冲突报文具体是对接收的数据报文按照OpenFlow协议封装而得到的报文,其本身包含了接入设备接收的数据报文的所有信息(包括源IP地址)。
作为另一个实施例,MAC地址冲突报文也可为接入设备重新构造的一个OpenFlow协议报文,携带了接入设备接收的数据报文的特征信息(包括源IP地址、源MAC地址等)。
需要说明的是,本步骤201中,接入设备检测到MAC地址冲突时,除了上报MAC地址冲突报文至SDN控制器,还需要继续转发该接收的数据报文,以防止数据业务中断。作为一个实施例,接入设备继续转发数据报文可依据已存储的与报文的目的IP地址匹配的转发流表项转发,不再赘述。
步骤202,SDN控制器接收接入设备在检测到MAC地址冲突时上报的MAC地址冲突报文,从所述MAC地址冲突报文中提取出所述第一VM的IP地址,构造ARP请求报文并广播发送,所述ARP请求报文中的目标IP地址为所述第一VM的IP地址。
在本申请中,ARP请求报文的发送端MAC地址为网关MAC地址,发送端IP地址为网关IP地址,目标MAC地址为指定地址。
如上描述,不管MAC地址冲突报文是通过OpenFlow协议封装的数据报文,还是由接入设备重新构造的携带了数据报文的特征信息(包括源IP地址、源MAC地址等)的OpenFlow协议报文,其都携带了数据报文的特征信息(包括源IP地址、源MAC地址等),因此,本步骤202也很容易从MAC地址冲突报文中提取出所述数据报文的源IP地址即所述第一VM的IP地址。
在本申请中,SDN控制器构造ARP请求报文,其目的是更新已学习的第一VM的ARP信息。以上述目标MAC地址为全0为例,表7举例示出了ARP请求报文的各地址:
表7
当SDN控制器广播ARP请求报文后,SDN控制器控制管理的各接入设备会收到ARP请求报文,当接入设备收到ARP请求报文后执行下述步骤203。
步骤203,接入设备接收SDN控制器广播的所述ARP请求报文并广播发送给本地接入的各VM。
当第一VM接收到ARP请求报文时,发现ARP请求报文的目标IP地址正好为本VM的IP地址,则返回ARP应答报文。而其他VM接收到ARP请求报文时,若发现ARP请求报文的目标IP地址不为本VM的IP地址,则丢弃接收的ARP请求报文。表8举例示出第一VM发送的ARP应答报文的各地址:
表8
当第一VM发送ARP应答报文后,接入该第一VM的接入设备会收到该ARP应答报文,当接入设备接收到ARP应答报文后,则执行步骤204。
步骤204,接入设备接收第一VM返回的响应所述ARP请求报文的ARP应答报文,将ARP应答报文上报至SDN控制器。
当SDN控制器接收到ARP应答报文后,执行下述步骤205。
步骤205,SDN控制器接收接入设备上报的响应所述ARP请求报文的ARP应答报文,依据所述ARP应答报文更新已学习的所述第一VM的ARP信息中的接入设备和出端口,更新后的出端口为接入设备收到ARP应答报文的端口,更新后的接入设备为上报所述ARP应答报文的接入设备,根据所述第一VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述第一VM的流量。
结合表1所示的ARP信息的内容描述,则本步骤205更新后的第一VM的ARP信息包含第一VM当前接入的接入设备、端口等信息,如此,本步骤205根据更新后的第一VM的ARP信息更新各接入设备(包括网关)上已存储的用于各接入设备转发去往所述第一VM的流量的转发流表项(包含MAC转发表项为例),最终使得各接入设备上第一VM的转发流表项(MAC转发表项)中的出端口和接收到来自第一VM的数据报文的端口一致,保证了后续各接入设备按照更新后的转发流表项(包含MAC转发表项为例)向第一VM转发报文时报文能够到达第一VM。
至此,完成图2所示的流程。
通过图2所示流程可以看出,在本申请中,接入设备在在检测到本地接入VM的端口与已存储的与所述VM的MAC地址匹配的MAC转发表项中的出端口不同时确认MAC地址冲突则上报MAC地址冲突报文给SDN控制器,以触发SDN控制器接收到MAC地址冲突报文时从MAC地址冲突报文中提取出所述VM的IP地址,构造ARP请求报文并广播发送,最终依据接收的所述VM响应所述ARP请求报文的ARP应答报文更新已学习的所述VM的ARP信息中的接入设备和出端口,根据所述VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述VM的流量,及时防止VM迁移后发出的ARP免费报文未被SDN控制器正常接收而导致发向该VM的报文转发异常。
作为一个实施例,在图2所示流程执行之前,SDN控制器可进一步执行操作:向自身控制的各接入设备下发MAC冲突检测流表项;
所述MAC冲突检测流表项用于指示接入设备在检测到MAC地址冲突时执行以下两个动作:
动作1,上报MAC地址冲突报文给SDN控制器;
动作2,转发报文,该报文为发生MAC地址冲突时VM发送的报文。
作为一个实施例,MAC冲突检测流表项具体实现时,可包含以下内容:
匹配项,具体为metedata字段,由厂商自定义设置,占用一个比特位。作为一个实施例,metedata字段与交换设备本地芯片设有的报文描述符中的源MAC冲突(Source MACConflicted)标识匹配,当Source MAC Conflicted置为第一值(以1为例),则表示匹配MAC冲突检测流表,触发执行下述动作项,反之,则不表示匹配MAC冲突检测流表,禁止执行下述动作项。
动作项,包含上述的动作1和动作2。
基于此,上述步骤201中,接入设备当检测到MAC地址冲突时,在本地芯片设有的报文描述符中设置上述数据报文对应的Source MAC Conflicted并置为上述的第一值,之后检查该置为第一值的Source MAC Conflicted与本地已接收的来自SDN控制器下发的MAC冲突检测流表项中的匹配项是否匹配,若是,则上报携带所述第一VM的IP地址的MAC地址冲突报文至SDN控制器,以触发所述SDN控制器构造目标IP地址为所述第一VM的IP地址的ARP请求报文,并继续转发接收的数据报文。
需要说明的是,在本申请中,为了防止接入设备上报至SDN控制器的ARP应答没有被SDN控制器正确处理,或者SDN控制器更新转发流表项失败,则作为一个实施例,接入设备在上报MAC地址冲突报文至SDN控制器后可进一步执行以下步骤:
在上报所述MAC地址冲突报文后的设定时间内检测本地已存储的用于指导去往所述第一VM的流量转发的转发流表项是否发生更新;
如果否,则继续上报MAC地址冲突报文至SDN控制器。
还需要说明的是,在本申请中,当接入设备检测本地已存储的用于指导去往所述第一VM的流量转发的转发流表项已发生更新,则可删除上述设置的与数据报文对应的Source MAC Conflicted,或者将上述设置的与数据报文对应的Source MAC Conflicted从第一值更新为第二值。第二值举例可为0或者其他值。
下面通过一个具体实施例对图2所示流程进行描述:
参见图3,图3为本申请提供的实施例组网示意图。在图3中,SW301,SW302为接入设备,Gateway为网关设备,VM311,VM312接入SW301,VM313接入SW302。
以VM311为例,SDN控制器学习VM311的ARP信息如表9所示:
表9
SW301已存储的用于指导去往VM311的流量转发的转发流表项以MAC转发表项为例,其如表10所示:
表10
SW302已存储的来自SDN控制器下发的用于指导去往VM311的流量转发的转发流表项以MAC转发表项为例,其如表11所示:
表11
网关已存储的来自SDN控制器下发的用于指导去往VM311的流量转发的转发流表项以MAC转发表项为例,其如表12所示:
表12
VM311发生迁移,从SW301的端口Port3_01迁移到了SW302的端口Port3_21,迁移完成后VM311发出了ARP免费报文,但是由于其他原因SDN控制器未能正确处理,结果SDN控制器不能正常感知VM311从SW301迁移到SW302。
但是,VM311迁移后,VM311上的业务仍然存在,VM311本地依然存在其他VM比如VM313的ARP信息,以VM311访问VM313为例,则VM311向VM313发送数据报文。数据报文的源MAC地址为VM311的MAC地址(MAC3_1),源IP地址为VM311的IP地址(记为IP31),目的MAC地址为VM313的MAC地址(记为MAC3_3),目的IP地址为VM313的IP地址(记为IP33)。
SW302通过本地端口Port3_21接收到数据报文,以数据报文的源MAC地址即MAC3_1为关键字在本地MAC转发表中查找目的MAC地址为该关键字MAC3_1的MAC转发表项,即上述表11所示的MAC转发表项。
SW302发现查找到的表11所示的MAC转发表项中的出端口为SW302与SW301之间的隧道接口,这与接收到数据报文的本地端口Port3_21不同,则在本地芯片上设有的报文描述符中设置数据报文对应的SOURCE MAC CONFLICTED并置为第一值。
SW302检查置为第一值的Source MAC Conflicted与本地已接收的来自SDN控制器下发的MAC冲突检测流表中的匹配项匹配,则复制数据报文,将复制得到的数据通过Openflow协议封装得到MAC地址冲突报文并上报至SDN控制器,并依据原数据报文的目的MAC地址即MAC3_3转发。数据报文的转发类似现有技术,不再赘述。
SDN控制器接收MAC地址冲突报文,从MAC地址冲突报文提取出上述数据报文的源IP地址即IP31,依据IP31构造ARP请求报文。表13示出ARP请求报文的各地址:
表13
SDN控制器在SDN中广播ARP请求报文。
SW302接收到ARP请求报文后,向本地接入的各VM广播ARP请求报文;SW301类似。
VM311接收到ARP请求报文,发现ARP请求报文的目标IP地址即IP31为自身的IP地址,则返回ARP应答报文。表14示出ARP应答各地址:
表14
SW302接收VM311返回的ARP应答报文,并上报至SDN控制器;
SDN控制器接收到VM311返回的ARP应答报文,依据所述ARP应答报文更新本地已存储的表9所示的VM311的ARP信息中的接入设备和出端口。
表15示出了更新后的VM311的ARP信息:
表15
SDN控制器依据表15所示的VM311的ARP信息为SW301生成用于指示向VM311发送报文的转发流表项。仅以生成的转发流表项为MAC转发表项为例,表16示出了生成的转发流表项:
表16
SDN控制器依据表15所示的VM311的ARP信息为SW302生成用于指导去往VM311的流量转发的转发流表项。仅以生成的转发流表项为MAC转发表项为例,表17示出了生成的转发流表项:
表17
SDN控制器依据表15所示的VM311的ARP信息为网关生成用于指导去往VM311的流量转发的转发流表项。仅以生成的转发流表项为MAC转发表项为例,表18示出了生成的转发流表项:
表18
SDN控制器将为SW301生成的用于指导去往VM311的流量转发的转发流表项下发给SW301,SW301将本地已存储的用于指导去往VM311的流量转发的转发流表项更新为当前接收的用于转发流表项。
SDN控制器将为SW302生成的用于指导去往VM311的流量转发的转发流表项下发给SW302,SW302将本地已存储的用于指导去往VM311的流量转发的转发流表项更新为当前接收的转发流表项。
SDN控制器将为网关生成的用于指导去往VM311的流量转发的转发流表项下发给网关,网关将本地已存储的用于指导去往VM311的流量转发的转发流表项更新为当前接收的转发流表项。
之后,SW301、SW302、网关按照更新后的用于指导去往VM311的流量转发的转发流表项向VM311发送报文,这能保证SDN中各个VM和VM311之间的转发正常,因为SW302的转发流表项已更新,则后续SW302通过本地端口Port3_21再接收到VM311发送的数据报文,SW302以数据报文的源MAC地址为关键字在本地MAC转发表中查找目的MAC地址为该关键字的MAC转发表项,结果会查找到上述表17所示的MAC转发表项,即SW302查找到的MAC转发表项中的出端口与接收到数据报文的本地端口相同,不再触发上报MAC地址冲突报文至SDN控制器,这使得即使VM311迁移后发出的ARP请求报文未被SDN控制器正常接收,也不会导致发向该VM311的报文转发异常。
需要说明的是,在本实施例中,SW302还可在上报MAC地址冲突报文至SDN控制器后的设定时间内检测本地已存储的用于指导去往VM31的流量转发的转发流表项是否发生更新,如果否,则继续上报MAC地址冲突报文至SDN控制器,直至最终本地已存储的用于指导去往VM31的流量转发的转发流表项被更新。
至此,完成实施例的描述。
需要说明的是,本实施例涉及的转发流表项除了包含MAC转发表项之外,还包含IP转发表项等,其更新方式类似上述的MAC转发表项,这里不再一一赘述。
以上对本申请提供的方法进行描述,下面对本申请提供的装置进行描述:
参见图4,图4为本申请提供的装置结构图。该装置应用于SDN控制器,包括:
MAC地址冲突报文接收单元,接收接入设备在检测到MAC地址冲突时上报的MAC地址冲突报文,所述MAC地址冲突为:所述接入设备在检测到本地接入虚拟机VM的端口与所述接入设备已存储的与所述VM的MAC地址匹配的MAC转发表项中的出端口不同;
ARP请求报文构造单元,用于从所述MAC地址冲突报文中提取出所述VM的IP地址,构造ARP请求报文并广播发送,所述ARP请求报文中的目标IP地址为所述VM的IP地址;
ARP应答接收单元,用于接收所述接入设备上报的所述VM响应所述ARP请求报文的ARP应答报文;
表项更新单元,用于依据所述ARP应答报文更新已学习的所述VM的ARP信息中的接入设备和出端口,更新后的出端口为接入设备收到ARP应答报文的端口,更新后的接入设备为上报所述ARP应答报文的接入设备;根据所述VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述VM的流量。
作为一个实施例,该装置进一步包括:
MAC冲突检测流表单元,用于向自身控制的各接入设备下发MAC冲突检测流表项;
所述MAC冲突检测流表项用于指示接入设备在检测到MAC地址冲突时执行以下两个动作:
动作1,上报MAC地址冲突报文给SDN控制器;
动作2,转发报文,该报文为发生MAC地址冲突时VM发送的报文。
作为一个实施例,所述MAC地址冲突报文为通过Openflow协议封装的报文比如数据报文,所述报文比如数据报文为发生MAC地址冲突时VM发送的报文。
至此,完成图4所示装置的结构描述。
参见图5,图5为本申请提供的另一装置结构图。该装置应用于接入设备,包括:
MAC地址冲突单元,用于接收本地第一虚拟机VM发送的报文;当检测到MAC地址冲突时,上报携带所述第一VM的IP地址的MAC地址冲突报文至SDN控制器,以触发所述SDN控制器构造目标IP地址为所述第一VM的IP地址的ARP请求报文;所述MAC地址冲突为:本设备上接入所述第一VM的端口与本设备上已存储的与所述第一VM的MAC地址匹配的MAC转发表项中的出端口不同;
ARP请求报文单元,用于接收SDN控制器发送的所述ARP请求报文并广播发送给本地接入的各VM;
ARP应答单元,用于接收所述第一VM返回的响应所述ARP请求报文的ARP应答报文,将所述ARP应答报文上报至SDN控制器,以使SDN控制器更新第一VM的ARP信息中的出端口和接入设备并根据所述ARP信息为各接入设备生成用于指导去往所述第一VM的流量转发的转发流表项。
作为一个实施例,该装置进一步包括:
检测单元,用于在所述MAC地址冲突单元上报所述MAC地址冲突报文后的设定时间内检测本地已存储的用于指导去往所述第一VM的流量转发的转发流表项是否发生更新;
如果否,则继续上报MAC地址冲突报文至SDN控制器。
至此,完成图5所示装置结构描述。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种表项更新方法,其特征在于,该方法应用于SDN控制器,包括:
接收接入设备在检测到MAC地址冲突时上报的MAC地址冲突报文,所述MAC地址冲突为:所述接入设备在检测到本地接入虚拟机VM的端口与所述接入设备已存储的与所述VM的MAC地址匹配的MAC转发表项中的出端口不同;
从所述MAC地址冲突报文中提取出所述VM的IP地址,构造ARP请求报文并广播发送,所述ARP请求报文中的目标IP地址为所述VM的IP地址;
接收所述接入设备上报的所述VM响应所述ARP请求报文的ARP应答报文,依据所述ARP应答报文更新已学习的所述VM的ARP信息中的接入设备和出端口,更新后的出端口为接入设备收到ARP应答报文的端口,更新后的接入设备为上报所述ARP应答报文的接入设备;
根据所述VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述VM的流量。
2.根据权利要求1所述的方法,其特征在于,该方法之前进一步包括:
向自身控制的各接入设备下发MAC冲突检测流表项;
所述MAC冲突检测流表项用于指示接入设备在检测到MAC地址冲突时执行以下两个动作:
动作1,上报MAC地址冲突报文给SDN控制器;
动作2,转发报文,该报文为发生MAC地址冲突时VM发送的报文。
3.根据权利要求1所述的方法,其特征在于,所述MAC地址冲突报文为通过开放流Openflow协议封装的报文,所述报文为发生MAC地址冲突时VM发送的报文。
4.一种表项更新方法,其特征在于,该方法应用于接入设备,包括:
接收本地第一虚拟机VM发送的报文;
当检测到MAC地址冲突时,上报携带所述第一VM的IP地址的MAC地址冲突报文至SDN控制器,以触发所述SDN控制器构造目标IP地址为所述第一VM的IP地址的ARP请求报文;所述MAC地址冲突为:本设备上接入所述第一VM的端口与本设备上已存储的与所述第一VM的MAC地址匹配的MAC转发表项中的出端口不同;
接收SDN控制器发送的所述ARP请求报文并广播发送给本地接入的各VM;
接收所述第一VM返回的响应所述ARP请求报文的ARP应答报文;
将所述ARP应答报文上报至SDN控制器,以使SDN控制器更新第一VM的ARP信息中的出端口和接入设备并根据所述ARP信息为各接入设备生成用于指导去往所述第一VM的流量转发的转发流表项。
5.根据权利要求4所述的方法,其特征在于,该方法进一步包括:
在上报所述MAC地址冲突报文后的设定时间内检测本地已存储的用于指导去往所述第一VM的流量转发的转发流表项是否发生更新;
如果否,则继续上报MAC地址冲突报文至SDN控制器。
6.一种表项更新装置,其特征在于,该装置应用于SDN控制器,包括:
MAC地址冲突报文接收单元,接收接入设备在检测到MAC地址冲突时上报的MAC地址冲突报文,所述MAC地址冲突为:所述接入设备在检测到本地接入虚拟机VM的端口与所述接入设备已存储的与所述VM的MAC地址匹配的MAC转发表项中的出端口不同;
ARP请求报文构造单元,用于从所述MAC地址冲突报文中提取出所述VM的IP地址,构造ARP请求报文并广播发送,所述ARP请求报文中的目标IP地址为所述VM的IP地址;
ARP应答接收单元,用于接收所述接入设备上报的所述VM响应所述ARP请求报文的ARP应答报文;
表项更新单元,用于依据所述ARP应答报文更新已学习的所述VM的ARP信息中的接入设备和出端口,更新后的出端口为接入设备收到ARP应答报文的端口,更新后的接入设备为上报所述ARP应答报文的接入设备;根据所述VM的ARP信息,针对自身控制的各接入设备生成并下发转发流表项,以指导各接入设备转发去往所述VM的流量。
7.根据权利要求6所述的装置,其特征在于,该装置进一步包括:
MAC冲突检测流表单元,用于向自身控制的各接入设备下发MAC冲突检测流表项;
所述MAC冲突检测流表项用于指示接入设备在检测到MAC地址冲突时执行以下两个动作:
动作1,上报MAC地址冲突报文给SDN控制器;
动作2,转发报文,该报文为发生MAC地址冲突时VM发送的报文。
8.根据权利要求6所述的装置,其特征在于,所述MAC地址冲突报文为通过Openflow协议封装的报文,所述报文为发生MAC地址冲突时VM发送的报文。
9.一种表项更新装置,其特征在于,该装置应用于接入设备,包括:
MAC地址冲突单元,用于接收本地第一虚拟机VM发送的报文;当检测到MAC地址冲突时,上报携带所述第一VM的IP地址的MAC地址冲突报文至SDN控制器,以触发所述SDN控制器构造目标IP地址为所述第一VM的IP地址的ARP请求报文;所述MAC地址冲突为:本设备上接入所述第一VM的端口与本设备上已存储的与所述第一VM的MAC地址匹配的MAC转发表项中的出端口不同;
ARP请求报文单元,用于接收SDN控制器发送的所述ARP请求报文并广播发送给本地接入的各VM;
ARP应答单元,用于接收所述第一VM返回的响应所述ARP请求报文的ARP应答报文,将所述ARP应答报文上报至SDN控制器,以使SDN控制器更新第一VM的ARP信息中的出端口和接入设备并根据所述ARP信息为各接入设备生成用于指导去往所述第一VM的流量转发的转发流表项。
10.根据权利要求9所述的装置,其特征在于,该装置进一步包括:
检测单元,用于在所述MAC地址冲突单元上报所述MAC地址冲突报文后的设定时间内检测本地已存储的用于指导去往所述第一VM的流量转发的转发流表项是否发生更新;
如果否,则继续上报MAC地址冲突报文至SDN控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711027471.1A CN107623757B (zh) | 2017-10-27 | 2017-10-27 | 表项更新方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711027471.1A CN107623757B (zh) | 2017-10-27 | 2017-10-27 | 表项更新方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107623757A CN107623757A (zh) | 2018-01-23 |
CN107623757B true CN107623757B (zh) | 2021-03-23 |
Family
ID=61093472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711027471.1A Active CN107623757B (zh) | 2017-10-27 | 2017-10-27 | 表项更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107623757B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810183B (zh) * | 2018-05-04 | 2021-09-07 | 新华三技术有限公司 | 冲突mac地址的处理方法、装置和机器可读存储介质 |
CN108429687B (zh) * | 2018-05-31 | 2021-04-27 | 新华三技术有限公司 | 报文转发方法和装置 |
CN109495605A (zh) * | 2018-12-20 | 2019-03-19 | 天津天地伟业信息系统集成有限公司 | 一种基于ARP的Mac冲突检测方法 |
CN110247851B (zh) * | 2019-06-28 | 2022-01-21 | 北京东土军悦科技有限公司 | 三层交换机中的信息更新方法、装置、三层交换机及介质 |
CN114244810A (zh) * | 2020-09-07 | 2022-03-25 | 中兴通讯股份有限公司 | 虚拟ip管理方法、装置、电子设备和存储介质 |
CN112134794B (zh) * | 2020-10-28 | 2022-04-01 | 新华三大数据技术有限公司 | 一种流表备份方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219340A (zh) * | 2014-09-25 | 2014-12-17 | 杭州华三通信技术有限公司 | 一种arp应答代理方法以及装置 |
CN104767841A (zh) * | 2015-04-30 | 2015-07-08 | 杭州华三通信技术有限公司 | 软件定义网络中更新地址解析协议表项的方法和网关设备 |
CN105763512A (zh) * | 2014-12-17 | 2016-07-13 | 杭州华三通信技术有限公司 | Sdn虚拟化网络的通信方法和装置 |
CN106850379A (zh) * | 2015-12-04 | 2017-06-13 | 中国电信股份有限公司 | 用于实现子网互通的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160095554A (ko) * | 2015-02-03 | 2016-08-11 | 한국전자통신연구원 | Sdn 기반의 물리 주소 결정장치 및 그 방법 |
-
2017
- 2017-10-27 CN CN201711027471.1A patent/CN107623757B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219340A (zh) * | 2014-09-25 | 2014-12-17 | 杭州华三通信技术有限公司 | 一种arp应答代理方法以及装置 |
CN105763512A (zh) * | 2014-12-17 | 2016-07-13 | 杭州华三通信技术有限公司 | Sdn虚拟化网络的通信方法和装置 |
CN104767841A (zh) * | 2015-04-30 | 2015-07-08 | 杭州华三通信技术有限公司 | 软件定义网络中更新地址解析协议表项的方法和网关设备 |
CN106850379A (zh) * | 2015-12-04 | 2017-06-13 | 中国电信股份有限公司 | 用于实现子网互通的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107623757A (zh) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107623757B (zh) | 表项更新方法和装置 | |
US9634889B2 (en) | Method for migrating service of data center, apparatus, and system | |
CN109587065B (zh) | 转发报文的方法、装置、交换机、设备及存储介质 | |
CN109257265B (zh) | 一种泛洪抑制方法、vxlan网桥、网关及系统 | |
US20150071289A1 (en) | System and method for address resolution | |
US20150358232A1 (en) | Packet Forwarding Method and VXLAN Gateway | |
CN105577548B (zh) | 一种软件定义网络中报文处理方法和装置 | |
EP3282649B1 (en) | Data packet forwarding | |
US20190068544A1 (en) | Communications Method and Apparatus for Virtual Extensible Local Area Network | |
US9634887B2 (en) | System, method and computer-readable medium for using a plurality of virtual machines | |
US9716687B2 (en) | Distributed gateways for overlay networks | |
US20200036682A1 (en) | Communication apparatus and communication system | |
US20160330167A1 (en) | Arp Implementation Method, Switch Device, and Control Device | |
JP2018532342A (ja) | Vxlanに用いられるパケット転送 | |
US10122548B2 (en) | Services execution | |
CN107682275B (zh) | 报文监控方法及装置 | |
CN109547350B (zh) | 一种路由学习方法及网关设备 | |
CN108718269A (zh) | 报文处理方法及装置 | |
US20150124808A1 (en) | Network System and Network Relay Device | |
US20190132278A1 (en) | Method and system for host discovery and tracking in a network | |
US9984036B2 (en) | Communication system, control apparatus, communication method, and program | |
US9985926B2 (en) | Address acquiring method and network virtualization edge device | |
CN107528929B (zh) | Arp条目的处理方法及装置 | |
CN105634955B (zh) | 流表更新方法及装置 | |
US20170070473A1 (en) | A switching fabric including a virtual switch |
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 |