CN104660469B - 一种二层网络的连通性检测方法及相关设备 - Google Patents

一种二层网络的连通性检测方法及相关设备 Download PDF

Info

Publication number
CN104660469B
CN104660469B CN201510083217.8A CN201510083217A CN104660469B CN 104660469 B CN104660469 B CN 104660469B CN 201510083217 A CN201510083217 A CN 201510083217A CN 104660469 B CN104660469 B CN 104660469B
Authority
CN
China
Prior art keywords
mac address
message
mac
interchanger
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.)
Active
Application number
CN201510083217.8A
Other languages
English (en)
Other versions
CN104660469A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510083217.8A priority Critical patent/CN104660469B/zh
Publication of CN104660469A publication Critical patent/CN104660469A/zh
Application granted granted Critical
Publication of CN104660469B publication Critical patent/CN104660469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明提供了一种二层网络的连通性检测方法及相关设备,用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性,所述方法包括:控制器向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一MAC流表项包括第一匹配项和第一动作,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器;所述控制器根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。可见本发明通过下发流表项的方式,就能够实现对属于同一广播域的第一MAC地址和第二MAC地址进行连通性检测,不需要进行复杂的参数配置过程,因此减少了工作量。

Description

一种二层网络的连通性检测方法及相关设备
技术领域
本发明涉及电子通信领域,尤其是涉及一种二层网络的连通性检测方法及相关设备。
背景技术
在虚拟可扩展局域网(英文:Virtual eXtensible Local Area Network,简称:VxLAN)、虚拟局域网(英文:Virtual Local Area Network,简称:VLAN)等二层网络中,为了提高数据传输的可靠性,通常需要对属于同一广播域的MAC地址之间的连通性进行检测。
目前在一些二层网络中,对属于同一广播域的介质访问控制(英文:Media AccessControl,简称:MAC)地址之间的连通性进行检测时,可以使用电气和电子工程师协会(英文:Institute of Electrical and Electronics Engineers,简称:IEEE)802.1g的以太网操作、管理与维护(英文:Operations,Administration and Mai ntenance of Ethernet,简称:ETHOAM)的Mac Ping功能。根据IEEE 802.1g协议的规定,在使用Mac Ping功能时首先需要在二层网络中配置维护域(英文:Maintenance Domian,简称:MD),根据业务实例在维护联盟中配置MA(英文:Maintenance Association,简称:MA),其中配置出的MA的边界节点称为维护终结点(英文:Maintenance association End Point,简称:MEP),中间节点称为维护中间结点(英文:Maintenance association Internal Point,简称:MIP)。在配置MA和MD之后,从MA的MEP和MIP中确定出维护节点和远端维护节点,由维护节点向远端维护节点发送环回消息(英文:Loopback Message,简称:LBM),根据能否接收到远端维护节点返回的环回应答(英文:Loopback Replay,简称:LBR),实现维护节点的MAC地址和远端维护节点的MAC地址的连通性检测。
可见,目前在使用IEEE 802.1g ETHOAM的Mac Ping功能实现连通性检测时,由于根据IEEE 802.1g协议的规定,必须要在二层网络中配置MD和MA,而配置MD和MA时需要对二层网络中的每个节点都进行复杂的参数配置,从而造成了较大的工作量。
发明内容
本发明解决的技术问题在于提供一种二层网络的连通性检测方法及相关设备,以实现在对属于同一广播域的MAC地址之间的连通性进行检测时,无需复杂的参数配置过程,从而减少了工作量。
为此,本发明解决技术问题的技术方案是:
第一方面,本发明提供了一种二层网络的连通性检测方法,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述方法包括:
控制器向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址;
所述控制器根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
在第一方面的第一种可能的实现方式中,还包括:
所述控制器向所述第二MAC地址对应的交换机发送第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二MAC地址对应的交换机根据所述第二匹配项匹配到第二报文后,生成所述第一报文;
所述控制器向所述第一交换机发送所述第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第二动作具体用于指示所述第二MAC地址对应的交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第二动作具体用于指示所述第二MAC地址对应的交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
结合第一方面的第一种至第三种任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第二动作还用于指示所述第二MAC地址对应的交换机匹配到所述第二报文后,将所述第二报文上传至所述控制器;
所述控制器根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性,包括:
所述控制器根据是否在预设时间内接收到所述第二报文和所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述控制器根据是否在预设时间内接收到上传的所述第二报文和所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性,包括:
若所述控制器在所述预设时间内接收到上传的所述第二报文和所述第一报文,检测出所述第一MAC地址和所述第二MAC地址双向连通;
若所述控制器在所述预设时间内接收到上传的所述第二报文,且未接收到上传的所述第一报文,检测出从所述第一MAC地址至所述第二MAC地址单向连通,从所述第二MAC地址至所述第一MAC地址单向未连通;
若所述控制器在所述预设时间内未接收到上传的所述第二报文,且未接收到上传的所述第一报文,检测出所述第一MAC地址和所述第二MAC地址未连通。
结合第一方面的第一种至第三种任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述第一MAC地址与所述第一交换机的第一端口对应,所述第二MAC地址与所述第一交换机的第二端口对应;所述第一匹配项还包括接收端口为所述第一端口;
所述控制器向第一交换机发送第二报文或者指示生成所述第二报文的数据,包括:
所述控制器向所述第一端口发送所述第二报文。
结合第一方面的第一种至第三种任一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述第二MAC地址与第二交换机对应。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述控制器向第一交换机发送第二报文或者指示生成所述第二报文的数据,包括:
所述控制器向所述第一交换机的第三端口发送所述第二报文,所述第三端口为所述第一交换机上用于与所述第二交换机连接的端口。
结合第一方面的第七种可能的实现方式,在第一方面的第九种可能的实现方式中,所述控制器向第一交换机发送第二报文或者指示生成所述第二报文的数据,包括:
所述控制器向所述第一交换机的广播域实体发送指示生成所述第二报文的第一数据。
结合第一方面的第九种可能的实现方式,在第一方面的第十种可能的实现方式中,所述二层网络为虚拟局域网VLAN或者虚拟可扩展局域网VxLAN;
所述二层网络为VLAN,所述第一数据包括:所述第一MAC地址和所述第二MAC地址;所述方法还包括:所述控制器向所述第一交换机发送所述第一MAC地址和所述第二MAC地址所属的全局VLAN标识或桥接域BD;
所述二层网络为VxLAN,所述第一数据包括:所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VxLAN网络标识符VNI。
结合第一方面的第七种可能的实现方式,在第一方面的第十一种可能的实现方式中,所述控制器向第一交换机发送第二报文或者指示生成所述第二报文的数据,包括:
所述控制器向所述第一交换机的第一端口发送指示生成所述第二报文的第二数据,所述第一端口与所述第一MAC地址对应。
结合第一方面的第十一种可能的实现方式,在第一方面的第十二种可能的实现方式中,所述二层网络为VLAN或者VxLAN;
所述二层网络为VLAN,所述第二数据包括:所述第一MAC地址和所述第二MAC地址;所述方法还包括:所述控制器向所述第一交换机发送所述第一端口的标识和所述第一端口对应的VLAN标识;
所述二层网络为VxLAN,所述第二数据包括:所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识。
第二方面,本发明提供了一种二层网络的连通性检测方法,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述方法包括:
第一交换机接收第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
在第二方面的第一种可能的实现方式中,还包括:
所述第一交换机接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址;
所述第一交换机发送所述第二报文。
第三方面,本发明提供了一种二层网络的连通性检测方法,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述方法包括:
第二交换机接收第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二交换机与所述第二MAC地址对应,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二交换机根据所述第二匹配项匹配到第二报文后生成第一报文,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第二报文的源MAC地址为第一MAC地址且目的MAC地址为第二MAC地址;
所述第二交换机接收所述第二报文后,根据所述第二MAC流表项生成所述第一报文;
所述第二交换机发送所述第一报文。
在第三方面的第一种可能的实现方式中,所述第二动作具体用于指示所述第二交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
在第三方面的第二种可能的实现方式中,所述第二动作具体用于指示所述第二交换机,在转发面根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
第四方面,本发明提供了一种二层网络的连通性检测方法,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述方法包括:
第一交换机接收第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址;
所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
在第四方面的第一种可能的实现方式中,还包括:
所述第一交换机接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址;
所述第一交换机发送所述第二报文。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述第一MAC地址与所述第一交换机的第一端口对应,所述第二MAC地址与所述第一交换机的第二端口对应;所述第一匹配项还包括接收端口为所述第一端口;
所述第一交换机接收第二报文或者指示生成所述第二报文的数据,包括:
所述第一交换机通过所述第一端口接收所述第二报文。
结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,还包括:
所述第一交换机接收第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二匹配项还包括接收端口为所述第二端口,所述第二动作用于指示所述第一交换机根据所述第二匹配项匹配到所述第二报文后,生成所述第一报文。
结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,所述第二动作具体用于指示所述第一交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
结合第四方面的第三种可能的实现方式,在第四方面的第五种可能的实现方式中,所述第二动作具体用于指示所述第一交换机,在转发面根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
结合第四方面的第三种至第五种任一种可能的实现方式,在第四方面的第六种可能的实现方式中,所述第二动作还用于指示所述第一交换机根据所述第二匹配项匹配到所述第二报文后,将所述第二报文从所述第一交换机的转发面上传至控制面;
所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性,包括:
所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文和所述第二报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
结合第四方面的第六种可能的实现方式,在第四方面的第七种可能的实现方式中,所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文和所述第二报文,检测所述第一MAC地址和所述第二MAC地址的连通性,包括:
若所述第一交换机的控制面在所述预设时间内接收到所述第二报文和所述第一报文,检测出所述第一MAC地址和所述第二MAC地址双向连通;
若所述第一交换机的控制面在所述预设时间内接收到所述第二报文,且未接收到所述第一报文,检测出由所述第一MAC地址向所述第二MAC地址单向连通,由所述第二MAC地址向所述第一MAC地址单向未连通;
若所述第一交换机的控制面在所述预设时间内未接收到所述第二报文,且未接收到所述第一报文,检测出所述第一MAC地址和所述第二MAC地址未连通。
结合第四方面的第一种可能的实现方式,在第四方面的第八种可能的实现方式中,所述第二MAC地址与第二交换机对应。
结合第四方面的第八种可能的实现方式,在第四方面的第九种可能的实现方式中,所述第一交换机接收第二报文或者指示生成所述第二报文的数据,包括:
所述第一交换机通过第三端口接收所述第二报文,所述第三端口为所述第一交换机上用于与所述第二交换机连接的端口。
结合第四方面的第八种可能的实现方式,在第四方面的第十种可能的实现方式中,所述第一交换机接收第二报文或者指示生成所述第二报文的数据,包括:
所述第一交换机通过所述第一交换机的广播域实体接收指示生成所述第二报文的第一数据。
结合第四方面的第十种可能的实现方式,在第四方面的第十一种可能的实现方式中,所述二层网络为虚拟局域网VLAN或者虚拟可扩展局域网VxLAN;
所述二层网络为VLAN,所述第一数据包括:所述第一MAC地址和所述第二MAC地址;所述方法还包括:所述第一交换机接收所述第一MAC地址和所述第二MAC地址所属的全局VLAN标识或桥接域BD;
所述二层网络为VxLAN,所述第一数据包括:所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VxLAN网络标识符VNI。
结合第四方面的第八种可能的实现方式,在第四方面的第十二种可能的实现方式中,所述第一交换机接收所述控制器发送的第二报文或者指示生成所述第二报文的数据,包括:
所述第一交换机通过第一端口接收指示生成所述第二报文的第一数据,所述第一端口为所述第一交换机上与所述第一MAC地址对应的端口。
结合第四方面的第十二种可能的实现方式,在第四方面的第十三种可能的实现方式中,所述二层网络为VLAN或者VxLAN;
所述二层网络为VLAN,所述第二数据包括:所述第一MAC地址和所述第二MAC地址;所述方法还包括:所述第一交换机接收所述第一端口的标识和所述第一端口对应的VLAN标识;
所述二层网络为VxLAN,所述第二数据包括:所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识。
第五方面,本发明提供了一种二层网络的连通性检测方法,用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述方法包括:
控制器向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
第六方面,本发明提供了一种控制器,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述控制器包括:
发送单元,用于向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址;
处理单元,用于根据所述控制器是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
在第六方面的第一种可能的实现方式中,所述发送单元,还用于向所述第二MAC地址对应的交换机发送第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二MAC地址对应的交换机根据所述第二匹配项匹配到第二报文后,生成所述第一报文;
所述发送单元,还用于向所述第一交换机发送所述第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址。
结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,所述第二动作具体用于指示所述第二MAC地址对应的交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
结合第六方面的第一种可能的实现方式,在第六方面的第三种可能的实现方式中,所述第二动作具体用于指示所述第二MAC地址对应的交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
结合第六方面的第一种至第三种任一种可能的实现方式,在第六方面的第四种可能的实现方式中,所述第二动作还用于指示所述第二MAC地址对应的交换机匹配到所述第二报文后,将所述第二报文上传至所述控制器;
所述处理单元具体用于,根据所述控制器是否在预设时间内接收到所述第二报文和所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
结合第六方面的第四种可能的实现方式,在第六方面的第五种可能的实现方式中,所述处理单元具体用于,
若所述控制器在所述预设时间内接收到上传的所述第二报文和所述第一报文,检测出所述第一MAC地址和所述第二MAC地址双向连通;
若所述控制器在所述预设时间内接收到上传的所述第二报文,且未接收到上传的所述第一报文,检测出从所述第一MAC地址至所述第二MAC地址单向连通,从所述第二MAC地址至所述第一MAC地址单向未连通;
若所述控制器在所述预设时间内未接收到上传的所述第二报文,且未接收到上传的所述第一报文,检测出所述第一MAC地址和所述第二MAC地址未连通。
结合第六方面的第一种至第三种任一种可能的实现方式,在第六方面的第六种可能的实现方式中,所述第一MAC地址与所述第一交换机的第一端口对应,所述第二MAC地址与所述第一交换机的第二端口对应;所述第一匹配项还包括接收端口为所述第一端口;
当向第一交换机发送第二报文或者指示生成所述第二报文的数据时,所述发送单元用于向所述第一端口发送所述第二报文。
结合第六方面的第一种至第三种任一种可能的实现方式,在第六方面的第七种可能的实现方式中,所述第二MAC地址与第二交换机对应。
结合第六方面的第七种可能的实现方式,在第六方面的第八种可能的实现方式中,当向第一交换机发送第二报文或者指示生成所述第二报文的数据时,所述发送单元用于向所述第一交换机的第三端口发送所述第二报文,所述第三端口为所述第一交换机上用于与所述第二交换机连接的端口。
结合第六方面的第七种可能的实现方式,在第六方面的第九种可能的实现方式中,当向第一交换机发送第二报文或者指示生成所述第二报文的数据时,所述发送单元用于向所述第一交换机的广播域实体发送指示生成所述第二报文的第一数据。
结合第六方面的第九种可能的实现方式,在第六方面的第十种可能的实现方式中,所述二层网络为虚拟局域网VLAN或者虚拟可扩展局域网VxLAN;
所述二层网络为VLAN,所述第一数据包括:所述第一MAC地址和所述第二MAC地址;所述发送单元还用于向所述第一交换机发送所述第一MAC地址和所述第二MAC地址所属的全局VLAN标识或桥接域BD;
所述二层网络为VxLAN,所述第一数据包括:所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VxLAN网络标识符VNI。
结合第六方面的第七种可能的实现方式,在第六方面的第十一种可能的实现方式中,当向第一交换机发送第二报文或者指示生成所述第二报文的数据时,所述发送单元用于向所述第一交换机的第一端口发送指示生成所述第二报文的第二数据,所述第一端口与所述第一MAC地址对应。
结合第六方面的第十一种可能的实现方式,在第六方面的第十二种可能的实现方式中,所述二层网络为VLAN或者VxLAN;
所述二层网络为VLAN,所述第二数据包括:所述第一MAC地址和所述第二MAC地址;所述发送单元还用于向所述第一交换机发送所述第一端口的标识和所述第一端口对应的VLAN标识;
所述二层网络为VxLAN,所述第二数据包括:所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识。
第七方面,本发明提供了一种交换机,所述交换机为第一交换机,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址;所述第一交换机包括:
接收单元,用于接收第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
在第七方面的第一种可能的实现方式中,还包括:发送单元;
所述接收单元,还用于接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址;
所述发送单元,用于发送所述第二报文。
第八方面,本发明提供了一种交换机,所述交换机为第二交换机,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址;所述第二交换机包括:接收单元和发送单元;
所述接收单元,用于接收第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二交换机与所述第二MAC地址对应,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二交换机根据所述第二匹配项匹配到第二报文后生成第一报文,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第二报文的源MAC地址为第一MAC地址且目的MAC地址为第二MAC地址;
所述接收单元,还用于接收所述第二报文后,根据所述第二MAC流表项生成所述第一报文;
所述发送单元,用于发送所述第一报文。
在第八方面的第一种可能的实现方式中,所述第二动作具体用于指示所述第二交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
在第八方面的第二种可能的实现方式中,所述第二动作具体用于指示所述第二交换机,在转发面根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
第九方面,本发明提供了一种交换机,所述交换机为第一交换机,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址;所述第一交换机包括:
接收单元,用于接收第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址;
处理单元,用于根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
在第九方面的第一种可能的实现方式中,所述第一交换机还包括发送单元;
所述接收单元,还用于接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址;
所述发送单元,还用于发送所述第二报文。
结合第九方面的第一种可能的实现方式,在第九方面的第二种可能的实现方式中,所述第一MAC地址与所述第一交换机的第一端口对应,所述第二MAC地址与所述第一交换机的第二端口对应;所述第一匹配项还包括接收端口为所述第一端口;
当接收第二报文或者指示生成所述第二报文的数据时,所述接收单元用于通过所述第一端口接收所述第二报文。
结合第九方面的第二种可能的实现方式,在第九方面的第三种可能的实现方式中,所述接收单元,还用于接收第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二匹配项还包括接收端口为所述第二端口,所述第二动作用于指示所述第一交换机根据所述第二匹配项匹配到所述第二报文后,生成所述第一报文。
结合第九方面的第三种可能的实现方式,在第九方面的第四种可能的实现方式中,所述第二动作具体用于指示所述第一交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
结合第九方面的第三种可能的实现方式,在第九方面的第五种可能的实现方式中,所述第二动作具体用于指示所述第一交换机,在转发面根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
结合第九方面的第三种至第五种任一种可能的实现方式,在第九方面的第六种可能的实现方式中,所述第二动作还用于指示所述第一交换机根据所述第二匹配项匹配到所述第二报文后,将所述第二报文从所述第一交换机的转发面上传至控制面;
所述处理单元具体用于根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文和所述第二报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
结合第九方面的第六种可能的实现方式,在第九方面的第七种可能的实现方式中,所述处理单元具体用于,
若所述第一交换机的控制面在所述预设时间内接收到所述第二报文和所述第一报文,检测出所述第一MAC地址和所述第二MAC地址双向连通;
若所述第一交换机的控制面在所述预设时间内接收到所述第二报文,且未接收到所述第一报文,检测出由所述第一MAC地址向所述第二MAC地址单向连通,由所述第二MAC地址向所述第一MAC地址单向未连通;
若所述第一交换机的控制面在所述预设时间内未接收到所述第二报文,且未接收到所述第一报文,检测出所述第一MAC地址和所述第二MAC地址未连通。
结合第九方面的第一种可能的实现方式,在第九方面的第八种可能的实现方式中,所述第二MAC地址与第二交换机对应。
结合第九方面的第八种可能的实现方式,在第九方面的第九种可能的实现方式中,当接收第二报文或者指示生成所述第二报文的数据时,所述接收单元用于通过第三端口接收所述第二报文,所述第三端口为所述第一交换机上用于与所述第二交换机连接的端口。
结合第九方面的第八种可能的实现方式,在第九方面的第十种可能的实现方式中,当接收第二报文或者指示生成所述第二报文的数据时,所述接收单元用于通过广播域实体接收指示生成所述第二报文的第一数据。
结合第九方面的第十种可能的实现方式,在第九方面的第十一种可能的实现方式中,所述二层网络为虚拟局域网VLAN或者虚拟可扩展局域网VxLAN;
所述二层网络为VLAN,所述第一数据包括:所述第一MAC地址和所述第二MAC地址;所述接收单元还用于接收所述第一MAC地址和所述第二MAC地址所属的全局VLAN标识或桥接域BD;
所述二层网络为VxLAN,所述第一数据包括:所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VxLAN网络标识符VNI。
结合第九方面的第八种可能的实现方式,在第九方面的第十二种可能的实现方式中,当接收所述控制器发送的第二报文或者指示生成所述第二报文的数据时,所述接收单元用于通过第一端口接收指示生成所述第二报文的第一数据,所述第一端口为所述第一交换机上与所述第一MAC地址对应的端口。
结合第九方面的第十二种可能的实现方式,在第九方面的第十三种可能的实现方式中,所述二层网络为VLAN或者VxLAN;
所述二层网络为VLAN,所述第二数据包括:所述第一MAC地址和所述第二MAC地址;所述接收单元还用于接收所述第一端口的标识和所述第一端口对应的VLAN标识;
所述二层网络为VxLAN,所述第二数据包括:所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识。
第十方面,本发明提供了一种控制器,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述控制器包括:
发送单元,用于向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
通过上述技术方案可知,本发明在检测属于同一广播域的所述第一MAC地址和所述第二MAC地址的连通性时,由所述控制器向所述第一交换机发送所述第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一MAC流表项使得所述第一交换机根据所述第一匹配项匹配到所述第一报文后,将所述第一报文上传至所述控制器或者从所述第一交换机的转发面上传至控制面。由于所述第一报文从第二MAC地址发送至所述第一MAC地址,因此由所述控制器根据是否在预设时间内接收到所述第一报文,或者由所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,就能够检测出所述第一MAC地址和所述第二MAC地址的连通性。其中所述第一MAC地址和所述第二MAC地址是预留的MAC地址,使得所述第一报文与用户的业务报文相区分,保证了用户的业务报文不会对检测结果产生影响。显然本发明实施例通过下发流表项的方式,就能够实现对属于同一广播域的第一MAC地址和第二MAC地址进行连通性检测,不需要进行复杂的参数配置过程,因此减少了工作量。
附图说明
图1为本发明实施例提供的一种方法实施例的流程示意图;
图2为本发明实施例提供的另一种方法实施例的流程示意图;
图3为本发明实施例用于的一种可能的拓扑结构;
图4为本发明实施例用于的另一种可能的拓扑结构;
图5为第一交换机的一种可能的结构示意图;
图6为本发明实施例提供的另一种方法实施例的流程示意图;
图7为本发明实施例提供的另一种方法实施例的流程示意图;
图8为本发明实施例提供的另一种方法实施例的流程示意图;
图9为本发明实施例提供的另一种方法实施例的流程示意图;
图10为本发明实施例提供的一种装置实施例的结构示意图;
图11为本发明实施例提供的另一种装置实施例的结构示意图;
图12为本发明实施例提供的另一种装置实施例的结构示意图;
图13为本发明实施例提供的另一种装置实施例的结构示意图;
图14为本发明实施例提供的另一种装置实施例的结构示意图;
图15为本发明实施例提供的另一种装置实施例的结构示意图;
图16为本发明实施例提供的另一种装置实施例的结构示意图。
具体实施方式
在VxLAN、VLAN等二层网络中,为了提高数据传输的可靠性,通常需要对同一广播域的MAC地址之间的连通性进行检测。例如对于VxLAN,目前主要需要的是对具有同一VxLAN网络标识符(英文:Virtual Network Identifier,简称:VNI)的MAC地址之间的连通性检测。
在一些二层网络中,对同一广播域的MAC地址之间的连通性进行检测时,可以使用IEEE 802.1g ETHOAM的Mac Ping功能。根据IEEE 802.1g协议的规定,在使用Mac Ping功能时首先需要在二层网络中配置MD,根据业务实例在MD中配置MA,其中配置出的MA的边界节点称为MEP,中间节点称为MIP。在配置MA和MD之后,从MA的MEP和MIP中确定出维护节点和远端维护节点,由维护节点向远端维护节点发送LBM,根据能否接收到远端维护节点返回的LBR,实现维护节点的MAC地址和远端维护节点的MAC地址的连通性检测。
由于根据IEEE 802.1g协议的规定,必须要在二层网络中配置MD和MA,而配置MD和MA时需要对二层网络中的每个节点都进行复杂的参数配置,从而造成了较大的工作量。并且,由于IEEE 802.1g协议本身的要求比较多,除了必须要在二层网络中配置MD和MA外,检测报文还必须是LBM和LBR,因此要求二层网络中的交换机必须能够识别出LBM和LBR这种特殊格式的报文,导致对交换机的设备要求比较高。
除了IEEE 802.1g的ETHOAM的Mac Ping功能之外,还可以通过虚拟专用局域网服务(英文:Virtual Private Lan Service,简称:VPLS)的Mac Ping技术实现对同一广播域的MAC地址之间的连通性检测。这种技术主要用于多协议标签交换(英文:Multi-ProtocolLabel Switching,简称:MPLS)网络,当需要检测用户侧运营商边缘路由器(英文:UserProvide Edge,简称:UPE)1和UPE2上的用户网络边缘设备(英文:Customer Edge,简称:CE)1的连通性时,UPE1会向UPE2发送检测报文,该检测报文通过Router Alert标签进行标识,UPE2接收到检测报文后,若能在UPE2上查找到CE1的MAC地址,就向UPE1回复应答报文,UPE1根据能否接收到UPE2的应答报文判断UPE1和CE1的连通性。然而,这种方式由于必须通过Router Alert标签标识检测报文,不能用于除了MPLS网络之外的其他网络,适用范围较小。而且,在MPLS网络中,UPE会定期老化UPE上CE的MAC地址,因此当UPE2将CE1的MAC地址老化时,UPE2查找不到CE1的MAC地址,因此也不会向UPE1回复应答报文,UPE1由于接收不到检测报文而检测出CE1和UPE1未连通,但是此时CE和UPE1有可能处于连通状态,显然这种方式很有可能造成连通性的误检测。
而在本发明实施例中,提供一种二层网络的连通性检测方法及相关设备,以实现在对属于同一广播域的MAC地址之间的连通性进行检测时,无需复杂的参数配置过程,从而减少了工作量。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”或“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要格外说明的是,贯穿于本说明书,预留的MAC地址指的是不用于向用户分配的MAC地址,即不与用户使用的MAC地址重复。并且在本发明实施例中,预留的MAC地址可以具体是为连通性检测预留的MAC地址。
本发明实施例的主要思想包括但不仅限于:在检测第一MAC地址和第二MAC地址的连通性时,由控制器向所述第一MAC地址对应的第一交换机发送第一MAC流表项,所述第一MAC流表项使得所述第一交换机匹配到从所述第二MAC地址发送至所述第一MAC地址的第一报文时,上传至所述控制器,因此所述控制器能够根据是否在预设时间内接收到所述第一报文检测所述第一MAC地址和所述第二MAC地址的连通性。
请参阅图1,本发明实施例提供了二层网络的连通性检测方法的一种方法实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。
在本发明实施例中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,即所述第一MAC地址和所述第二MAC地址均不用于向用户分配。因此,本发明实施例能够保证在所述第一MAC地址或者所述第二MAC地址上,均不会生成用户的业务报文,以避免用户的业务报文对本发明实施例的检测结果产生影响。其中,本实施例还可以包括:由所述控制器等设备对所述第一MAC地址和所述第二MAC地址进行重复性检测,即确定所述第一MAC地址或所述第二MAC地址是否与已向用户分配的MAC地址重复,当所述第一MAC地址或所述第二MAC地址出现重复时,进行重新分配。
其中,所述第一MAC地址和所述第二MAC地址可以为交换机上的虚拟机(VirtualMachine,VM)的MAC地址。而检测MAC地址之间的连通性,可以看做是检测交换机之间的连通性,也可以看做是检测交换机上的VM之间的连通性。例如在图3所示的网络拓扑中,本实施例可以具体用于对第一交换机上的VM1和第二交换机上的VM2进行连通性检测。需说明的是,图3仅为一种示例性的网络拓扑,其具体结构对本发明实施例并不起到任何限制作用。
本实施例的所述方法包括:
101:控制器向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据。
其中,所述第一交换机与所述第一MAC地址对应,即表示所述第一MAC地址为所述第一交换机上的VM的MAC地址,例如在图3中,所述第一交换机与所述第一交换机上的VM1的MAC地址对应。
在本发明实施例中,如表1所示,所述第一MAC流表项包括第一匹配项(英文:matchfield)和第一动作(英文:action),所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器,其中,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
表1
可见,所述控制器向所述第一交换机发送的所述第一MAC流表项中,所述第一匹配项为所述第一报文的源MAC地址和目的MAC地址的信息,因此所述第一交换机能够根据所述第一匹配项匹配到所述第一报文,即所述第一交换机能够判断出接收到所述第一报文。而当所述第一交换机根据所述第一匹配项判断出接收到所述第一报文时,所述第一交换机触发所述第一动作,即执行将所述第一报文上传至所述控制器。其中,由于所述第一报文是从所述第二MAC地址发送至所述第一MAC地址的报文,因此所述第一交换机实际上是当接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,将所述第一报文上传至所述控制器。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第一报文与用户的业务报文相区分,也可以说所述第一报文是用于连通性检测的报文。
在本发明实施例中,所述第一匹配项除了包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址之外,还可以包括广播域标识为所述第一MAC地址和所述第二MAC地址所属的广播域标识。并且,若所述控制器在检测所述第一MAC地址和所述第二MAC地址的连通性时,并没有检测其他MAC地址与所述第一MAC地址,或者所述第二MAC地址的连通性,那么所述第一匹配项可以包括所述第一报文的目的MAC地址信息而不包括所述第一报文的源MAC地址信息,或者包括所述第一报文的源MAC地址信息而不包括所述第一报文的目的MAC地址信息,即所述第一匹配项包括:目的MAC地址为所述第一MAC地址或者源MAC地址为所述第二MAC地址。
在本发明实施例中,所述控制器为了使得所述第一交换机获得所述第一MAC流表项,可以是直接生成所述第一MAC流表项并发送至所述第一交换机,也可以是将指示生成所述第一MAC流表项的数据发送至所述第一交换机,此时本实施例还可以包括:所述第一交换机根据该数据生成所述第一MAC流表项。本发明实施例中,交换机一般都具有转发面和控制面两个层面,每个层面分别由独立的芯片负责。因此,若所述控制器向所述第一交换机发送所述第一MAC流表项,一般由所述控制器向所述第一交换机的控制面发送所述第一MAC流表项,再由所述第一交换机的控制面将所述第一MAC流表项下发至转发面。若所述控制器向所述第一交换机发送用于指示生成所述第一MAC流表项的数据,则一般由所述控制器将该数据发送至所述第一交换机的控制面,由所述第一交换机的控制面根据该数据生成所述第一MAC流表项,再将生成的所述第一MAC流表项下发至转发面。
102:所述控制器根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
由于在101中,所述控制器向所述第一交换机发送所述第一MAC流表项,从而使得所述第一交换机接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,会将所述第一报文上传至所述控制器,因此,所述控制器根据是否在预设时间内接收到所述第一报文,就能够判断出所述第一交换机是否接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文,从而能够检测所述第一MAC地址和所述第二MAC地址的连通性。其中,由于所述第一交换机在接收所述第一MAC流表项后,一般会在所述第一交换机上保存所述第一MAC流表项,而在所述第一交换机将所述第一报文上传至所述控制器后,可以删除在所述第一交换机上保存的所述第一MAC流表项。
其中,所述控制器的具体检测方式可以是,若所述控制器在所述预设时间内接收到所述第一报文,则检测出所述第一MAC地址和所述第二MAC地址连通。而若所述控制器在所述预设时间内没有接收到所述第一报文,则检测出所述第一MAC地址和所述第二MAC地址未连通。上述连通可以指的是从所述第二MAC地址至所述第一MAC地址的单向连通。
通过上述技术方案可知,本发明实施例在检测属于同一广播域的所述第一MAC地址和所述第二MAC地址的连通性时,由所述控制器向所述第一交换机发送所述第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一MAC流表项使得所述第一交换机根据所述第一匹配项匹配到所述第一报文后,将所述第一报文上传至所述控制器。由于所述第一报文从第二MAC地址发送至所述第一MAC地址,因此由所述控制器根据是否在预设时间内接收到所述第一报文,就能够检测出所述第一MAC地址和所述第二MAC地址的连通性。其中所述第一MAC地址和所述第二MAC地址是预留的MAC地址,使得所述第一报文与用户的业务报文相区分,保证了用户的业务报文不会对检测结果产生影响。显然本发明实施例通过下发流表项的方式,就能够实现对属于同一广播域的第一MAC地址和第二MAC地址进行连通性检测,不需要进行复杂的参数配置过程,因此减少了工作量。
此外,在本发明实施例中,用于连通性检测的所述第一报文可以是普通的数据或者协议报文,不需要交换机必须能够识别出LBM和LBR等特殊格式的报文,降低了对交换机的设备要求。
并且,本发明实施例中不需要通过特殊格式的标签识别用于连通性检测的所述第一报文,因此能够适用于大部分二层网络,例如对VLAN、VxLAN等都能适用。同时也不局限于MPLS网络,并且将本发明实施例用于MPLS网络时,不需要定期老化MAC地址,从而避免了连通性的误检测。
本发明实施例具体用于VxLAN、VLAN等二层网络中,对属于同一广播域的MAC地址之间进行连通性检测。其中,在VxLAN中,一个网段即为一个广播域,而每一个网段具有一个通常是24位的段ID,该24位的段ID称为VNI,因此所述第一MAC地址和所述第二MAC地址具有同一VNI。在VLAN中,一个广播域具有一个VLAN标识,因此所述第一MAC地址和所述第二MAC地址具有同一VLAN标识。实际上,本发明实施例尤其适用于VxLAN中,对属于同一VNI的MAC地址之间的连通性进行检测,下面具体说明。为了保证在VM的迁移过程中IP地址和MAC地址不变,目前已存在多链接半透明互联(英文:Transparent Interconnection of Lots ofLink,简称:TRILL)、最短路径桥接(英文:Shortest Path Bridging,简称:SPB)等大二层网络方案,但是在实现这些方案时必须要对现有网络设备进行升级,例如机架交换机(英文:top of rack,简称TOR)设备的转发面和所有交换机的控制面都需要升级。而为了减少对现有网络设备的升级,IT厂商推出了包括VxLAN等基于三层网络的网络虚拟化(英文:NetworkVirtulizaiton over Layer 3,简称:NVO3)的方案。其中,在VxLAN的国际互联网工程任务组(英文:The Internet Engineering Task Force,简称:IETF)草案中指出,VxLAN中隧道是无状态的,一旦隧道不可能将会导致流量黑洞。而且在基于三层网络的网络虚拟化(英文:Network Virtulizaiton over Layer 3,简称:NVO3)域内需要实现在支持同一VNI的网络虚拟化边缘(英文:network virtualization,简称:NV Edge)设备之间进行连通性检测。而本发明实施例用于VxLAN中,即能够实现对在支持同一VNI的NV Edge设备之间进行隧道连通性检测,当检测出未连通时,可以将NV Edge设备之间的隧道的状态置不可用(英文:down),供用户参考,从而避免流量黑洞。
在本发明实施例中,所述第一报文具体由所述第二MAC地址对应的交换机发送,其中,所述第二MAC地址对应的交换机可以是在接收到从所述第一MAC地址发送至所述第二MAC地址的第二报文后,生成并发送所述第一报文,并且可以由所述控制器指示所述第二MAC地址对应的交换机根据所述第二报文生成所述第一报文。下面通过一个实施例具体说明。
请参阅图2,本发明实施例提供了二层网络的连通性检测方法的另一种方法实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。其中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址。
本实施例与图1所示的实施例相比,除了101和102之外,还包括103和104,下面重点说明103和104,而101和102请参阅图1所示的实施例的相关内容。
103:所述控制器向所述第二MAC地址对应的交换机发送第二MAC流表项或者指示生成所述第二MAC流表项的数据。
在本发明实施例中,如表2所示,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二MAC地址对应的交换机根据所述第二匹配项匹配到所述第二报文后,生成所述第一报文。其中,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址。
表2
可见,所述控制器向所述第二MAC地址对应的交换机发送的所述第二MAC流表项中,所述第二匹配项为所述第二报文的源MAC地址和目的MAC地址的信息,因此所述第二MAC地址对应的交换机能够根据所述第二匹配项匹配到所述第二报文,即所述第二MAC地址对应的交换机能够判断出接收到所述第二报文。而当所述第二MAC地址对应的交换机根据所述第二匹配项判断出接收到所述第二报文时,所述第二MAC地址对应的交换机触发所述第二动作,即执行生成所述第一报文。其中,所述第二MAC地址对应的交换机具体可以是对所述第二报文进行源MAC地址和目的MAC地址的交换,从而生成所述第一报文。
其中,所述第二MAC流表项中的所述第二动作可以有多种实现方式,例如,所述第二动作可以具体用于指示所述第二MAC地址对应的交换机,在所述第二MAC地址对应的交换机的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文;所述第二动作也可以具体用于指示所述第二MAC地址对应的交换机,在所述第二MAC地址对应的交换机的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
在本发明实施例中,与所述第一匹配项类似,所述第二匹配项还可以包括广播域标识为所述第一MAC地址和所述第二MAC地址所属的广播域标识。所述第二匹配项可以包括:目的MAC地址为所述第二MAC地址或者源MAC地址为所述第一MAC地址,相关之处请参见对所述第一匹配项的描述,这里不再赘述。在本发明实施例中,若本实施例所述控制器向所述第二MAC地址对应的交换机发送指示生成所述第二MAC流表项的数据,本实施例还可以包括:所述第二MAC地址对应的交换机根据该数据生成所述第二MAC流表项。此外,即可以由所述控制器向所述第二MAC地址对应的交换机的控制面发送所述第二MAC流表项,由所述第二MAC地址对应的交换机的控制面将所述第二MAC流表项下发至转发面;也可以由所述控制器将指示生成所述第二MAC流表项的数据发送至所述第二MAC地址对应的交换机的控制面,由所述第二MAC地址对应的交换机的控制面根据该数据生成所述第二MAC流表项,再将所述第二MAC流表项下发至转发面。
104:所述控制器向所述第一交换机发送所述第二报文或者指示生成所述第二报文的数据。
其中,所述第二报文的源MAC地址为所述第一MAC地址,目的MAC地址为所述第二MAC地址,即,所述第二报文是从所述第一MAC地址发送至所述第二MAC地址的报文。而若所述第二MAC地址对应的交换机成功接收到所述第二报文,会根据所述第二MAC流表项生成所述第一报文。
下面以图3为例加以说明。在图3中,所述第一交换机向所述第二交换机发送所述第二报文,所述第二报文的源MAC地址为VM1的MAC地址MAC1,目的MAC地址为VM2的MAC地址MAC2。由于所述第二交换机上具有如表2所示的所述第二MAC流表项,因此所述第二交换机会生成所述第一报文,并向所述第一交换机发送所述第一报文,所述第一报文的源MAC地址为VM2的MAC地址MAC2,目的MAC地址为VM1的MAC地址MAC1。并且由于所述第一交换机上具有如表1所示的所述第一MAC流表项,因此,所述第一交换机接收到从所述第二交换机返回的所述第一报文后,则会根据所述第一MAC流表项将所述第一报文上传至所述控制器,从而使得所述控制器能够对VM1和VM2进行连通性。
在本发明实施例中,若所述控制器向所述第一交换机发送用于指示生成所述第二报文的数据,本实施例还可以包括:所述第一交换机根据该数据生成所述第二报文。此外,若所述控制器向所述第一交换机发送所述第二报文,一般由所述控制器向所述第一交换机的控制面发送所述第二报文,再由所述第一交换机的控制面将所述第二报文下发至转发面。若所述控制器向所述第一交换机发送用于指示生成所述第二报文的数据,则一般由所述控制器将该数据发送至所述第一交换机的控制面,由所述第一交换机的控制面根据该数据生成所述第二报文,再将所述第二报文下发至转发面。
需要说明的是,本实施例的101、103和104的执行顺序不受限定,但为了保证所述第一交换机接收到所述第一报文时,已经接收到所述第一MAC流表项,并且所述第二MAC地址对应的交换机接收到所述第二报文时,已经接收到所述第二MAC流表项,因此较优的方式是先执行101和103,再执行104。
同时补充说明,所述第一报文也可以由除所述第二MAC地址对应的交换机之外的其他设备生成,例如,所述控制器通过向所述第二MAC地址对应的交换机下发MAC流表项,使得所述第二MAC地址对应的交换机在接收到所述第二报文后,将所述第二报文上传至所述控制器,由所述控制器生成所述第一报文并下发至所述第二MAC地址对应的交换机。
可见,在本实施例中,若在102中所述控制器在预设时间内接收到所述第一报文,表示所述第二报文成功从所述第一MAC地址发送至所述第二MAC地址,并且所述第一报文成功从所述第二MAC地址发送至所述第一MAC地址,因此所述控制器能够检测出所述第一MAC地址和所述第二MAC地址之间双向连通,即从所述第一MAC地址至所述第二MAC地址连通,并且从所述第二MAC地址至所述第一MAC地址连通。
其中,所述第二MAC流表项中,如表3所示,所述第二动作除了指示所述第二MAC地址对应的交换机根据所述第二匹配项匹配到所述第二报文后生成所述第一报文之外,还可以用于指示所述第二MAC地址对应的交换机匹配到所述第二报文后,将所述第二报文上传至所述控制器,并且102中的所述控制器根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性,可以包括:所述控制器根据是否在预设时间内接收到所述第二报文和所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
表3
具体检测方式可以是,若所述控制器在所述预设时间内接收到所述第二报文和所述第一报文,检测出所述第一MAC地址和所述第二MAC地址双向连通;若所述控制器在所述预设时间内接收到所述第二报文,且未接收到所述第一报文,检测出从所述第一MAC地址至所述第二MAC地址单向连通,而且从所述第二MAC地址至所述第一MAC地址单向未连通;若所述控制器在所述预设时间内未接收到所述第二报文,且未接收到所述第一报文,检测出所述第一MAC地址和所述第二MAC地址未连通。
需要说明的是,所述第二MAC流表项可以如表3所示,即具体为一个表项,也可以为两个表项,其中一个表项用于指示所述第二MAC地址对应的交换机生成所述第一报文,另一个表项用于指示所述第二MAC地址对应的交换机将所述第二报文上传至所述控制器。
在本发明实施例中,所述第一MAC地址与所述第一交换机对应,而所述第二MAC地址即可以与所述第一交换机对应,例如所述第一MAC地址和所述第二MAC地址是所述第一交换机上的两个VM的MAC地址,所述第二MAC地址也可以与除所述第一交换机之外的其他交换机对应,例如所述第一MAC地址和所述第二MAC地址是不同的交换机上的两个VM的MAC地址。下面分别说明这两种情况。
一、首先说明所述第一MAC地址和所述第二MAC地址同时与所述第一交换机对应的情况。具体地,所述第一MAC地址与所述第一交换机的第一端口对应,所述第二MAC地址与所述第一交换机的第二端口对应。本发明实施例具体是检测所述第一端口和所述第二端口之间的连通性。
本发明实施例中,为了检测所述第一端口和所述第二端口的连通性,可以在所述第一MAC流表项的所述第一匹配项中加入接收端口信息,从而使得所述第一交换机在所述第一端口接收到所述第一报文后,将所述第一报文上传至所述控制器。例如表4所示,所述第一匹配项除了表1所示的内容外,还可以包括接收端口为所述第一端口,因此所述第一交换机根据所述第一匹配项匹配到所述第一报文,即表示所述第一交换机判断出通过所述第一端口接收到所述第一报文,此时所述第一交换机触发所述第一动作,即执行将所述第一报文上传至所述控制器。并且104中的所述控制器向第一交换机发送第二报文或者指示生成所述第二报文的数据可以包括:所述控制器向所述第一交换机的所述第一端口发送所述第二报文。
表4
与所述第一匹配项类似,所述第二匹配项除了表2所示的内容外,还可以包括接收端口为所述第二端口,因此所述第一交换机根据所述第二匹配项匹配到所述第二报文,即表示所述第一交换机判断出通过所述第二端口接收到所述第二报文,此时所述第一交换机触发所述第二动作,即执行生成所述第一报文。
例如在图4中,VM1连接所述第一交换机的port1,即所述VM1的MAC地址MAC1与所述第一交换机的port1对应,类似的,VM2连接所述第一交换机的port5,即所述VM2的MAC地址MAC2与所述第一交换机的port5对应。所述控制器向所述第一交换机的port1发送所述第二报文,由于所述第二报文的源MAC地址是MAC1,目的MAC地址是MAC2,因此所述第一交换机将所述第二报文从port1向port5发送,所述第一交换机的port5接收到所述第二报文后,会根据所述第二MAC流表项生成所述第一报文,并通过port5发送所述第一报文,由于所述第一报文的源MAC地址是MAC2,目的MAC地址是MAC1,因此所述第一交换机会将所述第一报文从port5向port1发送,所述第一交换机的port1接收到所述第一报文,根据如表4所示的第一MAC流表项将所述第一报文上传至所述控制器,由所述控制器检测MAC1和MAC2的连通性。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二报文的封装格式也不相同,下面以VLAN为例进行说明。
若所述二层网络为VLAN,所述控制器向所述第一端口发送的所述第二报文包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文从所述第一端口发送至所述第二端口,本实施例还可以包括:所述控制器向所述第一交换机发送所述第一端口的标识和所述第一端口对应的VLAN标识。例如在图4所示的网络结构中,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
其中,DMAC(MAC2)表示目的MAC地址为VM2的MAC地址MAC2,SMAC(MAC1)表示源MAC地址为VM1的MAC地址MAC2,DATA为该报文携带的数据。
所述控制器还向所述第一交换机发送:port1的标识和port1对应的VLAN标识。
二、下面说明所述第一MAC地址对应所述第一交换机,所述第二MAC地址对应与所述第一交换机不同的第二交换机的情况。具体地,所述第一交换机将所述第二报文从所述第一交换机发送至所述第二交换机,所述第二交换机根据所述第二MAC流表项生成所述第一报文,并将所述第一报文发送至所述第一交换机,所述第一交换机根据所述第一MAC流表项将所述第一报文上传至所述控制器,由所述控制器检测连通性。
其中,所述控制器即可以向所述第一交换机发送封装好的所述第二报文,也可以向所述第一交换机发送指示生成所述第二报文的数据,以便于所述第一交换机封装所述第二报文。其中所述控制器向所述第一交换机发送该指示生成所述第二报文的数据时,可以是向所述第一交换机的广播域实体发送,也可以是向所述第一交换机上所述第一MAC地址对应的端口发送。下面分三种情况进行说明。
1、首先说明所述控制器发送封装好的所述第二报文的情况。具体地,所述控制器向所述第一交换机的第三端口发送所述第二报文,所述第三端口为所述第一交换机上用于与所述第二交换机连接的端口。也就是说,所述控制器直接向所述第一交换机上用于与所述第二交换机连接的所述第三端口发送封装好的所述第二报文,所述第一交换机通过所述第三端口直接发送封装好的所述第二报文。例如图5为所述第一交换机的一种示例性的结构图,其中所述控制器可以向所述第三端口发送所述第二报文,所述第三端口对应的边缘端口实体会接收到所述第二报文后,并通过所述第三端口发送所述第二报文。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,所述控制器向所述第一交换机发送的所述第二报文包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,本实施例还可以包括:所述控制器向所述第一交换机发送所述第三端口的标识和所述第三端口对应的VLAN标识。下面以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,port3为所述第一交换机上用于与所述第二交换机连接的端口。所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
其中,DMAC(MAC2)表示目的MAC地址为VM2的MAC地址MAC2,SMAC(MAC1)表示源MAC地址为VM1的MAC地址MAC1,DATA为该报文携带的数据。
所述控制器还向所述第一交换机发送:port3的标识和port3对应的VLAN标识。
若所述二层网络为VxLAN,所述控制器向所述第一交换机发送的所述第二报文包括:所述第一MAC地址、所述第二MAC地址、所述第一MAC地址和所述第二MAC地址所属的VNI、所述第一交换机和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口。其中,所述第一交换机和所述第二交换机的隧道出接口IP地址,即指的是所述第一交换机的IP地址和所述第二交换机的IP地址。下面以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,MAC1和MAC2所属的VNI为VNI(1),port3为所述第一交换机上用于与所述第二交换机连接的端口,port4为所述第二交换机上用于与所述第一交换机连接的端口,所述第一交换机的IP地址为(1.1.1.1),所述第二交换机的IP地址为(2.2.2.2)。所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
其中,DMAC(port4mac)表示隧道目的端口的MAC地址为port4的MAC地址,SMAC(port3mac)表示隧道源端口的MAC地址为port3的MAC地址,SIP地址(1.1.1.1)表示隧道源IP地址为(1.1.1.1),DIP地址(1.1.1.1)表示隧道目的IP地址为(2.2.2.2),DMAC(MAC2)表示目的MAC地址为MAC2,SMAC(MAC1)表示源MAC地址为MAC1,DATA为该报文携带的数据。
2、下面说明所述控制器向所述第一交换机的广播域实体发送指示生成所述第二报文的数据的情况。具体地,所述控制器向所述第一交换机的广播域实体(英文:FloodEntries)发送指示生成所述第二报文的第一数据,从而使得所述第一交换机生成所述第二报文并向所述第二交换机发送。其中广播域实体具体可以为VLAN或者VNI广播域实体。例如图5所示的所述第一交换机,所述控制器向二层网络(Layer 2,即L2)VLAN Flood Entries发送所述第一数据,所述L2VLAN Flood Entries接收到所述第一数据后,根据所述第一数据触发生成所述第二报文,并将生成的所述第二报文发送至边缘端口实体(英文:EgressPort Entries),所述边缘端口实体通过所述第三端口发送所述第二报文。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第一数据、以及第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,所述控制器向所述第一交换机发送的所述第一数据包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,本实施例还可以包括:所述控制器向所述第一交换机发送所述第一MAC地址和所述第二MAC地址所属的全局VLAN标识或桥接域(英文:bridge domain,简称:BD)。例如在图3中,所述控制器向所述第一交换机发送的所述第一数据包括:MAC1和MAC2,所述第一交换机生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
所述控制器还向所述第一交换机发送:MAC1和MAC2所属的全局VLAN标识或BD,所述第一交换机根据MAC1、MAC2、MAC1和MAC2所属的全局VLAN标识或BD,获取port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,所述控制器向所述第一交换机发送的所述第一数据包括:所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VNI。所述第一交换机根据所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VNI获取所述第一交换机和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口,并且所述第一交换机进一步生成所述第二报文。例如在图3中,所述控制器向所述第一交换机发送的所述第一数据可以包括第三报文和第三报文附属信息。
第三报文:DMAC(MAC1)|SMAC(MAC2)|DATA
第三报文附属信息:VNI(1)
所述第一交换机根据MAC1、MAC2和VNI(1)获取到所述第一交换机和所述第二交换机的隧道出接口IP地址(1.1.1.1)和(2.2.2.2)、port3的标识和MAC地址、port4的MAC地址,并对所述第三报文重新封装,以得到所述第二报文,所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
3、最后说明所述控制器向所述第一交换机上的所述第一端口发送指示生成所述第二报文的数据的情况。其中,所述第一端口与所述第一MAC地址对应。
对于所述控制器向所述第三端口和所述广播域实体发送所述第二报文或者指示生成所述第二报文的数据的情况来说,实际上都属于外向(英文:outward)检测,不能模拟VM真实的流量路径。而本发明实施例中,所述控制器还可以向所述第一交换机的所述第一端口发送指示所述生成所述第二报文的数据,其中所述第一端口与所述第一MAC地址对应,即所述第一端口为与VM连接的端口,从而实现了内向(英文:inward)检测,能够模拟出VM真实的流量路径。
具体地,所述控制器向所述第一交换机的第一端口发送指示生成所述第二报文的第二数据,所述第一端口与所述第一MAC地址对应。例如图5所示的所述第一交换机,所述控制器向所述第一端口发送所述第二数据,所述第一端口对应的上行端口公共处理(英文:Ingress Common Process)会接收到所述第二数据,并根据所述第二数据触发生成所述第二报文,将所述第二报文发送至边缘端口实体,所述边缘端口实体对应所述第一交换机上用于与所述第二交换机连接的所述第三端口,所述边缘端口实体通过所述第三端口发送所述第二报文。可见,这种检测方式,不仅能够检测出所述第一交换机和所述第二交换机的连通性,还能够检测出在所述第一交换机的内部,所述第一端口和所述第三端口的连通性。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二数据、以及第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,所述控制器向所述第一交换机发送的所述第二数据包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,本实施例还可以包括:所述控制器向所述第一交换机发送所述第一端口的标识、以及所述第一端口对应的VLAN标识。以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,所述第一交换机通过port1连接VM1,所述控制器向所述第一交换机发送的所述第二数据包括:MAC1和MAC2,所述第一交换机生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
所述控制器还向所述第一交换机发送:port1的标识,以及port1对应的VLAN标识,所述第一交换机根据:MAC1、MAC2、port1的标识,以及port1对应的VLAN标识获取port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,所述控制器向所述第一交换机发送的所述第二数据包括:所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识。所述第一交换机根据所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识,获取所述第一交换机和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及所述第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口,并且所述第一交换机进一步生成所述第二报文。下面以图3为例进行说明。所述控制器向所述第一交换机发送的所述第二数据包括第四报文和第四报文附属信息:
第四报文:DMAC(MAC2)|SMAC(MAC1)|DATA
第四报文附属信息:port1的标识、和port1对应的VLAN标识
所述第一交换机根据MAC1、MAC2、port1的标识、和port1对应的VLAN标识获取到所述第一交换机和所述第二交换机的隧道出接口IP地址(1.1.1.1)和(2.2.2.2)、port3的标识和MAC地址、以及port4的MAC地址,并生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
可选的,本发明实施例中,若二层网络为VxLAN,所述控制器还可以通过ICMP机制检测隧道连通性。
具体地,控制器下发网络质量分析(简称:NQA)模板至所述第一交换机,
此时所述第一交换机具体为服务转发器(英文:Service Switch),所述第一交换机周期性发送互联网控制报文协议(简称:ICMP)报文,以检测VxLAN隧道的连通性。例如所述第一交换机向第二交换机发送互联网控制报文协议请求报文(英文:ICMP echorequest),所述第二交换机收到该请求报文后,回应互联网控制报文协议应答报文(英文:ICMP echo reply)给所述第一交换机,所述第一交换机汇总检测结果,上报至所述控制器。
在上述方法实施例中,主要从所述控制器的角度介绍了本发明实施例,下面将分别从所述第一交换机和所述第二交换机的角度进行介绍。
请参阅图6,本发明实施例提供了二层网络的连通性检测方法的另一种方法实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。其中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址。
本实施例的所述方法包括:
601:第一交换机接收第一MAC流表项或者指示生成所述第一MAC流表项的数据。其中,所述第一交换机与所述第一MAC地址对应,即表示所述第一MAC地址为所述第一交换机上的VM的MAC地址。
在本发明实施例中,如表1所示,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器,其中,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
可见,所述第一交换机接收到的所述第一MAC流表项中,所述第一匹配项为所述第一报文的源MAC地址和目的MAC地址的信息,因此所述第一交换机能够根据所述第一匹配项匹配到所述第一报文,即所述第一交换机能够判断出接收到所述第一报文。而当所述第一交换机根据所述第一匹配项判断出接收到所述第一报文时,所述第一交换机触发所述第一动作,即执行将所述第一报文上传至所述控制器。其中,由于所述第一报文是从所述第二MAC地址发送至所述第一MAC地址的报文,因此所述第一交换机实际上是当接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,将所述第一报文上传至所述控制器,从而能够使得所述控制器根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第一报文与用户的业务报文相区分,也可以说所述第一报文是用于连通性检测的报文。
在本发明实施例中,所述第一报文具体由所述第二MAC地址对应的交换机发送,其中,所述第二MAC地址对应的交换机可以是在接收到从所述第一MAC地址发送至所述第二MAC地址的第二报文后,生成并发送所述第一报文。具体地,本实施例还可以包括:所述第一交换机接收所述第二报文或者指示生成所述第二报文的数据,以及所述第一交换机发送所述第二报文。其中,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址。
需要说明的是,本实施例的所述第一交换机具体可以是接收所述控制器发送的所述第一MAC流表项或者指示生成所述第一MAC流表项的数据。并且所述第一交换机具体可以为图1或者图2所示的实施例中的所述第一交换机,因此相关之处请参阅上述图1或者图2所示的实施例,这里不再赘述。
请参阅图7,本发明实施例提供了二层网络的连通性检测方法的另一种方法实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。其中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址。
本实施例的所述方法包括:
701:第二交换机接收第二MAC流表项或者指示生成所述第二MAC流表项的数据。其中,所述第二交换机与所述第二MAC地址对应,即表示所述第二MAC地址为所述第二交换机上的VM的MAC地址。
在本发明实施例中,如表2所示,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二交换机根据所述第二匹配项匹配到第二报文后生成第一报文,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第二报文的源MAC地址为第一MAC地址且目的MAC地址为第二MAC地址。
可见,所述第二交换机接收到的所述第二MAC流表项中,所述第二匹配项为所述第二报文的源MAC地址和目的MAC地址的信息,因此所述第二交换机能够根据所述第二匹配项匹配到所述第二报文,即所述第二交换机能够判断出接收到所述第二报文。而当所述第二交换机根据所述第二匹配项判断出接收到所述第二报文时,所述第二交换机触发所述第二动作,即执行生成所述第一报文。其中,所述第二交换机具体可以是对所述第二报文进行源MAC地址和目的MAC地址的交换,从而生成所述第一报文。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第二报文与用户的业务报文相区分,也可以说所述第二报文是用于连通性检测的报文。
在本发明实施例中,所述第二MAC流表项中的所述第二动作可以有多种实现方式,例如,所述第二动作可以具体用于指示所述第二交换机,在所述第二交换机的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文;所述第二动作也可以具体用于指示所述第二交换机,在所述第二交换机的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
702:所述第二交换机接收所述第二报文后,根据所述第二MAC流表项生成所述第一报文。
其中,所述第二交换机具体可以是接收所述第一MAC地址对应的第一交换机发送的所述第二报文。
703:所述第二交换机发送所述第一报文。
由于所述第一报文的目的MAC地址为所述第一MAC地址,因此所述第二交换机将第一报文发送至所述第一MAC地址对应的所述第一交换机。
需要说明的是,在701中,本实施例的所述第二交换机具体可以是接收所述控制器发送的所述第二MAC流表项或者指示生成所述第二MAC流表项的数据。并且所述第二交换机具体可以为图1、图2或者图8所示的实施例中的所述第二交换机,因此相关之处请参阅图1、图2或者图8所示的实施例,这里不再赘述。
在上述方法实施例中,当所述第一交换机接收到所述第一报文后,会根据所述第一MAC流表项将所述第一报文上传至所述控制器,由所述控制器检测连通性。而在本发明实施例中,实际上也可以将所述第一报文从所述第一交换机的转发面上传至控制面,因此由所述第一交换机检测连通性,下面具体说明。
本发明实施例的主要思想包括但不仅限于:在检测第一MAC地址和第二MAC地址的连通性时,由控制器向所述第一MAC地址对应的第一交换机发送第一MAC流表项,所述第一MAC流表项使得所述第一交换机匹配到从所述第二MAC地址发送至所述第一MAC地址的第一报文时,从转发面上传至控制面,因此所述第一交换机能够根据所述控制面是否在预设时间内接收到所述第一报文检测所述第一MAC地址和所述第二MAC地址的连通性。
请参阅图8,本发明实施例提供了二层网络的连通性检测方法的另一种方法实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。
在本发明实施例中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,即所述第一MAC地址和所述第二MAC地址均不用于向用户分配。因此,本发明实施例能够保证在所述第一MAC地址或者所述第二MAC地址上,均不会生成用户的业务报文,以避免用户的业务报文对本发明实施例的检测结果产生影响。其中,本实施例还可以包括:由所述控制器等设备对所述第一MAC地址和所述第二MAC地址进行重复性检测,即确定所述第一MAC地址或所述第二MAC地址是否与已向用户分配的MAC地址重复,当所述第一MAC地址或所述第二MAC地址出现重复时,进行重新分配。
其中,所述第一MAC地址和所述第二MAC地址可以为交换机上的VM的MAC地址。而检测MAC地址之间的连通性,可以看做是检测交换机之间的连通性,也可以看做是检测交换机上的VM之间的连通性。例如在图3所示的网络拓扑中,本实施例可以具体用于对第一交换机上的VM1和第二交换机上的VM2进行连通性检测。需说明的是,图3仅为一种示例性的网络拓扑,其具体结构对本发明实施例并不起到任何限制作用。
本实施例的所述方法包括:
801:第一交换机接收第一MAC流表项或者指示生成所述第一MAC流表项的数据。其中,所述第一交换机具体可以是接收控制器发送的所述第一MAC流表项或者指示生成所述第一MAC流表项的数据。
其中,所述第一交换机与所述第一MAC地址对应,即表示所述第一MAC地址为所述第一交换机上的VM的MAC地址,例如在图3中,所述第一交换机与所述第一交换机上的VM1的MAC地址对应。
在本发明实施例中,如表5所示,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,其中,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
表5
可见,所述第一交换机接收的所述第一MAC流表项中,所述第一匹配项为所述第一报文的源MAC地址和目的MAC地址的信息,因此所述第一交换机能够根据所述第一匹配项匹配到所述第一报文,即所述第一交换机能够判断出接收到所述第一报文。而当所述第一交换机根据所述第一匹配项判断出接收到所述第一报文时,所述第一交换机触发所述第一动作,即执行将所述第一报文从所述第一交换机的转发面上传至控制面。其中,由于所述第一报文是从所述第二MAC地址发送至所述第一MAC地址的报文,因此所述第一交换机实际上是当接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第一报文与用户的业务报文相区分,也可以说所述第一报文是用于连通性检测的报文。
在本发明实施例中,所述第一匹配项除了包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址之外,还可以包括广播域标识为所述第一MAC地址和所述第二MAC地址所属的广播域标识。并且,若在检测所述第一MAC地址和所述第二MAC地址的连通性时,并没有检测其他MAC地址与所述第一MAC地址的连通性,那么所述第一匹配项可以包括所述第一报文的目的MAC地址信息而不包括所述第一报文的源MAC地址信息,或者包括所述第一报文的源MAC地址信息而不包括所述第一报文的目的MAC地址信息,即所述第一匹配项包括:目的MAC地址为所述第一MAC地址或者源MAC地址为所述第二MAC地址。
在本发明实施例中,为了使得所述第一交换机获得所述第一MAC流表项,所述第一交换机可以是直接接收所述第一MAC流表项,也可以是接收指示生成所述第一MAC流表项的数据,此时本实施例还可以包括:所述第一交换机根据该数据生成所述第一MAC流表项。本发明实施例中,交换机一般都具有转发面和控制面两个层面,每个层面分别由独立的芯片负责。因此,若所述第一交换机接收所述第一MAC流表项,一般由所述第一交换机的控制面接收所述第一MAC流表项,再由所述第一交换机的控制面将所述第一MAC流表项下发至转发面。若所述第一交换机接收用于指示生成所述第一MAC流表项的数据,则一般由所述第一交换机的控制面接收该数据,由所述第一交换机的控制面根据该数据生成所述第一MAC流表项,再将生成的所述第一MAC流表项下发至转发面。
802:所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
由于在801中,所述第一交换机接收所述第一MAC流表项,从而使得所述第一交换机接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,会将所述第一报文从所述第一交换机的转发面上传至控制面,因此,所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,就能够判断出所述第一交换机是否接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文,从而能够检测所述第一MAC地址和所述第二MAC地址的连通性。其中,由于所述第一交换机在接收所述第一MAC流表项后,一般会在所述第一交换机上保存所述第一MAC流表项,而在所述第一交换机将所述第一报文上传至所述控制面后,可以删除在所述第一交换机上保存的所述第一MAC流表项。
其中,所述第一交换机的具体检测方式可以是,若所述第一交换机的控制面在所述预设时间内接收到所述第一报文,则检测出所述第一MAC地址和所述第二MAC地址连通。而若所述第一交换机的控制面在所述预设时间内没有接收到所述第一报文,则检测出所述第一MAC地址和所述第二MAC地址未连通。上述连通可以指的是从所述第二MAC地址至所述第一MAC地址的单向连通。
通过上述技术方案可知,本发明实施例在检测属于同一广播域的所述第一MAC地址和所述第二MAC地址的连通性时,所述第一交换机接收所述第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一MAC流表项使得所述第一交换机根据所述第一匹配项匹配到所述第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面。由于所述第一报文从第二MAC地址发送至所述第一MAC地址,因此由所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,就能够检测出所述第一MAC地址和所述第二MAC地址的连通性。其中所述第一MAC地址和所述第二MAC地址是预留的MAC地址,使得所述第一报文与用户的业务报文相区分,保证了用户的业务报文不会对检测结果产生影响。显然本发明实施例通过下发流表项的方式,就能够实现对属于同一广播域的第一MAC地址和第二MAC地址进行连通性检测,不需要进行复杂的参数配置过程,因此减少了工作量。
此外,在本发明实施例中,用于连通性检测的所述第一报文可以是普通的数据或者协议报文,不需要交换机必须能够识别出LBM和LBR等特殊格式的报文,降低了对交换机的设备要求。
并且,本发明实施例中不需要通过特殊格式的标签识别用于连通性检测的所述第一报文,因此能够适用于大部分二层网络,例如对VLAN、VxLAN等都能适用。同时也不局限于MPLS网络,并且将本发明实施例用于MPLS网络时,不需要定期老化MAC地址,从而避免了连通性的误检测。
本发明实施例具体用于VxLAN、VLAN等二层网络中,对属于同一广播域的MAC地址之间进行连通性检测。其中,在VxLAN中,所述第一MAC地址和所述第二MAC地址具有同一VNI。在VLAN中,所述第一MAC地址和所述第二MAC地址具有同一VLAN标识。而本发明实施例用于VxLAN中,即能够实现对在支持同一VNI的NV Edge设备之间进行隧道连通性检测,当检测出未连通时,可以将NV Edge设备之间的隧道的状态置down,供用户参考,从而避免流量黑洞。
在本发明实施例中,所述第一报文具体由所述第二MAC地址对应的交换机发送,其中,所述第二MAC地址对应的交换机可以是在接收到所述第一交换机发送的第二报文后,生成并发送所述第一报文。具体地,本实施例还可以包括:803和804。
803:所述第一交换机接收第二报文或者指示生成所述第二报文的数据。其中所述第一交换机具体可以接收控制器发送的所述第二报文或者指示生成所述第二报文的数据。
在本发明实施例中,若所述第一交换机接收用于指示生成所述第二报文的数据,本实施例还可以包括:所述第一交换机根据该数据生成所述第二报文。此外,若所述第一交换机接收所述第二报文,一般由所述第一交换机的控制面接收所述第二报文,再由所述第一交换机的控制面将所述第二报文下发至转发面。若所述第一交换机接收用于指示生成所述第二报文的数据,则一般由所述第一交换机的控制面接收该数据,根据该数据生成所述第二报文,再将所述第二报文下发至转发面。
804:所述第一交换机发送所述第二报文。
其中,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,因此所述第一交换机会将所述第二报文发送至所述第二MAC地址对应的交换机,由所述第二MAC地址对应的交换机根据所述第二报文生成所述第一报文,例如所述第二MAC地址对应的交换机根据所述第二流表项生成所述第一报文,所述第二MAC流表项可以如表2所示。
需要说明的是,本实施例的801与803和804的执行顺序不受限定,但为了保证所述第一交换机接收到所述第一报文时,已经接收到所述第一MAC流表项,因此较优的方式是先执行801,再执行803和804。
可见,若在802中所述第一交换机的控制面在预设时间内接收到所述第一报文,表示所述第二报文成功从所述第一MAC地址发送至所述第二MAC地址,并且所述第一报文成功从所述第二MAC地址发送至所述第一MAC地址,因此所述第一交换机能够检测出所述第一MAC地址和所述第二MAC地址之间双向连通,即从所述第一MAC地址至所述第二MAC地址连通,并且从所述第二MAC地址至所述第一MAC地址连通。
在本发明实施例中,所述第一MAC地址与所述第一交换机对应,而所述第二MAC地址即可以与所述第一交换机对应,例如所述第一MAC地址和所述第二MAC地址是所述第一交换机上的两个VM的MAC地址,所述第二MAC地址也可以与除所述第一交换机之外的其他交换机对应,例如所述第一MAC地址和所述第二MAC地址是不同的交换机上的两个VM的MAC地址。下面分别说明这两种情况。
一、首先说明所述第一MAC地址和所述第二MAC地址同时与所述第一交换机对应的情况。具体地,所述第一MAC地址与所述第一交换机的第一端口对应,所述第二MAC地址与所述第一交换机的第二端口对应。本发明实施例具体是检测所述第一端口和所述第二端口之间的连通性。
本发明实施例中,为了检测所述第一端口和所述第二端口的连通性,可以在所述第一MAC流表项的所述第一匹配项中加入接收端口信息,从而使得所述第一交换机在所述第一端口接收到所述第一报文后,将所述第一报文上传至所述控制器。例如表6所示,所述第一匹配项除了表5所示的内容外,还可以包括接收端口为所述第一端口,因此所述第一交换机根据所述第一匹配项匹配到所述第一报文,即表示所述第一交换机判断出通过所述第一端口接收到所述第一报文,此时所述第一交换机触发所述第一动作,即执行将所述第一报文从所述第一交换机的转发面上传至控制面。并且803中的所述第一交换机接收第二报文或者用于生成所述第二报文的数据可以包括:所述第一交换机通过所述第一端口接收所述第二报文。
表6
在本发明实施例中,所述第一交换机还可以接收第二MAC流表项或者指示生成所述第二MAC流表项的数据。如表7所示,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二匹配项还包括接收端口为所述第二端口,所述第二动作用于指示所述第一交换机根据所述第二匹配项匹配到所述第二报文后,生成所述第一报文。
表7
可见,所述第一交换机接收的所述第二MAC流表项中,所述第二匹配项为所述第二报文的源MAC地址和目的MAC地址的信息以及接收端口信息,因此所述第二MAC地址对应的交换机能够根据所述第二匹配项匹配到所述第二报文,即所述第二MAC地址对应的交换机能够判断出通过所述第一端口接收到所述第二报文。而当所述第二MAC地址对应的交换机根据所述第二匹配项判断出通过所述第一端口接收到所述第二报文时,所述第一交换机触发所述第二动作,即执行生成所述第一报文。其中,所述第一交换机具体可以是对所述第二报文进行源MAC地址和目的MAC地址的交换,从而生成所述第一报文。
其中,所述第二MAC流表项中的所述第二动作可以有多种实现方式,例如,所述第二动作可以具体用于指示所述第一交换机在所述第一交换机的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文;所述第二动作也可以具体用于指示所述第一交换机,在所述第一交换机的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
在本发明实施例中,与所述第一匹配项类似,所述第二匹配项还可以包括广播域标识为所述第一MAC地址和所述第二MAC地址所属的广播域标识。所述第二匹配项可以包括:目的MAC地址为所述第二MAC地址或者源MAC地址为所述第一MAC地址,相关之处请参见对所述第一匹配项的描述,这里不再赘述。在本发明实施例中,若本实施例所述第一交换机接收指示生成所述第二MAC流表项的数据,本实施例还可以包括:所述第一交换机根据该数据生成所述第二MAC流表项。此外,即可以由所述第一交换机的控制面接收所述第二MAC流表项,再将所述第二MAC流表项下发至转发面;也可以由所述第一交换机的控制面接收指示生成所述第二MAC流表项的数据,根据该数据生成所述第二MAC流表项,再将所述第二MAC流表项下发至转发面。
可选的,所述第二MAC流表项中,如表8所示,所述第二动作除了指示所述第一交换机根据所述第二匹配项匹配到所述第二报文后生成所述第一报文之外,还可以用于指示所述第一交换机根据所述第二匹配项匹配到所述第二报文后,将所述第二报文从所述第一交换机的转发面上传至控制面,并且802中的所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性,可以包括:所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文和所述第二报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
表8
具体检测方式可以是,若所述第一交换机的控制面在所述预设时间内接收到所述第二报文和所述第一报文,检测出所述第一MAC地址和所述第二MAC地址双向连通;若所述第一交换机的控制面在所述预设时间内接收到所述第二报文,且未接收到所述第一报文,检测出从所述第一MAC地址至所述第二MAC地址单向连通,而且从所述第二MAC地址至所述第一MAC地址单向未连通;若所述第一交换机的控制面在所述预设时间内未接收到所述第二报文,且未接收到所述第一报文,检测出所述第一MAC地址和所述第二MAC地址未连通。
需要说明的是,所述第二MAC流表项可以如表8所示,即具体为一个表项,也可以为两个表项,其中一个表项用于指示所述第一交换机生成所述第一报文,另一个表项用于指示所述第一交换机将所述第二报文上传至所述控制面。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二报文的封装格式也不相同,下面以VLAN为例进行说明。
若所述二层网络为VLAN,所述第一交换机通过所述第一端口接收的所述第二报文包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文从所述第一端口发送至所述第二端口,本实施例还可以包括:所述第一交换机接收所述第一端口的标识和所述第一端口对应的VLAN标识。例如在图4所示的网络结构中,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
其中,DMAC(MAC2)表示目的MAC地址为VM2的MAC地址MAC2,SMAC(MAC1)表示源MAC地址为VM1的MAC地址MAC2,DATA为该报文携带的数据。
所述第一交换机还接收:port1的标识、和port1对应的VLAN标识。
二、下面说明所述第一MAC地址对应所述第一交换机,所述第二MAC地址对应与所述第一交换机不同的第二交换机的情况。具体地,所述第一交换机接收所述第二报文,并将所述第二报文从所述第一交换机发送至所述第二交换机,所述第二交换机生成所述第一报文,并将所述第一报文发送至所述第一交换机,所述第一交换机根据所述第一MAC流表项将所述第一报文上传至所述控制面,由所述第一交换机检测连通性。
其中,所述第一交换机可以接收封装好的所述第二报文,也可以接收指示生成所述第二报文的数据,以便于所述第一交换机封装所述第二报文。其中所述第一交换机接收该指示生成所述第二报文的数据时,可以是通过所述第一交换机的广播域实体接收,也可以是通过所述第一交换机上所述第一MAC地址对应的端口发送。下面分三种情况进行说明。
1、首先说明所述第一交换机接收封装好的所述第二报文的情况。具体地,所述第一交换机通过第三端口接收所述第二报文,所述第三端口为所述第一交换机上用于与所述第二交换机连接的端口。具体由所述第一交换机通过用于与所述第二交换机连接的所述第三端口直接接收封装好的所述第二报文,所述第一交换机通过所述第三端口直接发送封装好的所述第二报文。例如图5为所述第一交换机的一种示例性的结构图,其中所述第一交换机可以通过所述第三端口接收所述第二报文,所述第三端口对应的边缘端口实体会接收到所述第二报文,并通过所述第三端口发送所述第二报文。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,所述第一交换机通过所述第三端口接收的所述第二报文包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,本实施例还可以包括:所述第一交换机接收所述第三端口的标识和所述第三端口对应的VLAN标识。下面以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,port3为所述第一交换机上用于与所述第二交换机连接的端口。所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
其中,DMAC(MAC2)表示目的MAC地址为VM2的MAC地址MAC2,SMAC(MAC1)表示源MAC地址为VM1的MAC地址MAC1,DATA为该报文携带的数据。
所述第一交换机还接收:port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,所述第一交换机通过所述第三端口接收的所述第二报文包括:所述第一MAC地址、所述第二MAC地址、所述第一MAC地址和所述第二MAC地址所属的VNI、所述第一交换机和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口。其中,所述第一交换机和所述第二交换机的隧道出接口IP地址,即指的是所述第一交换机的IP地址和所述第二交换机的IP地址。下面以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,MAC1和MAC2所属的VNI为VNI(1),port3为所述第一交换机上用于与所述第二交换机连接的端口,port4为所述第二交换机上用于与所述第一交换机连接的端口,所述第一交换机的IP地址为(1.1.1.1),所述第二交换机的IP地址为(2.2.2.2)。所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
其中,DMAC(port4mac)表示隧道目的端口的MAC地址为port4的MAC地址,SMAC(port3mac)表示隧道源端口的MAC地址为port3的MAC地址,SIP地址(1.1.1.1)表示隧道源IP地址为(1.1.1.1),DIP地址(1.1.1.1)表示隧道目的IP地址为(2.2.2.2),DMAC(MAC2)表示目的MAC地址为MAC2,SMAC(MAC1)表示源MAC地址为MAC1,DATA为该报文携带的数据。
2、下面说明通过所述第一交换机的广播域实体接收指示生成所述第二报文的数据的情况。具体地,所述第一交换机通过广播域实体接收指示生成所述第二报文的第一数据,从而使得所述第一交换机生成所述第二报文并向所述第二交换机发送。其中广播域实体具体可以为VLAN或者VNI广播域实体。例如图5所示的所述第一交换机,通过L2 VLANFlood Entries接收所述第一数据,所述L2 VLAN Flood Entries接收到所述第一数据后,根据所述第一数据触发生成所述第二报文,并将生成的所述第二报文发送至边缘端口实体,所述边缘端口实体通过所述第三端口发送所述第二报文。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第一数据、以及第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,所述第一交换机通过所述广播域实体接收的所述第一数据包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,本实施例还可以包括:所述第一交换机接收所述第一MAC地址和所述第二MAC地址所属的全局VLAN标识或BD。例如在图3中,所述第一交换机接收的所述第一数据包括:MAC1和MAC2,所述第一交换机生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
所述第一交换机还接收:MAC1和MAC2所属的全局VLAN标识或BD,所述第一交换机根据MAC1、MAC2、MAC1和MAC2所属的全局VLAN标识或BD,获取port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,所述第一交换机通过所述广播域实体接收的所述第一数据包括:所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VNI。所述第一交换机根据所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VNI获取所述第一交换机和所述第二交换机的隧道出接口I P地址、所述第三端口的标识和MAC地址、以及第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口,并且所述第一交换机进一步生成所述第二报文。例如在图3中,所述控制器向所述第一交换机发送的所述第一数据可以包括第三报文和第三报文附属信息。
第三报文:DMAC(MAC1)|SMAC(MAC2)|DATA
第三报文附属信息:VNI(1)
所述第一交换机根据MAC1、MAC2和VNI(1)获取到所述第一交换机和所述第二交换机的隧道出接口IP地址(1.1.1.1)和(2.2.2.2)、port3的标识和MAC地址、port4的MAC地址,并对所述第三报文重新封装,以得到所述第二报文,所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
3、最后说明所述第一交换机通过所述第一端口接收指示生成所述第二报文的数据的情况。其中,所述第一端口与所述第一MAC地址对应。
对于所述第一交换机通过所述第三端口和所述广播域实体接收所述第二报文或者指示生成所述第二报文的数据的情况来说,实际上都属于outward检测,不能模拟VM真实的流量路径。而本发明实施例中,所述第一交换机还可以通过所述第一端口接收指示所述生成所述第二报文的数据,其中所述第一端口与所述第一MAC地址对应,即所述第一端口为与VM连接的端口,从而实现了inward检测,能够模拟出VM真实的流量路径。
具体地,所述第一交换机通过所述第一端口接收指示生成所述第二报文的第二数据,所述第一端口与所述第一MAC地址对应。例如图5所示的所述第一交换机,通过所述第一端口接收所述第二数据,所述第一端口对应的上行端口公共处理会接收到所述第二数据,并根据所述第二数据触发生成所述第二报文,将所述第二报文发送至边缘端口实体,所述边缘端口实体对应所述第一交换机上用于与所述第二交换机连接的所述第三端口,所述边缘端口实体通过所述第三端口发送所述第二报文。可见,这种检测方式,不仅能够检测出所述第一交换机和所述第二交换机的连通性,还能够检测出在所述第一交换机的内部,所述第一端口和所述第三端口的连通性。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二数据、以及第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,所述第一交换机通过所述第一端口接收的所述第二数据包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,本实施例还可以包括:所述第一交换机接收所述第一端口的标识、以及所述第一端口对应的VLAN标识。以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,所述第一交换机通过port1连接VM1,所述第一交换机接收的所述第二数据包括:MAC1和MAC2,所述第一交换机生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
所述第一交换机还接收:port1的标识,以及port1对应的VLAN标识,所述第一交换机根据:MAC1、MAC2、port1的标识,以及port1对应的VLAN标识获取port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,所述第一交换机接收的所述第二数据包括:所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识。所述第一交换机根据所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识,获取所述第一交换机和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及所述第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口,并且所述第一交换机进一步生成所述第二报文。下面以图3为例进行说明。所述第一交换机接收的所述第二数据包括第四报文和第四报文附属信息:
第四报文:DMAC(MAC2)|SMAC(MAC1)|DATA
第四报文附属信息:port1的标识、和port1对应的VLAN标识
所述第一交换机根据MAC1、MAC2、port1的标识、和port1对应的VLAN标识获取到所述第一交换机和所述第二交换机的隧道出接口IP地址(1.1.1.1)和(2.2.2.2)、port3的标识和MAC地址、以及port4的MAC地址,并生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
在上述方法实施例中,主要从所述第一交换机的角度介绍了本发明实施例,下面将从所述控制器的角度进行介绍。
请参阅图9,本发明实施例提供了二层网络的连通性检测方法的一种方法实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。
本实施例的所述方法包括:
901:控制器向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据。
其中,所述第一交换机与所述第一MAC地址对应,即表示所述第一MAC地址为所述第一交换机上的VM的MAC地址,例如在图3中,所述第一交换机与所述第一交换机上的VM1的MAC地址对应。
在本发明实施例中,如表5所示,所述第一MAC流表项包括第一匹配项和第一动作。所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面。其中,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
可见,所述控制器发送的所述第一MAC流表项中,所述第一匹配项为所述第一报文的源MAC地址和目的MAC地址的信息,因此所述第一交换机能够根据所述第一匹配项匹配到所述第一报文,即所述第一交换机能够判断出接收到所述第一报文。而当所述第一交换机根据所述第一匹配项判断出接收到所述第一报文时,所述第一交换机触发所述第一动作,即执行将所述第一报文从所述第一交换机的转发面上传至控制面。其中,由于所述第一报文是从所述第二MAC地址发送至所述第一MAC地址的报文,因此所述第一交换机实际上是当接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第一报文与用户的业务报文相区分,也可以说所述第一报文是用于连通性检测的报文。
需要说明的是,本实施例的所述控制器具体可以为图8所示的实施例中的所述控制器,因此相关之处请参阅上述图8所示的实施例,这里不再赘述。
上面对本发明实施例中的二层网络的连通性检测方法的实施例进行了描述,下面将从模块化功能实体的角度对本发明实施例中的控制器和交换机进行描述。
请参阅图10,本发明实施例提供了控制器1000的一种装置实施例,本实施例的控制器1000用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性。
在本发明实施例中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,即所述第一MAC地址和所述第二MAC地址均不用于向用户分配。因此,本发明实施例能够保证在所述第一MAC地址或者所述第二MAC地址上,均不会生成用户的业务报文,以避免用户的业务报文对本发明实施例的检测结果产生影响。其中,可以由控制器1000等设备对所述第一MAC地址和所述第二MAC地址进行重复性检测,即确定所述第一MAC地址或所述第二MAC地址是否与已向用户分配的MAC地址重复,当所述第一MAC地址或所述第二MAC地址出现重复时,进行重新分配。
其中,所述第一MAC地址和所述第二MAC地址可以为交换机上的VM的MAC地址。而检测MAC地址之间的连通性,可以看做是检测交换机之间的连通性,也可以看做是检测交换机上的VM之间的连通性。例如在图3所示的网络拓扑中,本实施例可以具体用于对第一交换机上的VM1和第二交换机上的VM2进行连通性检测。需说明的是,图3仅为一种示例性的网络拓扑,其具体结构对本发明实施例并不起到任何限制作用。
本实施例的控制器1000包括:发送单元1001和处理单元1002。
发送单元1001,用于向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据。
其中,所述第一交换机与所述第一MAC地址对应,即表示所述第一MAC地址为所述第一交换机上的VM的MAC地址,例如在图3中,所述第一交换机与所述第一交换机上的VM1的MAC地址对应。
在本发明实施例中,如表1所示,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至控制器1000,其中,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
可见,发送单元1001向所述第一交换机发送的所述第一MAC流表项中,所述第一匹配项为所述第一报文的源MAC地址和目的MAC地址的信息,因此所述第一交换机能够根据所述第一匹配项匹配到所述第一报文,即所述第一交换机能够判断出接收到所述第一报文。而当所述第一交换机根据所述第一匹配项判断出接收到所述第一报文时,所述第一交换机触发所述第一动作,即执行将所述第一报文上传至控制器1000。其中,由于所述第一报文是从所述第二MAC地址发送至所述第一MAC地址的报文,因此所述第一交换机实际上是当接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,将所述第一报文上传至控制器1000。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第一报文与用户的业务报文相区分,也可以说所述第一报文是用于连通性检测的报文。
在本发明实施例中,所述第一匹配项除了包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址之外,还可以包括广播域标识为所述第一MAC地址和所述第二MAC地址所属的广播域标识。并且,若控制器1000在检测所述第一MAC地址和所述第二MAC地址的连通性时,并没有检测其他MAC地址与所述第一MAC地址,或者所述第二MAC地址的连通性,那么所述第一匹配项可以包括所述第一报文的目的MAC地址信息而不包括所述第一报文的源MAC地址信息,或者包括所述第一报文的源MAC地址信息而不包括所述第一报文的目的MAC地址信息,即所述第一匹配项包括:目的MAC地址为所述第一MAC地址或者源MAC地址为所述第二MAC地址。
在本发明实施例中,控制器1000为了使得所述第一交换机获得所述第一MAC流表项,可以是直接生成所述第一MAC流表项并发送至所述第一交换机,也可以是将指示生成所述第一MAC流表项的数据发送至所述第一交换机,此时本实施例中所述第一交换机根据该数据生成所述第一MAC流表项。本发明实施例中,交换机一般都具有转发面和控制面两个层面,每个层面分别由独立的芯片负责。因此,若控制器1000向所述第一交换机发送所述第一MAC流表项,一般由控制器1000向所述第一交换机的控制面发送所述第一MAC流表项,再由所述第一交换机的控制面将所述第一MAC流表项下发至转发面。若控制器1000向所述第一交换机发送用于指示生成所述第一MAC流表项的数据,则一般由控制器1000将该数据发送至所述第一交换机的控制面,由所述第一交换机的控制面根据该数据生成所述第一MAC流表项,再将生成的所述第一MAC流表项下发至转发面。
处理单元1002用于,根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
由于发送单元1001向所述第一交换机发送所述第一MAC流表项,从而使得所述第一交换机接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,会将所述第一报文上传至控制器1000,因此,处理器1002根据是否在预设时间内接收到所述第一报文,就能够判断出所述第一交换机是否接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文,从而能够检测所述第一MAC地址和所述第二MAC地址的连通性。其中,由于所述第一交换机在接收所述第一MAC流表项后,一般会在所述第一交换机上保存所述第一MAC流表项,而在所述第一交换机将所述第一报文上传至控制器1000后,可以删除在所述第一交换机上保存的所述第一MAC流表项。
其中,处理器1002的具体检测方式可以是,若控制器1000在所述预设时间内接收到所述第一报文,则检测出所述第一MAC地址和所述第二MAC地址连通。而若控制器1000在所述预设时间内没有接收到所述第一报文,则检测出所述第一MAC地址和所述第二MAC地址未连通。上述连通可以指的是从所述第二MAC地址至所述第一MAC地址的单向连通。
通过上述技术方案可知,本发明实施例在检测属于同一广播域的所述第一MAC地址和所述第二MAC地址的连通性时,由发送单元1001向所述第一交换机发送所述第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一MAC流表项使得所述第一交换机根据所述第一匹配项匹配到所述第一报文后,将所述第一报文上传至控制器1000。由于所述第一报文从第二MAC地址发送至所述第一MAC地址,因此由处理单元1002根据是否在预设时间内接收到所述第一报文,就能够检测出所述第一MAC地址和所述第二MAC地址的连通性。其中所述第一MAC地址和所述第二MAC地址是预留的MAC地址,使得所述第一报文与用户的业务报文相区分,保证了用户的业务报文不会对检测结果产生影响。显然本发明实施例通过下发流表项的方式,就能够实现对属于同一广播域的第一MAC地址和第二MAC地址进行连通性检测,不需要进行复杂的参数配置过程,因此减少了工作量。
此外,在本发明实施例中,用于连通性检测的所述第一报文可以是普通的数据或者协议报文,不需要交换机必须能够识别出LBM和LBR等特殊格式的报文,降低了对交换机的设备要求。
并且,本发明实施例中不需要通过特殊格式的标签识别用于连通性检测的所述第一报文,因此能够适用于大部分二层网络,例如对VLAN、VxLAN等都能适用。同时也不局限于MPLS网络,并且将本发明实施例用于MPLS网络时,不需要定期老化MAC地址,从而避免了连通性的误检测。
本发明实施例具体用于VxLAN、VLAN等二层网络中,对属于同一广播域的MAC地址之间进行连通性检测。其中,在VxLAN中,所述第一MAC地址和所述第二MAC地址具有同一VNI。在VLAN中,因此所述第一MAC地址和所述第二MAC地址具有同一VLAN标识。而本发明实施例用于VxLAN中,即能够实现对在支持同一VNI的NV Edge设备之间进行隧道连通性检测,当检测出未连通时,可以将NV Edge设备之间的隧道的状态置down,供用户参考,从而避免流量黑洞。
在本发明实施例中,所述第一报文具体由所述第二MAC地址对应的交换机发送,其中,所述第二MAC地址对应的交换机可以是在接收到从所述第一MAC地址发送至所述第二MAC地址的第二报文后,生成并发送所述第一报文,并且可以由所述控制器指示所述第二MAC地址对应的交换机根据所述第二报文生成所述第一报文。下面通过一个实施例具体说明。
请参阅图11,本发明实施例提供了控制器的另一种装置实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。其中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址。
本实施例的控制器1100包括:发送单元1101和处理单元1102。
本实施例与图10所示的实施例相比,处理单元1102与处理单元902执行的功能相同,即用于根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性,而发送单元1101除了发送单元901执行的功能,即用于向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据之外,还用于执行以下功能。
发送单元1101,还用于向所述第二MAC地址对应的交换机发送第二MAC流表项或者指示生成所述第二MAC流表项的数据。
在本发明实施例中,如表2所示,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二MAC地址对应的交换机根据所述第二匹配项匹配到所述第二报文后,生成所述第一报文。其中,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址。
可见,发送单元1101向所述第二MAC地址对应的交换机发送的所述第二MAC流表项中,所述第二匹配项为所述第二报文的源MAC地址和目的MAC地址的信息,因此所述第二MAC地址对应的交换机能够根据所述第二匹配项匹配到所述第二报文,即所述第二MAC地址对应的交换机能够判断出接收到所述第二报文。而当所述第二MAC地址对应的交换机根据所述第二匹配项判断出接收到所述第二报文时,所述第二MAC地址对应的交换机触发所述第二动作,即执行生成所述第一报文。其中,所述第二MAC地址对应的交换机具体可以是对所述第二报文进行源MAC地址和目的MAC地址的交换,从而生成所述第一报文。
其中,所述第二MAC流表项中的所述第二动作可以有多种实现方式,例如,所述第二动作可以具体用于指示所述第二MAC地址对应的交换机,在所述第二MAC地址对应的交换机的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文;所述第二动作也可以具体用于指示所述第二MAC地址对应的交换机,在所述第二MAC地址对应的交换机的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
在本发明实施例中,与所述第一匹配项类似,所述第二匹配项还可以包括广播域标识为所述第一MAC地址和所述第二MAC地址所属的广播域标识。所述第二匹配项可以包括:目的MAC地址为所述第二MAC地址或者源MAC地址为所述第一MAC地址,相关之处请参见对所述第一匹配项的描述,这里不再赘述。在本发明实施例中,若本实施例的发送单元1101向所述第二MAC地址对应的交换机发送指示生成所述第二MAC流表项的数据,本实施例还可以包括:所述第二MAC地址对应的交换机根据该数据生成所述第二MAC流表项。此外,即可以由发送单元1101向所述第二MAC地址对应的交换机的控制面发送所述第二MAC流表项,由所述第二MAC地址对应的交换机的控制面将所述第二MAC流表项下发至转发面;也可以由发送单元1101将指示生成所述第二MAC流表项的数据发送至所述第二MAC地址对应的交换机的控制面,由所述第二MAC地址对应的交换机的控制面根据该数据生成所述第二MAC流表项,再将所述第二MAC流表项下发至转发面。
发送单元1101,还用于向所述第一交换机发送所述第二报文或者指示生成所述第二报文的数据。
其中,所述第二报文的源MAC地址为所述第一MAC地址,目的MAC地址为所述第二MAC地址,即,所述第二报文是从所述第一MAC地址发送至所述第二MAC地址的报文。而若所述第二MAC地址对应的交换机成功接收到所述第二报文,会根据所述第二MAC流表项生成所述第一报文。
下面以图3为例加以说明。在图3中,发送单元1101向所述第二交换机发送所述第二报文,所述第二报文的源MAC地址为VM1的MAC地址MAC1,目的MAC地址为VM2的MAC地址MAC2。由于所述第二交换机上具有如表2所示的所述第二MAC流表项,因此所述第二交换机会生成所述第一报文,并向所述第一交换机发送所述第一报文,所述第一报文的源MAC地址为VM2的MAC地址MAC2,目的MAC地址为VM1的MAC地址MAC1。并且由于所述第一交换机上具有如表1所示的所述第一MAC流表项,因此,所述第一交换机接收到从所述第二交换机返回的所述第一报文后,则会根据所述第一MAC流表项将所述第一报文上传至所述控制器,从而使得所述控制器能够对VM1和VM2进行连通性。其中,所述第一交换机还可以包括接收单元,通过所述接收单元接收所述第一报文。
在本发明实施例中,若发送单元1101向所述第一交换机发送用于指示生成所述第二报文的数据,所述第一交换机还可以用于根据该数据生成所述第二报文。此外,若发送单元1101向所述第一交换机发送所述第二报文,一般由发送单元1101向所述第一交换机的控制面发送所述第二报文,再由所述第一交换机的控制面将所述第二报文下发至转发面。若发送单元1101向所述第一交换机发送用于指示生成所述第二报文的数据,则一般由发送单元1101将该数据发送至所述第一交换机的控制面,由所述第一交换机的控制面根据该数据生成所述第二报文,再将所述第二报文下发至转发面。
同时补充说明,所述第一报文也可以由除所述第二MAC地址对应的交换机之外的其他设备生成,例如,发送单元1101通过向所述第二MAC地址对应的交换机下发MAC流表项,使得所述第二MAC地址对应的交换机在接收到所述第二报文后,将所述第二报文上传至所述控制器,由处理单元1102生成所述第一报文并下发至所述第二MAC地址对应的交换机。
可见,在本实施例中,若处理单元1102在预设时间内接收到所述第一报文,表示所述第二报文成功从所述第一MAC地址发送至所述第二MAC地址,并且所述第一报文成功从所述第二MAC地址发送至所述第一MAC地址,因此处理单元1102能够检测出所述第一MAC地址和所述第二MAC地址之间双向连通,即从所述第一MAC地址至所述第二MAC地址连通,并且从所述第二MAC地址至所述第一MAC地址连通。
其中,所述第二MAC流表项中,如表3所示,所述第二动作除了指示所述第二MAC地址对应的交换机根据所述第二匹配项匹配到所述第二报文后生成所述第一报文之外,还可以用于指示所述第二MAC地址对应的交换机匹配到所述第二报文后,将所述第二报文上传至所述控制器,并且当根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性时,处理单元1102可以具体用于根据是否在预设时间内接收到所述第二报文和所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
具体检测方式可以是,当根据是否在预设时间内接收到所述第二报文和所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性时,处理单元1102具体用于,若控制器1100在所述预设时间内接收到所述第二报文和所述第一报文,检测出所述第一MAC地址和所述第二MAC地址双向连通;若控制器1100在所述预设时间内接收到所述第二报文,且未接收到所述第一报文,检测出从所述第一MAC地址至所述第二MAC地址单向连通,而且从所述第二MAC地址至所述第一MAC地址单向未连通;若控制器1100在所述预设时间内未接收到所述第二报文,且未接收到所述第一报文,检测出所述第一MAC地址和所述第二MAC地址未连通。
需要说明的是,所述第二MAC流表项可以如表3所示,即具体为一个表项,也可以为两个表项,其中一个表项用于指示所述第二MAC地址对应的交换机生成所述第一报文,另一个表项用于指示所述第二MAC地址对应的交换机将所述第二报文上传至所述控制器。
在本发明实施例中,所述第一MAC地址与所述第一交换机对应,而所述第二MAC地址即可以与所述第一交换机对应,例如所述第一MAC地址和所述第二MAC地址是所述第一交换机上的两个VM的MAC地址,所述第二MAC地址也可以与除所述第一交换机之外的其他交换机对应,例如所述第一MAC地址和所述第二MAC地址是不同的交换机上的两个VM的MAC地址。下面分别说明这两种情况。
一、首先说明所述第一MAC地址和所述第二MAC地址同时与所述第一交换机对应的情况。具体地,所述第一MAC地址与所述第一交换机的第一端口对应,所述第二MAC地址与所述第一交换机的第二端口对应。本发明实施例具体是检测所述第一端口和所述第二端口之间的连通性。
本发明实施例中,为了检测所述第一端口和所述第二端口的连通性,可以在所述第一MAC流表项的所述第一匹配项中加入接收端口信息,从而使得所述第一交换机在所述第一端口接收到所述第一报文后,将所述第一报文上传至所述控制器。例如表4所示,所述第一匹配项除了表1所示的内容外,还可以包括接收端口为所述第一端口,因此所述第一交换机根据所述第一匹配项匹配到所述第一报文,即表示所述第一交换机判断出通过所述第一端口接收到所述第一报文,此时所述第一交换机触发所述第一动作,即执行将所述第一报文上传至所述控制器。并且当向第一交换机发送第二报文或者指示生成所述第二报文的数据时,发送单元1101可以用于向所述第一端口发送所述第二报文。
与所述第一匹配项类似,所述第二匹配项除了表2所示的内容外,还可以包括接收端口为所述第二端口,因此所述第一交换机根据所述第二匹配项匹配到所述第二报文,即表示所述第一交换机判断出通过所述第二端口接收到所述第二报文,此时所述第一交换机触发所述第二动作,即执行生成所述第一报文。
例如在图4中,VM1连接所述第一交换机的port1,即所述VM1的MAC地址MAC1与所述第一交换机的port1对应,类似的,VM2连接所述第一交换机的port5,即所述VM2的MAC地址MAC2与所述第一交换机的port5对应。发送单元1101向所述第一交换机的port1发送所述第二报文,由于所述第二报文的源MAC地址是MAC1,目的MAC地址是MAC2,因此所述第一交换机将所述第二报文从port1向port5发送,所述第一交换机的port5接收到所述第二报文后,会根据所述第二MAC流表项生成所述第一报文,并通过port5发送所述第一报文,由于所述第一报文的源MAC地址是MAC2,目的MAC地址是MAC1,因此所述第一交换机会将所述第一报文从port5向port1发送,所述第一交换机的port1接收到所述第一报文,根据如表4所示的第一MAC流表项将所述第一报文上传至所述控制器,由处理单元1102检测MAC1和MAC2的连通性。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二报文的封装格式也不相同,下面以VLAN为例进行说明。
若所述二层网络为VLAN,发送单元1101向所述第一端口发送的所述第二报文包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文从所述第一端口发送至所述第二端口,发送单元1101还可以用于向所述第一交换机发送所述第一端口的标识和所述第一端口对应的VLAN标识。例如在图4所示的网络结构中,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
其中,DMAC(MAC2)表示目的MAC地址为VM2的MAC地址MAC2,SMAC(MAC1)表示源MAC地址为VM1的MAC地址MAC2,DATA为该报文携带的数据。
发送单元1101还用于向所述第一交换机发送:port1的标识、和port1对应的VLAN标识。
二、下面说明所述第一MAC地址对应所述第一交换机,所述第二MAC地址对应与所述第一交换机不同的第二交换机的情况。具体地,所述第一交换机将所述第二报文从所述第一交换机发送至所述第二交换机,所述第二交换机根据所述第二MAC流表项生成所述第一报文,并将所述第一报文发送至所述第一交换机,所述第一交换机根据所述第一MAC流表项将所述第一报文上传至所述控制器,由处理单元1102检测连通性。
其中,发送单元1101即可以向所述第一交换机发送封装好的所述第二报文,也可以向所述第一交换机发送指示生成所述第二报文的数据,以便于所述第一交换机封装所述第二报文。其中当发送单元1101向所述第一交换机发送该指示生成所述第二报文的数据时,发送单元1101可以用于向所述第一交换机的广播域实体发送,也可以是用于向所述第一交换机上所述第一MAC地址对应的端口发送。下面分三种情况进行说明。
1、首先说明发送单元1101发送封装好的所述第二报文的情况。具体地,当向第一交换机发送第二报文或者指示生成所述第二报文的数据时,发送单元1101用于向所述第一交换机的第三端口发送所述第二报文,所述第三端口为所述第一交换机上用于与所述第二交换机连接的端口。也就是说,发送单元1101直接向所述第一交换机上用于与所述第二交换机连接的所述第三端口发送封装好的所述第二报文,所述第一交换机通过所述第三端口直接发送封装好的所述第二报文。例如图5为所述第一交换机的一种示例性的结构图,其中发送单元1101可以向所述第三端口发送所述第二报文,所述第三端口对应的边缘端口实体会接收到所述第二报文后,并通过所述第三端口发送所述第二报文。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,发送单元1101向所述第一交换机发送的所述第二报文包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,发送单元1101还可以用于向所述第一交换机发送所述第三端口的标识和所述第三端口对应的VLAN标识。下面以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,port3为所述第一交换机上用于与所述第二交换机连接的端口。所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
其中,DMAC(MAC2)表示目的MAC地址为VM2的MAC地址MAC2,SMAC(MAC1)表示源MAC地址为VM1的MAC地址MAC1,DATA为该报文携带的数据。
发送单元1101还用于向所述第一交换机发送:port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,发送单元1101向所述第一交换机发送的所述第二报文包括:所述第一MAC地址、所述第二MAC地址、所述第一MAC地址和所述第二MAC地址所属的VNI、所述第一交换机和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口。其中,所述第一交换机和所述第二交换机的隧道出接口IP地址,即指的是所述第一交换机的IP地址和所述第二交换机的IP地址。下面以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,MAC1和MAC2所属的VNI为VNI(1),port3为所述第一交换机上用于与所述第二交换机连接的端口,port4为所述第二交换机上用于与所述第一交换机连接的端口,所述第一交换机的IP地址为(1.1.1.1),所述第二交换机的IP地址为(2.2.2.2)。所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
其中,DMAC(port4mac)表示隧道目的端口的MAC地址为port4的MAC地址,SMAC(port3mac)表示隧道源端口的MAC地址为port3的MAC地址,SIP地址(1.1.1.1)表示隧道源IP地址为(1.1.1.1),DIP地址(1.1.1.1)表示隧道目的IP地址为(2.2.2.2),DMAC(MAC2)表示目的MAC地址为MAC2,SMAC(MAC1)表示源MAC地址为MAC1,DATA为该报文携带的数据。
2、下面说明发送单元1101向所述第一交换机的广播域实体发送指示生成所述第二报文的数据的情况。具体地,当向第一交换机发送第二报文或者指示生成所述第二报文的数据时,发送单元1101用于向所述第一交换机的广播域实体(英文Flood Entries)发送指示生成所述第二报文的第一数据,从而使得所述第一交换机生成所述第二报文并向所述第二交换机发送。其中广播域实体具体可以为VLAN或者VNI广播域实体。例如图5所示的所述第一交换机,发送单元1101向二层网络(Layer 2,即L2)VLAN Flood Entries发送所述第一数据,所述L2VLAN Flood Entries接收到所述第一数据后,根据所述第一数据触发生成所述第二报文,并将生成的所述第二报文发送至边缘端口实体,所述边缘端口实体通过所述第三端口发送所述第二报文。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第一数据、以及第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,发送单元1101向所述第一交换机发送的所述第一数据包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,发送单元1101还可以用于向所述第一交换机发送所述第一MAC地址和所述第二MAC地址所属的全局VLAN标识或BD。例如在图3中,发送单元1101向所述第一交换机发送的所述第一数据包括:MAC1和MAC2,所述第一交换机生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
发送单元1101还用于向所述第一交换机发送:MAC1和MAC2所属的全局VLAN标识或BD,所述第一交换机根据MAC1、MAC2、MAC1和MAC2所属的全局VLAN标识或BD,获取port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,发送单元1101向所述第一交换机发送的所述第一数据包括:所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VNI。所述第一交换机根据所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VNI获取所述第一交换机和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口,并且所述第一交换机进一步生成所述第二报文。例如在图3中,发送单元1101向所述第一交换机发送的所述第一数据可以包括第三报文和第三报文附属信息。
第三报文:DMAC(MAC1)|SMAC(MAC2)|DATA
第三报文附属信息:VNI(1)
所述第一交换机根据MAC1、MAC2和VNI(1)获取到所述第一交换机和所述第二交换机的隧道出接口IP地址(1.1.1.1)和(2.2.2.2)、port3的标识和MAC地址、port4的MAC地址,并对所述第三报文重新封装,以得到所述第二报文,所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
3、最后说明发送单元1101向所述第一交换机上的所述第一端口发送指示生成所述第二报文的数据的情况。其中,所述第一端口与所述第一MAC地址对应。
对于发送单元1101向所述第三端口和所述广播域实体发送所述第二报文或者指示生成所述第二报文的数据的情况来说,实际上都属于outward检测,不能模拟VM真实的流量路径。而本发明实施例中,发送单元1101还可以向所述第一交换机的所述第一端口发送指示所述生成所述第二报文的数据,其中所述第一端口与所述第一MAC地址对应,即所述第一端口为与VM连接的端口,从而实现了inward检测,能够模拟出VM真实的流量路径。
具体地,当向第一交换机发送第二报文或者指示生成所述第二报文的数据时,发送单元1101用于向所述第一交换机的第一端口发送指示生成所述第二报文的第二数据,所述第一端口与所述第一MAC地址对应。例如图5所示的所述第一交换机,发送单元1101向所述第一端口发送所述第二数据,所述第一端口对应的上行端口公共处理会接收到所述第二数据,并根据所述第二数据触发生成所述第二报文,将所述第二报文发送至边缘端口实体,所述边缘端口实体对应所述第一交换机上用于与所述第二交换机连接的所述第三端口,所述边缘端口实体通过所述第三端口发送所述第二报文。可见,这种检测方式,不仅能够检测出所述第一交换机和所述第二交换机的连通性,还能够检测出在所述第一交换机的内部,所述第一端口和所述第三端口的连通性。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二数据、以及第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,发送单元1101向所述第一交换机发送的所述第二数据包括:所述第一MAC地址和所述第二MAC地址。为了使得所述第一交换机将所述第二报文发送至所述第二交换机,发送单元1101还用于向所述第一交换机发送所述第一端口的标识、以及所述第一端口对应的VLAN标识。以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,所述第一交换机通过port1连接VM1,发送单元1101向所述第一交换机发送的所述第二数据包括:MAC1和MAC2,所述第一交换机生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
发送单元1101还用于向所述第一交换机发送:port1的标识,以及port1对应的VLAN标识,所述第一交换机根据:MAC1、MAC2、port1的标识,以及port1对应的VLAN标识获取port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,发送单元1101向所述第一交换机发送的所述第二数据包括:所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识。所述第一交换机根据所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识,获取所述第一交换机和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及所述第四端口的MAC地址,所述第四端口为所述第二交换机上用于与所述第一交换机连接的端口,并且所述第一交换机进一步生成所述第二报文。下面以图3为例进行说明。发送单元1101向所述第一交换机发送的所述第二数据包括第四报文和第四报文附属信息:
第四报文:DMAC(MAC2)|SMAC(MAC1)|DATA
第四报文附属信息:port1的标识、和port1对应的VLAN标识
所述第一交换机根据MAC1、MAC2、port1的标识、和port1对应的VLAN标识获取到所述第一交换机和所述第二交换机的隧道出接口IP地址(1.1.1.1)和(2.2.2.2)、port3的标识和MAC地址、以及port4的MAC地址,并生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
可选的,本发明实施例中,若二层网络为VxLAN,所述控制器还可以通过ICMP机制检测隧道连通性。
具体地,所述发送单元下发NQA模板至所述第一交换机,
此时所述第一交换机具体为Service Switch,所述第一交换机周期性发送ICMP请求报文,以检测VXLAN隧道的连通性。例如所述第一交换机向第二交换机发送ICMP echorequest报文,所述第二交换机收到该报文后,回应ICMP echo reply报文给所述第一交换机,所述第一交换机汇总检测结果,上报至所述控制器。
在上述装置实施例中,主要从所述控制器的角度介绍了本发明实施例,下面将分别从所述第一交换机和所述第二交换机的角度进行介绍。
请参阅图12,本发明实施例还提供了交换机的一种装置实施例,本实施例的所述交换机为第一交换机1200,本实施例用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,其中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址。
本实施例的第一交换机1200包括:接收单元1201。
接收单元1201,用于接收第一MAC流表项或者指示生成所述第一MAC流表项的数据。其中,第一交换机1200与所述第一MAC地址对应,即表示所述第一MAC地址为所述第一交换机上的VM的MAC地址。
在本发明实施例中,如表1所示,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示第一交换机1200根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器,其中,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
可见,接收单元1201接收到的所述第一MAC流表项中,所述第一匹配项为所述第一报文的源MAC地址和目的MAC地址的信息,因此第一交换机1200能够根据所述第一匹配项匹配到所述第一报文,即第一交换机1200能够判断出接收到所述第一报文。而当第一交换机1200根据所述第一匹配项判断出接收到所述第一报文时,第一交换机1200触发所述第一动作,即执行将所述第一报文上传至所述控制器。其中,由于所述第一报文是从所述第二MAC地址发送至所述第一MAC地址的报文,因此第一交换机1200实际上是当接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,将所述第一报文上传至所述控制器,从而能够使得所述控制器根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第一报文与用户的业务报文相区分,也可以说所述第一报文是用于连通性检测的报文。
在本发明实施例中,所述第一报文具体由所述第二MAC地址对应的交换机发送,其中,所述第二MAC地址对应的交换机可以是在接收到从所述第一MAC地址发送至所述第二MAC地址的第二报文后,生成并发送所述第一报文。具体地,本实施例的第一交换机1200还可以包括发送单元,接收单元1201,还用于接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址;所述发送单元,用于发送所述第二报文。
需要说明的是,本实施例的第一交换机1200具体可以是接收所述控制器发送的所述第一MAC流表项或者指示生成所述第一MAC流表项的数据。并且第一交换机1200具体可以为图10或者图11所示的实施例中的第一交换机1200,因此相关之处请参阅上述图10或者图11所示的实施例,这里不再赘述。
请参阅图13,本发明实施例还提供了交换机的另一种装置实施例,本实施例的所述交换机为第二交换机1300,本实施例用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,其中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址。
本实施例的第二交换机1300包括:接收单元1301和发送单元1302。
接收单元1301,用于接收第二MAC流表项或者指示生成所述第二MAC流表项的数据。其中,第二交换机1300与所述第二MAC地址对应,即表示所述第二MAC地址为所述第二交换机上的VM的MAC地址。
在本发明实施例中,如表2所示,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示第二交换机1300根据所述第二匹配项匹配到第二报文后生成第一报文,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第二报文的源MAC地址为第一MAC地址且目的MAC地址为第二MAC地址。
可见,第二交换机1300接收到的所述第二MAC流表项中,所述第二匹配项为所述第二报文的源MAC地址和目的MAC地址的信息,因此第二交换机1300能够根据所述第二匹配项匹配到所述第二报文,即第二交换机1300能够判断出接收到所述第二报文。而当第二交换机1300根据所述第二匹配项判断出接收到所述第二报文时,第二交换机1300触发所述第二动作,即执行生成所述第一报文。其中,第二交换机1300具体可以是对所述第二报文进行源MAC地址和目的MAC地址的交换,从而生成所述第一报文。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第二报文与用户的业务报文相区分,也可以说所述第二报文是用于连通性检测的报文。
在本发明实施例中,所述第二MAC流表项中的所述第二动作可以有多种实现方式,例如,所述第二动作可以具体用于指示第二交换机1300,在第二交换机1300的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文;所述第二动作也可以具体用于指示第二交换机1300,在第二交换机1300的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
接收单元1301,还用于接收所述第二报文后,根据所述第二MAC流表项生成所述第一报文。
其中,第二交换机1300具体可以是接收所述第一MAC地址对应的第一交换机发送的所述第二报文。
发送单元1302,用于发送所述第一报文。
由于所述第一报文的目的MAC地址为所述第一MAC地址,因此发送单元1302将第一报文发送至所述第一MAC地址对应的所述第一交换机。
需要说明的是,本实施例的接收单元1301具体可以是接收所述控制器发送的所述第二MAC流表项或者指示生成所述第二MAC流表项的数据。并且第二交换机1300具体可以为图10、图11或者图14所示的实施例中的所述第二交换机,因此相关之处请参阅图10、图11或者图14所示的实施例,这里不再赘述。
在上述装置实施例中,当所述第一交换机接收到所述第一报文后,会根据所述第一MAC流表项将所述第一报文上传至所述控制器,由所述控制器检测连通性。而在本发明实施例中,实际上也可以将所述第一报文从所述第一交换机的转发面上传至控制面,因此由所述第一交换机检测连通性,下面具体说明。
请参阅图14,本发明实施例提供了交换机的另一种装置实施例,本实施例的交换机为第一交换机1400,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。
在本发明实施例中,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,即所述第一MAC地址和所述第二MAC地址均不用于向用户分配。因此,本发明实施例能够保证在所述第一MAC地址或者所述第二MAC地址上,均不会生成用户的业务报文,以避免用户的业务报文对本发明实施例的检测结果产生影响。其中,本实施例还可以由所述控制器等设备对所述第一MAC地址和所述第二MAC地址进行重复性检测,即确定所述第一MAC地址或所述第二MAC地址是否与已向用户分配的MAC地址重复,当所述第一MAC地址或所述第二MAC地址出现重复时,进行重新分配。
其中,所述第一MAC地址和所述第二MAC地址可以为交换机上的VM的MAC地址。而检测MAC地址之间的连通性,可以看做是检测交换机之间的连通性,也可以看做是检测交换机上的VM之间的连通性。例如在图3所示的网络拓扑中,本实施例可以具体用于对第一交换机上的VM1和第二交换机上的VM2进行连通性检测。需说明的是,图3仅为一种示例性的网络拓扑,其具体结构对本发明实施例并不起到任何限制作用。
本实施例的第一交换机1400包括:接收单元1401和处理单元1402。
接收单元1401,用于接收第一MAC流表项或者指示生成所述第一MAC流表项的数据。其中,第一交换机1400具体可以是接收控制器发送的所述第一MAC流表项或者指示生成所述第一MAC流表项的数据。
其中,第一交换机1400与所述第一MAC地址对应,即表示所述第一MAC地址为第一交换机1400上的VM的MAC地址,例如在图3中,第一交换机1400与第一交换机1400上的VM1的MAC地址对应。
在本发明实施例中,如表5所示,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示第一交换机1400根据所述第一匹配项匹配到第一报文后,将所述第一报文从第一交换机1400的转发面上传至控制面,其中,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
可见,接收单元1401接收的所述第一MAC流表项中,所述第一匹配项为所述第一报文的源MAC地址和目的MAC地址的信息,因此第一交换机1400能够根据所述第一匹配项匹配到所述第一报文,即第一交换机1400能够判断出接收到所述第一报文。而当第一交换机1400根据所述第一匹配项判断出接收到所述第一报文时,第一交换机1400触发所述第一动作,即执行将所述第一报文从第一交换机1400的转发面上传至控制面。其中,由于所述第一报文是从所述第二MAC地址发送至所述第一MAC地址的报文,因此第一交换机1400实际上是当接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,将所述第一报文从第一交换机1400的转发面上传至控制面。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第一报文与用户的业务报文相区分,也可以说所述第一报文是用于连通性检测的报文。
在本发明实施例中,所述第一匹配项除了包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址之外,还可以包括广播域标识为所述第一MAC地址和所述第二MAC地址所属的广播域标识。并且,若在检测所述第一MAC地址和所述第二MAC地址的连通性时,并没有检测其他MAC地址与所述第一MAC地址的连通性,那么所述第一匹配项可以包括所述第一报文的目的MAC地址信息而不包括所述第一报文的源MAC地址信息,或者包括所述第一报文的源MAC地址信息而不包括所述第一报文的目的MAC地址信息,即所述第一匹配项包括:目的MAC地址为所述第一MAC地址或者源MAC地址为所述第二MAC地址。
在本发明实施例中,为了使得第一交换机1400获得所述第一MAC流表项,接收单元1401可以是直接接收所述第一MAC流表项,也可以是接收指示生成所述第一MAC流表项的数据,此时处理单元1402还用于根据该数据生成所述第一MAC流表项。本发明实施例中,交换机一般都具有转发面和控制面两个层面,每个层面分别由独立的芯片负责。因此,若接收单元1401接收所述第一MAC流表项,一般由第一交换机1400的控制面接收所述第一MAC流表项,再由第一交换机1400的控制面将所述第一MAC流表项下发至转发面。若接收单元1401接收用于指示生成所述第一MAC流表项的数据,则一般由第一交换机1400的控制面接收该数据,由第一交换机1400的控制面根据该数据生成所述第一MAC流表项,再将生成的所述第一MAC流表项下发至转发面。
处理单元1402,用于根据第一交换机1400的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
由于接收单元1401用于接收所述第一MAC流表项,从而使得第一交换机1400接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,会将所述第一报文从第一交换机1400的转发面上传至控制面,因此,处理单元1402根据第一交换机1400的控制面是否在预设时间内接收到所述第一报文,就能够判断出第一交换机1400是否接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文,从而能够检测所述第一MAC地址和所述第二MAC地址的连通性。其中,由于接收单元1401在接收所述第一MAC流表项后,一般会在第一交换机1400上保存所述第一MAC流表项,而在第一交换机1400将所述第一报文上传至所述控制面后,可以删除在第一交换机1400上保存的所述第一MAC流表项。
其中,处理单元1402的具体检测方式可以是,若第一交换机1400的控制面在所述预设时间内接收到所述第一报文,则检测出所述第一MAC地址和所述第二MAC地址连通。而若第一交换机1400的控制面在所述预设时间内没有接收到所述第一报文,则检测出所述第一MAC地址和所述第二MAC地址未连通。上述连通可以指的是从所述第二MAC地址至所述第一MAC地址的单向连通。
通过上述技术方案可知,本发明实施例在检测属于同一广播域的所述第一MAC地址和所述第二MAC地址的连通性时,接收单元1401接收所述第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一MAC流表项使得第一交换机1400根据所述第一匹配项匹配到所述第一报文后,将所述第一报文从第一交换机1400的转发面上传至控制面。由于所述第一报文从第二MAC地址发送至所述第一MAC地址,因此由处理单元1402根据第一交换机1400的控制面是否在预设时间内接收到所述第一报文,就能够检测出所述第一MAC地址和所述第二MAC地址的连通性。其中所述第一MAC地址和所述第二MAC地址是预留的MAC地址,使得所述第一报文与用户的业务报文相区分,保证了用户的业务报文不会对检测结果产生影响。显然本发明实施例通过下发流表项的方式,就能够实现对属于同一广播域的第一MAC地址和第二MAC地址进行连通性检测,不需要进行复杂的参数配置过程,因此减少了工作量。
此外,在本发明实施例中,用于连通性检测的所述第一报文可以是普通的数据或者协议报文,不需要交换机必须能够识别出LBM和LBR等特殊格式的报文,降低了对交换机的设备要求。
并且,本发明实施例中不需要通过特殊格式的标签识别用于连通性检测的所述第一报文,因此能够适用于大部分二层网络,例如对VLAN、VxLAN等都能适用。同时也不局限于MPLS网络,并且将本发明实施例用于MPLS网络时,不需要定期老化MAC地址,从而避免了连通性的误检测。
本发明实施例具体用于VxLAN、VLAN等二层网络中,对属于同一广播域的MAC地址之间进行连通性检测。其中,在VxLAN中,所述第一MAC地址和所述第二MAC地址具有同一VNI。在VLAN中,所述第一MAC地址和所述第二MAC地址具有同一VLAN标识。而本发明实施例用于VxLAN中,即能够实现对在支持同一VNI的NV Edge设备之间进行隧道连通性检测,当检测出未连通时,可以将NV Edge设备之间的隧道的状态置down,供用户参考,从而避免流量黑洞。
在本发明实施例中,所述第一报文具体由所述第二MAC地址对应的交换机发送,其中,所述第二MAC地址对应的交换机可以是在接收到所述第一交换机发送的第二报文后,生成并发送所述第一报文。具体地,本实施例还包括发送单元。其中,接收单元1401,还用于接收第二报文或者指示生成所述第二报文的数据。其中接收单元1401具体可以接收控制器发送的所述第二报文或者指示生成所述第二报文的数据。所述发送单元用于发送所述第二报文。
在本发明实施例中,若接收单元1401接收用于指示生成所述第二报文的数据,处理单元1402还可以根据该数据生成所述第二报文。此外,若接收单元1401接收所述第二报文,一般由所述第一交换机的控制面接收所述第二报文,再由所述第一交换机的控制面将所述第二报文下发至转发面。若接收单元1401接收用于指示生成所述第二报文的数据,则一般由所述第一交换机的控制面接收该数据,根据该数据生成所述第二报文,再将所述第二报文下发至转发面。其中,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,因此所述发送单元会将所述第二报文发送至所述第二MAC地址对应的交换机,由所述第二MAC地址对应的交换机根据所述第二报文生成所述第一报文,例如所述第二MAC地址对应的交换机根据所述第二流表项生成所述第一报文,所述第二MAC流表项可以如表2所示。
可见,若所述第一交换机的控制面在预设时间内接收到所述第一报文,表示所述第二报文成功从所述第一MAC地址发送至所述第二MAC地址,并且所述第一报文成功从所述第二MAC地址发送至所述第一MAC地址,因此处理单元1402能够检测出所述第一MAC地址和所述第二MAC地址之间双向连通,即从所述第一MAC地址至所述第二MAC地址连通,并且从所述第二MAC地址至所述第一MAC地址连通。
在本发明实施例中,所述第一MAC地址与第一交换机1400对应,而所述第二MAC地址即可以与第一交换机1400对应,例如所述第一MAC地址和所述第二MAC地址是第一交换机1400上的两个VM的MAC地址,所述第二MAC地址也可以与除第一交换机1400之外的其他交换机对应,例如所述第一MAC地址和所述第二MAC地址是不同的交换机上的两个VM的MAC地址。下面分别说明这两种情况。
一、首先说明所述第一MAC地址和所述第二MAC地址同时与第一交换机1400对应的情况。具体地,所述第一MAC地址与第一交换机1400的第一端口对应,所述第二MAC地址与第一交换机1400的第二端口对应。本发明实施例具体是检测所述第一端口和所述第二端口之间的连通性。
本发明实施例中,为了检测所述第一端口和所述第二端口的连通性,可以在所述第一MAC流表项的所述第一匹配项中加入接收端口信息,从而使得第一交换机1400在所述第一端口接收到所述第一报文后,将所述第一报文上传至所述控制器。例如表6所示,所述第一匹配项除了表5所示的内容外,还可以包括接收端口为所述第一端口,因此第一交换机1400根据所述第一匹配项匹配到所述第一报文,即表示第一交换机1400判断出通过所述第一端口接收到所述第一报文,此时第一交换机1400触发所述第一动作,即执行将所述第一报文从第一交换机1400的转发面上传至控制面。并且当接收第二报文或者指示生成所述第二报文的数据时,接收单元1401用于通过所述第一端口接收所述第二报文。
在本发明实施例中,第一交换机1400还可以用于接收第二MAC流表项或者指示生成所述第二MAC流表项的数据。如表7所示,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二匹配项还包括接收端口为所述第二端口,所述第二动作用于指示第一交换机1400根据所述第二匹配项匹配到所述第二报文后,生成所述第一报文。
可见,第一交换机1400接收的所述第二MAC流表项中,所述第二匹配项为所述第二报文的源MAC地址和目的MAC地址的信息以及接收端口信息,因此所述第二MAC地址对应的交换机能够根据所述第二匹配项匹配到所述第二报文,即所述第二MAC地址对应的交换机能够判断出通过所述第一端口接收到所述第二报文。而当所述第二MAC地址对应的交换机根据所述第二匹配项判断出通过所述第一端口接收到所述第二报文时,第一交换机1400触发所述第二动作,即执行生成所述第一报文。其中,第一交换机1400具体可以是对所述第二报文进行源MAC地址和目的MAC地址的交换,从而生成所述第一报文。
其中,所述第二MAC流表项中的所述第二动作可以有多种实现方式,例如,所述第二动作可以具体用于指示第一交换机1400在第一交换机1400的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文;所述第二动作也可以具体用于指示第一交换机1400,在第一交换机1400的转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
在本发明实施例中,与所述第一匹配项类似,所述第二匹配项还可以包括广播域标识为所述第一MAC地址和所述第二MAC地址所属的广播域标识。所述第二匹配项可以包括:目的MAC地址为所述第二MAC地址或者源MAC地址为所述第一MAC地址,相关之处请参见对所述第一匹配项的描述,这里不再赘述。在本发明实施例中,若本实施例接收单元1401接收指示生成所述第二MAC流表项的数据,本实施例处理单元1402还可以用于根据该数据生成所述第二MAC流表项。此外,即可以由第一交换机1400的控制面接收所述第二MAC流表项,再将所述第二MAC流表项下发至转发面;也可以由第一交换机1400的控制面接收指示生成所述第二MAC流表项的数据,根据该数据生成所述第二MAC流表项,再将所述第二MAC流表项下发至转发面。
可选的,所述第二MAC流表项中,如表8所示,所述第二动作除了指示第一交换机1400根据所述第二匹配项匹配到所述第二报文后生成所述第一报文之外,还可以用于指示第一交换机1400根据所述第二匹配项匹配到所述第二报文后,将所述第二报文从第一交换机1400的转发面上传至控制面,并且当根据第一交换机1400的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性时,处理单元1402用于根据第一交换机1400的控制面是否在预设时间内接收到所述第一报文和所述第二报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
具体检测方式可以是,当根据第一交换机1400的控制面是否在预设时间内接收到所述第一报文和所述第二报文,检测所述第一MAC地址和所述第二MAC地址的连通性时,处理单元1402用于,若第一交换机1400的控制面在所述预设时间内接收到所述第二报文和所述第一报文,检测出所述第一MAC地址和所述第二MAC地址双向连通;若第一交换机1400的控制面在所述预设时间内接收到所述第二报文,且未接收到所述第一报文,检测出从所述第一MAC地址至所述第二MAC地址单向连通,而且从所述第二MAC地址至所述第一MAC地址单向未连通;若第一交换机1400的控制面在所述预设时间内未接收到所述第二报文,且未接收到所述第一报文,检测出所述第一MAC地址和所述第二MAC地址未连通。
需要说明的是,所述第二MAC流表项可以如表8所示,即具体为一个表项,也可以为两个表项,其中一个表项用于指示第一交换机1400生成所述第一报文,另一个表项用于指示第一交换机1400将所述第二报文上传至所述控制面。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二报文的封装格式也不相同,下面以VLAN为例进行说明。
若所述二层网络为VLAN,接收单元1401通过所述第一端口接收的所述第二报文包括:所述第一MAC地址和所述第二MAC地址。为了使得第一交换机1400将所述第二报文从所述第一端口发送至所述第二端口,接收单元1401还可以用于接收所述第一端口的标识和所述第一端口对应的VLAN标识。例如在图4所示的网络结构中,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
其中,DMAC(MAC2)表示目的MAC地址为VM2的MAC地址MAC2,SMAC(MAC1)表示源MAC地址为VM1的MAC地址MAC2,DATA为该报文携带的数据。
接收单元1401还用于接收:port1的标识、和port1对应的VLAN标识。
二、下面说明所述第一MAC地址对应第一交换机1400,所述第二MAC地址对应与第一交换机1400不同的第二交换机的情况。具体地,接收单元1401接收所述第二报文,所述第一交换机将所述第二报文从第一交换机1400发送至所述第二交换机,所述第二交换机生成所述第一报文,并将所述第一报文发送至第一交换机1400,第一交换机1400根据所述第一MAC流表项将所述第一报文上传至所述控制面,由第一交换机1400检测连通性。
其中,接收单元1401可以接收封装好的所述第二报文,也可以接收指示生成所述第二报文的数据,以便于第一交换机1400封装所述第二报文。其中接收单元1401接收该指示生成所述第二报文的数据时,可以是通过第一交换机1400的广播域实体接收,也可以是通过第一交换机1400上所述第一MAC地址对应的端口发送。下面分三种情况进行说明。
1、首先说明接收单元1401接收封装好的所述第二报文的情况。具体地,当接收第二报文或者指示生成所述第二报文的数据时,接收单元1401用于通过第三端口接收所述第二报文,所述第三端口为所述第一交换机上用于与所述第二交换机连接的端口。具体由接收单元1401通过用于与所述第二交换机连接的所述第三端口直接接收封装好的所述第二报文,第一交换机1400通过所述第三端口直接发送封装好的所述第二报文。例如图5为第一交换机1400的一种示例性的结构图,其中接收单元1401可以通过所述第三端口接收所述第二报文,所述第三端口对应的边缘端口实体会接收到所述第二报文,并通过所述第三端口发送所述第二报文。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,接收单元1401通过所述第三端口接收的所述第二报文包括:所述第一MAC地址和所述第二MAC地址。为了使得第一交换机1400将所述第二报文发送至所述第二交换机,接收单元1401还用于接收所述第三端口的标识和所述第三端口对应的VLAN标识。下面以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,port3为第一交换机1400上用于与所述第二交换机连接的端口。所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
其中,DMAC(MAC2)表示目的MAC地址为VM2的MAC地址MAC2,SMAC(MAC1)表示源MAC地址为VM1的MAC地址MAC1,DATA为该报文携带的数据。
接收单元1401还用于接收:port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,接收单元1401通过所述第三端口接收的所述第二报文包括:所述第一MAC地址、所述第二MAC地址、所述第一MAC地址和所述第二MAC地址所属的VNI、第一交换机1400和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及第四端口的MAC地址,所述第四端口为所述第二交换机上用于与第一交换机1400连接的端口。其中,第一交换机1400和所述第二交换机的隧道出接口IP地址,即指的是第一交换机1400的IP地址和所述第二交换机的IP地址。下面以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,MAC1和MAC2所属的VNI为VNI(1),port3为第一交换机1400上用于与所述第二交换机连接的端口,port4为所述第二交换机上用于与第一交换机1400连接的端口,第一交换机1400的IP地址为(1.1.1.1),所述第二交换机的IP地址为(2.2.2.2)。所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
其中,DMAC(port4mac)表示隧道目的端口的MAC地址为port4的MAC地址,SMAC(port3mac)表示隧道源端口的MAC地址为port3的MAC地址,SIP地址(1.1.1.1)表示隧道源IP地址为(1.1.1.1),DIP地址(1.1.1.1)表示隧道目的IP地址为(2.2.2.2),DMAC(MAC2)表示目的MAC地址为MAC2,SMAC(MAC1)表示源MAC地址为MAC1,DATA为该报文携带的数据。
2、下面说明通过第一交换机1400的广播域实体接收指示生成所述第二报文的数据的情况。具体地,第一交换机1400通过广播域实体接收指示生成所述第二报文的第一数据,从而使得第一交换机1400生成所述第二报文并向所述第二交换机发送。其中广播域实体具体可以为VLAN或者VNI广播域实体。例如图5所示的第一交换机1400,通过L2 VLANFlood Entries接收所述第一数据,所述L2 VLAN Flood Entries接收到所述第一数据后,根据所述第一数据触发生成所述第二报文,并将生成的所述第二报文发送至边缘端口实体,所述边缘端口实体通过所述第三端口发送所述第二报文。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第一数据、以及第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,接收单元1401通过所述广播域实体接收的所述第一数据包括:所述第一MAC地址和所述第二MAC地址。为了使得第一交换机1400将所述第二报文发送至所述第二交换机,接收单元1401还可以用于接收所述第一MAC地址和所述第二MAC地址所属的全局VLAN标识或BD。例如在图3中,第一交换机1400接收的所述第一数据包括:MAC1和MAC2,第一交换机1400生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
接收单元1401还用于接收:MAC1和MAC2所属的全局VLAN标识或BD,第一交换机1400根据MAC1、MAC2、MAC1和MAC2所属的全局VLAN标识或BD,获取port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,接收单元1401通过所述广播域实体接收的所述第一数据包括:所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VNI。第一交换机1400根据所述第一MAC地址、所述第二MAC地址、以及所述第一MAC地址和所述第二MAC地址所属的VNI获取第一交换机1400和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及第四端口的MAC地址,所述第四端口为所述第二交换机上用于与第一交换机1400连接的端口,并且第一交换机1400进一步生成所述第二报文。例如在图3中,所述控制器向第一交换机1400发送的所述第一数据可以包括第三报文和第三报文附属信息。
第三报文:DMAC(MAC1)|SMAC(MAC2)|DATA
第三报文附属信息:VNI(1)
第一交换机1400根据MAC1、MAC2和VNI(1)获取到第一交换机1400和所述第二交换机的隧道出接口IP地址(1.1.1.1)和(2.2.2.2)、port3的标识和MAC地址、port4的MAC地址,并对所述第三报文重新封装,以得到所述第二报文,所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
3、最后说明接收单元1401通过所述第一端口接收指示生成所述第二报文的数据的情况。其中,所述第一端口与所述第一MAC地址对应。
对于接收单元1401通过所述第三端口和所述广播域实体接收所述第二报文或者指示生成所述第二报文的数据的情况来说,实际上都属于outward检测,不能模拟VM真实的流量路径。而本发明实施例中,接收单元1401还可以通过所述第一端口接收指示所述生成所述第二报文的数据,其中所述第一端口与所述第一MAC地址对应,即所述第一端口为与VM连接的端口,从而实现了inward检测,能够模拟出VM真实的流量路径。
具体地,当接收所述控制器发送的第二报文或者指示生成所述第二报文的数据时,接收单元1401用于通过所述第一端口接收指示生成所述第二报文的第二数据,所述第一端口与所述第一MAC地址对应。例如图5所示的第一交换机1400,通过所述第一端口接收所述第二数据,所述第一端口对应的上行端口公共处理会接收到所述第二数据,并根据所述第二数据触发生成所述第二报文,将所述第二报文发送至边缘端口实体,所述边缘端口实体对应第一交换机1400上用于与所述第二交换机连接的所述第三端口,所述边缘端口实体通过所述第三端口发送所述第二报文。可见,这种检测方式,不仅能够检测出第一交换机1400和所述第二交换机的连通性,还能够检测出在第一交换机1400的内部,所述第一端口和所述第三端口的连通性。
本发明实施例中的二层网络,具体可以为VLAN、VxLAN等。当二层网络不同时,对应的所述第二数据、以及第二报文的封装格式也不相同,下面以VLAN和VxLAN为例进行说明。
若所述二层网络为VLAN,接收单元1401通过所述第一端口接收的所述第二数据包括:所述第一MAC地址和所述第二MAC地址。为了使得第一交换机1400将所述第二报文发送至所述第二交换机,接收单元1401还用于接收所述第一端口的标识、以及所述第一端口对应的VLAN标识。以图3为例进行说明。在图3中,VM1的MAC地址为MAC1,VM2的MAC地址为MAC2,第一交换机1400通过port1连接VM1,接收单元1401接收的所述第二数据包括:MAC1和MAC2,第一交换机1400生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(MAC2)|SMAC(MAC1)|DATA
接收单元1401还用于接收:port1的标识,以及port1对应的VLAN标识,第一交换机1400根据:MAC1、MAC2、port1的标识,以及port1对应的VLAN标识获取port3的标识、和port3对应的VLAN标识。
若所述二层网络为VxLAN,接收单元1401接收的所述第二数据包括:所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识。第一交换机1400根据所述第一MAC地址、所述第二MAC地址、所述第一端口的标识、以及所述第一端口对应的VLAN标识,获取第一交换机1400和所述第二交换机的隧道出接口IP地址、所述第三端口的标识和MAC地址、以及所述第四端口的MAC地址,所述第四端口为所述第二交换机上用于与第一交换机1400连接的端口,并且第一交换机1400进一步生成所述第二报文。下面以图3为例进行说明。接收单元1401接收的所述第二数据包括第四报文和第四报文附属信息:
第四报文:DMAC(MAC2)|SMAC(MAC1)|DATA
第四报文附属信息:port1的标识、和port1对应的VLAN标识
第一交换机1400根据MAC1、MAC2、port1的标识、和port1对应的VLAN标识获取到第一交换机1400和所述第二交换机的隧道出接口IP地址(1.1.1.1)和(2.2.2.2)、port3的标识和MAC地址、以及port4的MAC地址,并生成所述第二报文,所述第二报文的封装格式可以包括:
DMAC(port4mac)|SMAC(port3mac)|SIP地址(1.1.1.1)|DIP地址(2.2.2.2)|UDP头|VNI(1)|DMAC(MAC1)|SMAC(MAC2)|DATA
在上述装置实施例中,主要从所述第一交换机的角度介绍了本发明实施例,下面将从所述控制器的角度进行介绍。
请参阅图15,本发明实施例提供了控制器的另一种装置实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。
本实施例的控制器1500包括:发送单元1501。
发送单元1501,用于向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据。
其中,所述第一交换机与所述第一MAC地址对应,即表示所述第一MAC地址为所述第一交换机上的VM的MAC地址,例如在图3中,所述第一交换机与所述第一交换机上的VM1的MAC地址对应。
在本发明实施例中,如表5所示,所述第一MAC流表项包括第一匹配项和第一动作。所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面。其中,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
可见,发送单元1501发送的所述第一MAC流表项中,所述第一匹配项为所述第一报文的源MAC地址和目的MAC地址的信息,因此所述第一交换机能够根据所述第一匹配项匹配到所述第一报文,即所述第一交换机能够判断出接收到所述第一报文。而当所述第一交换机根据所述第一匹配项判断出接收到所述第一报文时,所述第一交换机触发所述第一动作,即执行将所述第一报文从所述第一交换机的转发面上传至控制面。其中,由于所述第一报文是从所述第二MAC地址发送至所述第一MAC地址的报文,因此所述第一交换机实际上是当接收到从所述第二MAC地址发送至所述第一MAC地址的所述第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面。其中需要补充说明的是,在本发明实施例中,由于所述第一MAC地址和所述第二MAC地址是预留的地址,因此所述第一报文与用户的业务报文相区分,也可以说所述第一报文是用于连通性检测的报文。
需要说明的是,本实施例的控制器1500具体可以为图14所示的实施例中的控制器,因此相关之处请参阅上述图14所示的实施例,这里不再赘述。
上面从模块化功能实体的角度对本发明实施例中的控制器和交换机的实施例进行描述。下面将从硬件处理的角度对本发明实施例中的控制器和交换机的实施例进行描述。
请参阅图16,本发明实施例提供了控制器的另一种装置实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。本实施例具体包括:处理器(processor)1601、通信接口(Communications Interface)1602、存储器(memory)1603和通信总线1604。
处理器1601,通信接口1602,存储器1603通过总线1604完成相互间的通信。
处理器1601,用于执行程序1605。
具体地,程序1605可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1601可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器1603,用于存放程序1605。存储器1603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序1605用于执行以下步骤:
向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址;
根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
程序1605中各步骤的具体实现参见图10-图11所示实施例中的相应单元的实现方式,在此不赘述。
请参阅图16,本发明实施例提供了交换机的另一种装置实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。本实施例的所述交换机为第一交换机,具体包括:处理器(processor)1601、通信接口(Communications Interface)1602、存储器(memory)1603和通信总线1604。
处理器1601,通信接口1602,存储器1603通过总线1604完成相互间的通信。
处理器1601,用于执行程序1605。
具体地,程序1605可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1601可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器1603,用于存放程序1605。存储器1603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序1605用于执行以下步骤:
接收第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
程序1605中各步骤的具体实现参见图12所示实施例中的相应单元的实现方式,在此不赘述。
请参阅图16,本发明实施例提供了交换机的另一种装置实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。本实施例的所述交换机为第二交换机,具体包括:处理器(processor)1601、通信接口(Communications Interface)1602、存储器(memory)1603和通信总线1604。
处理器1601,通信接口1602,存储器1603通过总线1604完成相互间的通信。
处理器1601,用于执行程序1605。
具体地,程序1605可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1601可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器1603,用于存放程序1605。存储器1603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序1605用于执行以下步骤:
接收第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二交换机与所述第二MAC地址对应,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二交换机根据所述第二匹配项匹配到第二报文后生成第一报文,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第二报文的源MAC地址为第一MAC地址且目的MAC地址为第二MAC地址;
接收所述第二报文后,根据所述第二MAC流表项生成所述第一报文;
发送所述第一报文。
程序1605中各步骤的具体实现参见图13所示实施例中的相应单元的实现方式,在此不赘述。
请参阅图16,本发明实施例提供了交换机的另一种装置实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。本实施例的所述交换机为第一交换机,具体包括:处理器(processor)1601、通信接口(Communications Interface)1602、存储器(memory)1603和通信总线1604。
处理器1601,通信接口1602,存储器1603通过总线1604完成相互间的通信。
处理器1601,用于执行程序1605。
具体地,程序1605可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1601可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器1603,用于存放程序1605。存储器1603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序1605用于执行以下步骤:
接收第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址;
根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
程序1605中各步骤的具体实现参见图14所示实施例中的相应单元的实现方式,在此不赘述。
请参阅图16,本发明实施例提供了控制器的另一种装置实施例,本实施例用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性。本实施例具体包括:处理器(processor)1601、通信接口(Communications Interface)1602、存储器(memory)1603和通信总线1604。
处理器1601,通信接口1602,存储器1603通过总线1604完成相互间的通信。
处理器1601,用于执行程序1605。
具体地,程序1605可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1601可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器1603,用于存放程序1605。存储器1603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序1605用于执行以下步骤:
向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址。
程序1605中各步骤的具体实现参见图15所示实施例中的相应单元的实现方式,在此不赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (24)

1.一种二层网络的连通性检测方法,其特征在于,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述预留的MAC地址为不用于向用户分配的MAC地址,所述方法包括:
控制器向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一报文为从所述第二MAC地址发送至所述第一MAC地址的报文;
所述控制器根据是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述控制器向所述第二MAC地址对应的交换机发送第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二MAC地址对应的交换机根据所述第二匹配项匹配到第二报文后,生成所述第一报文;
所述控制器向所述第一交换机发送所述第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二报文为从所述第一MAC地址发送至所述第二MAC地址的报文。
3.根据权利要求2所述的方法,其特征在于,所述第二动作具体用于指示所述第二MAC地址对应的交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
4.根据权利要求2所述的方法,其特征在于,所述第二动作具体用于指示所述第二MAC地址对应的交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
5.一种二层网络的连通性检测方法,其特征在于,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述预留的MAC地址为不用于向用户分配的MAC地址,所述方法包括:
第一交换机接收第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一报文为从所述第二MAC地址发送至所述第一MAC地址的报文。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述第一交换机接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二报文为从所述第一MAC地址发送至所述第二MAC地址的报文;
所述第一交换机发送所述第二报文。
7.一种二层网络的连通性检测方法,其特征在于,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述预留的MAC地址为不用于向用户分配的MAC地址,所述方法包括:
第二交换机接收第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二交换机与所述第二MAC地址对应,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二交换机根据所述第二匹配项匹配到第二报文后生成第一报文,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第二报文的源MAC地址为第一MAC地址且目的MAC地址为第二MAC地址,所述第二报文为从所述第一MAC地址发送至所述第二MAC地址的报文;
所述第二交换机接收所述第二报文后,根据所述第二MAC流表项生成所述第一报文;
所述第二交换机发送所述第一报文。
8.根据权利要求7所述的方法,其特征在于,所述第二动作具体用于指示所述第二交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
9.根据权利要求7所述的方法,其特征在于,所述第二动作具体用于指示所述第二交换机,在转发面根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
10.一种二层网络的连通性检测方法,其特征在于,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述预留的MAC地址为不用于向用户分配的MAC地址,所述方法包括:
第一交换机接收第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一报文为从所述第二MAC地址发送至所述第一MAC地址的报文;
所述第一交换机根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
11.根据权利要求10所述的方法,其特征在于,还包括:
所述第一交换机接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二报文为从所述第一MAC地址发送至所述第二MAC地址的报文;
所述第一交换机发送所述第二报文。
12.一种二层网络的连通性检测方法,其特征在于,用于检测属于同一广播域的第一MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述预留的MAC地址为不用于向用户分配的MAC地址,所述方法包括:
控制器向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一报文为从所述第二MAC地址发送至所述第一MAC地址的报文。
13.一种控制器,其特征在于,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述预留的MAC地址为不用于向用户分配的MAC地址,所述控制器包括:
发送单元,用于向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至所述控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一报文为从所述第二MAC地址发送至所述第一MAC地址的报文;
处理单元,用于根据所述控制器是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
14.根据权利要求13所述的控制器,其特征在于,
所述发送单元,还用于向所述第二MAC地址对应的交换机发送第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二MAC地址对应的交换机根据所述第二匹配项匹配到第二报文后,生成所述第一报文;
所述发送单元,还用于向所述第一交换机发送所述第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二报文为从所述第一MAC地址发送至所述第二MAC地址的报文。
15.根据权利要求14所述的控制器,其特征在于,所述第二动作具体用于指示所述第二MAC地址对应的交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
16.根据权利要求14所述的控制器,其特征在于,所述第二动作具体用于指示所述第二MAC地址对应的交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
17.一种交换机,其特征在于,所述交换机为第一交换机,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址;所述预留的MAC地址为不用于向用户分配的MAC地址,所述第一交换机包括:
接收单元,用于接收第一MAC流表项或者指示生成所述第一MAC流表项的数据,所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文上传至控制器,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一报文为从所述第二MAC地址发送至所述第一MAC地址的报文。
18.根据权利要求17所述的交换机,其特征在于,还包括:发送单元;
所述接收单元,还用于接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二报文为从所述第一MAC地址发送至所述第二MAC地址的报文;
所述发送单元,用于发送所述第二报文。
19.一种交换机,其特征在于,所述交换机为第二交换机,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址;所述预留的MAC地址为不用于向用户分配的MAC地址,所述第二交换机包括:接收单元和发送单元;
所述接收单元,用于接收第二MAC流表项或者指示生成所述第二MAC流表项的数据,所述第二交换机与所述第二MAC地址对应,所述第二MAC流表项包括第二匹配项和第二动作,所述第二匹配项包括源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二动作用于指示所述第二交换机根据所述第二匹配项匹配到第二报文后生成第一报文,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第二报文的源MAC地址为第一MAC地址且目的MAC地址为第二MAC地址;
所述接收单元,还用于接收所述第二报文后,根据所述第二MAC流表项生成所述第一报文;
所述发送单元,用于发送所述第一报文。
20.根据权利要求19所述的交换机,其特征在于,所述第二动作具体用于指示所述第二交换机,在转发面上根据所述第二匹配项匹配到所述第二报文后,在所述转发面上生成所述第一报文。
21.根据权利要求19所述的交换机,其特征在于,所述第二动作具体用于指示所述第二交换机,在转发面根据所述第二匹配项匹配到所述第二报文后,在所述第二报文中携带检测标识后从所述转发面上传至控制面,以便于所述控制面接收到携带所述检测标识的所述第二报文后,生成所述第一报文并将所述第一报文从所述控制面下发至所述转发面。
22.一种交换机,其特征在于,所述交换机为第一交换机,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址;所述预留的MAC地址为不用于向用户分配的MAC地址,所述第一交换机包括:
接收单元,用于接收第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一报文为从所述第二MAC地址发送至所述第一MAC地址的报文;
处理单元,用于根据所述第一交换机的控制面是否在预设时间内接收到所述第一报文,检测所述第一MAC地址和所述第二MAC地址的连通性。
23.根据权利要求22所述的交换机,其特征在于,所述第一交换机还包括发送单元;
所述接收单元,还用于接收第二报文或者指示生成所述第二报文的数据,所述第二报文的源MAC地址为所述第一MAC地址且目的MAC地址为所述第二MAC地址,所述第二报文为从所述第一MAC地址发送至所述第二MAC地址的报文;
所述发送单元,还用于发送所述第二报文。
24.一种控制器,其特征在于,用于检测属于同一广播域的第一介质访问控制MAC地址和第二MAC地址的连通性,所述第一MAC地址和所述第二MAC地址为预留的MAC地址,所述预留的MAC地址为不用于向用户分配的MAC地址,所述控制器包括:
发送单元,用于向第一交换机发送第一MAC流表项或者指示生成所述第一MAC流表项的数据;所述第一交换机与所述第一MAC地址对应,所述第一MAC流表项包括第一匹配项和第一动作,所述第一匹配项包括源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一动作用于指示所述第一交换机根据所述第一匹配项匹配到第一报文后,将所述第一报文从所述第一交换机的转发面上传至控制面,所述第一报文的源MAC地址为所述第二MAC地址且目的MAC地址为所述第一MAC地址,所述第一报文为从所述第二MAC地址发送至所述第一MAC地址的报文。
CN201510083217.8A 2015-02-15 2015-02-15 一种二层网络的连通性检测方法及相关设备 Active CN104660469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510083217.8A CN104660469B (zh) 2015-02-15 2015-02-15 一种二层网络的连通性检测方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510083217.8A CN104660469B (zh) 2015-02-15 2015-02-15 一种二层网络的连通性检测方法及相关设备

Publications (2)

Publication Number Publication Date
CN104660469A CN104660469A (zh) 2015-05-27
CN104660469B true CN104660469B (zh) 2018-11-16

Family

ID=53251198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510083217.8A Active CN104660469B (zh) 2015-02-15 2015-02-15 一种二层网络的连通性检测方法及相关设备

Country Status (1)

Country Link
CN (1) CN104660469B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105282058A (zh) * 2015-09-14 2016-01-27 中国联合网络通信集团有限公司 路径配置方法及装置
CN106936655A (zh) * 2015-12-30 2017-07-07 阿里巴巴集团控股有限公司 链路检测方法、装置及网络设备、控制器
US9900229B2 (en) * 2016-01-29 2018-02-20 Microsoft Technology Licensing, Llc Network-connectivity detection
CN106911532B (zh) * 2017-02-07 2020-04-10 佛山易识科技有限公司 基于虚拟可扩展局域网的多虚拟通道智能选路方法
CN107959939B (zh) * 2017-12-29 2022-01-11 北京奇虎科技有限公司 一种无线访问接入点ap的连接性识别方法及装置
CN108616418A (zh) * 2018-03-30 2018-10-02 新华三技术有限公司 检测故障的方法及装置
CN108989174A (zh) * 2018-07-09 2018-12-11 郑州云海信息技术有限公司 一种基于Open Stack网络系统VPN的检测方法
CN109450811B (zh) * 2018-11-30 2022-08-12 新华三云计算技术有限公司 流量控制方法、装置及服务器
CN112653610B (zh) * 2020-12-16 2022-02-18 网宿科技股份有限公司 多层虚拟交换机升级方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7570625B1 (en) * 2006-01-10 2009-08-04 Tw Acquisition, Inc. Detection of wireless devices
CN101662383A (zh) * 2009-09-17 2010-03-03 杭州华三通信技术有限公司 一种配置维护端点的方法及设备
CN102215130A (zh) * 2011-06-16 2011-10-12 杭州华三通信技术有限公司 一种cfd协议配置方法及其装置
CN103200042A (zh) * 2013-03-12 2013-07-10 杭州华三通信技术有限公司 一种trill网络中链路检测方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7570625B1 (en) * 2006-01-10 2009-08-04 Tw Acquisition, Inc. Detection of wireless devices
CN101662383A (zh) * 2009-09-17 2010-03-03 杭州华三通信技术有限公司 一种配置维护端点的方法及设备
CN102215130A (zh) * 2011-06-16 2011-10-12 杭州华三通信技术有限公司 一种cfd协议配置方法及其装置
CN103200042A (zh) * 2013-03-12 2013-07-10 杭州华三通信技术有限公司 一种trill网络中链路检测方法和设备

Also Published As

Publication number Publication date
CN104660469A (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
CN104660469B (zh) 一种二层网络的连通性检测方法及相关设备
CN104285416B (zh) 在存储区域网络中端接覆盖隧道的虚拟路由器
CN103200069B (zh) 一种报文处理的方法和设备
CN104521196B (zh) 针对虚拟网络分组流的物理路径确定
EP2600573B1 (en) Method for transmitting addresses correspondence relationship in second-layer protocol using link status routing
US11115328B2 (en) Efficient troubleshooting in openflow switches
CN105765946B (zh) 支持数据网络中的服务链接的方法和系统
CN106712988B (zh) 一种虚拟网络管理方法及装置
WO2016055027A1 (en) Table entry in software defined network
WO2017013587A1 (en) A method and an apparatus for network state re-construction in software defined networking
CN103081418A (zh) 计算机系统和计算机系统中的通信方法
CN105490884B (zh) 一种vxlan隧道检测方法及装置
CN104852840B (zh) 一种控制虚拟机之间互访的方法及装置
CN106878048A (zh) 故障处理方法及装置
CN107612808A (zh) 隧道建立方法和装置
CN104468368B (zh) 配置bgp邻居的方法及装置
CN106612224A (zh) 应用于vxlan的报文转发方法和装置
CN108667945A (zh) 一种报文传输方法及装置
US20180359171A1 (en) Automatic network topology detection for merging two isolated networks
CN106209689B (zh) 从vxlan至vlan的组播数据报文转发方法和设备
CN110034993A (zh) 传输数据的方法、设备和网络系统
CN103139075B (zh) 一种报文传输方法和设备
CN109691026A (zh) 用于更新多个多协议标签切换(mpls)双向转发检测(bfd)会话的方法和装置
CN105827495A (zh) Vxlan网关的报文转发方法和设备
CN106105114B (zh) 多归属is-is前缀的更好替换路径

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant