邻居发现方法和设备的制作方法

文档序号:7816367阅读:133来源:国知局
邻居发现方法和设备的制作方法
【专利摘要】本申请提供了邻居发现方法和设备。本发明将OpenFlow控制器收集网络拓扑的过程部分分担给OpenFlow设备,由OpenFlow设备主动上报网络拓扑,这可缩短OpenFlow控制器收集网络拓扑的时间,有效减少OpenFlow控制器和OpenFlow设备之间的报文交互。
【专利说明】邻居发现方法和设备

【技术领域】
[0001] 本申请涉及网络通信技术,特别涉及应用于邻居发现方法和设备。

【背景技术】
[0002] 软件定义网络(SDN :Software Defined Network)是一种新型网络架构,其核心思 想是分离网络设备的控制层面与转发层面,通过对网络流量进行集中和灵活控制,从而为 核心网络及应用的创新提供良好的平台。
[0003] OpenFlow是SDN架构中定义的一个控制器与转发层之间的通信接口标准。 OpenFlow允许控制器直接访问和操作网络设备的转发平面,这些网络设备可能是物理 上的,也可能是虚拟的。OpenFlow网络由OpenFlow设备(Switch)和OpenFlow控制器 (Controller)通过安全通道(OpenFlow channel)组成,如图1所示。
[0004] OpenFlow网络中,OpenFlow控制器是基于链路层发现协议(LLDP :Link Layer Discovery Protocol)收集网络拓扑的。以图2所示的OpenFlow网络为例,下面重点描述 OpenFlow控制器如何收集网络拓扑:
[0005] 如图2所示,针对OpenFlow设备A, OpenFlow控制器通过与OpenFlow设备A的安 全通道能够获知OpenFlow设备A所有的端口,则就构造数量与OpenFlow设备A端口数目相 等的LLDP报文,将该LLDP报文封装在Openflow消息中并指定该LLDP报文的动作(Action) 为Packet-〇ut (这里可将该Openflow消息简称为Packet-〇ut消息),之后发送Openflow 消息至OpenFlow设备A ;
[0006] OpenFlow设备A通过一端口收到Packet-Out消息后,解封装Packet-Out消息的 消息头,对Packet-Out消息携带的LLDP报文进行Packet-Out动作,将LLDP报文从其他端 口(这里以端口 1为例)发送出去,此时,在通过端口 1发送LLDP报文时可进一步将端口 1携带在LLDP报文中。
[0007] OpenFlow设备B,作为OpenFlow设备A的邻居,假如通过连接OpenFlow设备A 的端口(这里以端口 2为例)收到OpenFlow设备A通过端口 1发送的LLDP报文后,将该 端口 2携带在LLDP报文并对该LLDP报文进行OpenFlow封装,指定该LLDP报文的动作为 Packet-In,交给OpenFlow控制器。这里,当对该LLDP报文进行OpenFlow封装,且指定该 LLDP报文的动作为Packet-In时,可将该封装后的LLDP报文简称为Packet-In消息。
[0008] OpenFlow控制器收到OpenFlow设备B发送的Packet-In消息时,解析该 Packet-In消息中的内容,发现为LLDP报文,则根据LLDP报文携带的端口 1和端口 2建立 OpenFlow设备A上端口 1和OpenFlow设备B上端口 2之间的邻居关系。
[0009] 对于图2所示的其他OpenFlow设备,比如OpenFlow设备B、OpenFlow设备C,其 处理方式类似于针对OpenFlow设备A的处理方式。
[0010] 基于上面描述,则假如网络中有N条链路,则OpenFlow控制器就需要构造2N个 LLDP报文,并向网络中发送2N个LLDP报文的Packet-Out消息。通常,SDN网络,尤其是 虚拟交换机组网中经常采用全连接组网,此时假设网络中存在Μ个设备,则网络中就存在Μ 阶乘条链路,这会导致一次拓扑收集过程中,OpenFlow控制器需要发送并接收大量LLDP报 文,增加 OpenFlow控制器负荷。


【发明内容】

[0011] 本申请提供了邻居发现方法和设备,以减少OpenFlow控制器和OpenFlow设备之 间的报文交互。
[0012] 本申请提供的技术方案包括:
[0013] 一种邻居发现方法,该方法应用于开放流OpenFlow网络中的OpenFlow设备,包 括:
[0014] 周期性地发送链路层发现协议LLDP报文;
[0015] 接收LLDP报文,如果本地LLDP邻居数据库中还未记录本设备与发送该LLDP报文 的邻居OpenFlow设备之间的邻居信息,则在本地LLDP邻居数据库中新增本设备与发送该 LLDP报文的邻居OpenFlow设备之间的邻居信息;
[0016] 在与OpenFlow控制器建立连接后先遍历本地LLDP邻居数据库,如果本地LLDP邻 居数据库中已记录了邻居信息,则将本地LLDP邻居数据库记录的每一邻居信息主动发送 给OpenFlow控制器,以使OpenFlow控制器更新邻居数据库;
[0017] 在与OpenFlow控制器建立连接后如果发现本地LLDP邻居数据库中的邻居信息发 生变化,则将发生变化的邻居信息通知给OpenFlow控制器,以使OpenFlow控制器更新邻居 数据库。
[0018] 一种邻居发现方法,该方法应用于开放流OpenFlow网络中的OpenFlow控制器,包 括:
[0019] 与OpenFlow设备建立连接;
[0020] 接收OpenFlow设备在与本OpenFlow控制器建立连接之后发送的邻居信息,并记 录至本地邻居数据库;
[0021] 接收OpenFlow设备在与本OpenFlow控制器建立连接之后因本地LLDP邻居数据 库中邻居信息变化发送的通知,并基于该通知更新本地邻居数据库。
[0022] 一种邻居发现设备,该设备应用于开放流OpenFlow网络中的OpenFlow设备,包 括:
[0023] 报文发送单元,用于周期性地发送链路层发现协议LLDP报文;
[0024] 报文接收单元,用于接收LLDP报文,如果本地LLDP邻居数据库中还未记录本设备 与发送该LLDP报文的邻居OpenFlow设备之间的邻居信息,则在本地LLDP邻居数据库中新 增本设备与发送该LLDP报文的邻居OpenFlow设备之间的邻居信息;
[0025] 邻居信息上报单元,用于在与OpenFlow控制器建立连接后先遍历本地LLDP邻居 数据库,如果本地LLDP邻居数据库中已记录了邻居信息,则将本地LLDP邻居数据库记录的 每一邻居信息主动发送给OpenFlow控制器,以使OpenFlow控制器更新邻居数据库;以及, 在与OpenFlow控制器建立连接后如果发现本地LLDP邻居数据库中的邻居信息发生变化, 则将发生变化的邻居信息通知给OpenFlow控制器,以使OpenFlow控制器更新邻居数据库。
[0026] 一种邻居发现设备,该设备应用于开放流OpenFlow网络中的OpenFlow控制器,包 括:
[0027] 邻居信息接收单元,用于在与OpenFlow设备建立连接后接收OpenFlow设备发送 的邻居信息;以及接收OpenFlow设备在与本OpenFlow控制器建立连接之后因本地LLDP邻 居数据库中邻居信息变化发送的通知;
[0028] 记录单元,用于将所述邻居信息接收单元接收的邻居信息记录至本地邻居数据 库;
[0029] 更新单元,用于基于所述邻居信息接收单元接收的通知更新本地邻居数据库。
[0030] 由以上技术方案可以看出,本发明将OpenFlow控制器收集网络拓扑的过程部分 分担给OpenFlow设备,由OpenFlow设备主动上报网络拓扑,这可缩短OpenFlow控制器收 集网络拓扑的时间,有效减少OpenFlow控制器和OpenFlow设备之间的报文交互。

【专利附图】

【附图说明】
[0031 ] 图1为现有OpenFlow网络不意图;
[0032] 图2为现有OpenFlow网络拓扑收集示意图;
[0033] 图3为本发明提供的方法流程图;
[0034] 图4为本发明提供的实施例流程图;
[0035] 图5为本发明实施例提供的设备结构图;
[0036] 图6为本发明实施例提供的设备的硬件结构图;
[0037] 图7为本发明实施例提供的另一设备结构图;
[0038] 图8为本发明实施例提供的另一设备的硬件结构图。

【具体实施方式】
[0039] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对 本发明进行详细描述。
[0040] LLDP作为网络设备的基础功能,即便OpenFlow设备,LLDP也是其必备的功能。基 于此,本发明通过OpenFlow设备必备的功能即LLDP,使OpenFlow设备相互之间通过主动交 互LLDP报文建立LLDP邻居数据库并上报给OpenFlow控制器,以减少OpenFlow控制器和 OpenFlow设备之间的报文交互。
[0041] 下面通过图3对本发明提供的方法进行描述:
[0042] 参见图3,图3为本发明提供的方法流程图。如图3所示,该方法包括以下步骤:
[0043] 步骤301,OpenFlow设备周期性地在OpenFlow网络中发送LLDP报文。
[0044] 步骤302, OpenFlow设备接收LLDP报文,如果本地LLDP邻居数据库中还未记录本 设备与发送该LLDP报文的邻居OpenFlow设备之间的邻居信息,则在本地LLDP邻居数据库 中新增本设备与发送该LLDP报文的邻居OpenFlow设备之间的邻居信息。
[0045] 步骤303,OpenFlow设备在与OpenFlow控制器建立连接后先遍历本地LLDP邻居 数据库,如果本地LLDP邻居数据库中已记录了邻居信息,则将本地LLDP邻居数据库记录的 每一邻居信息主动发送给OpenFlow控制器,OpenFlow控制器将接收的邻居信息记录至本 地邻居数据库。
[0046] 步骤304,OpenFlow设备在与OpenFlow控制器建立连接后如果发现本地LLDP 邻居数据库中的邻居信息发生变化,则将该变化的邻居信息通知给OpenFlow控制器, OpenFlow控制器基于该通知更新本地邻居数据库。
[0047] 至此,完成图3所示的流程。
[0048] 从图3所示的流程可以看出,本发明相对于现有技术,将OpenFlow控制器收集网 络拓扑的过程部分分担给OpenFlow设备,由OpenFlow设备主动上报网络拓扑,这可缩短 OpenFlow控制器收集网络拓扑的时间,有效减少OpenFlow控制器和OpenFlow设备之间的 报文交互。
[0049] 下面通过一个具体实施例对图3所示的流程进行描述:
[0050] 参见图4,图4为本发明提供的实施例流程图。如图4所示,该流程可包括以下步 骤:
[0051] 步骤401,OpenFlow设备1周期性地发送LLDP报文。
[0052] 这里,OpenFlow设备1只是为便于描述对OpenFlow设备标注的编号,其是 OpenFlow设备的泛指,并非具体限定某一个设备。
[0053] 本发明中,OpenFlow设备1上配置了 LLDP,当OpenFlow设备1 一上线就会使能其 配置的LLDP。OpenFlow设备1使能LLDP后,OpenFlow设备1就开始周期性地发送LLDP报 文。
[0054] 这里,OpenFlow设备1发送LLDP报文是在其上线之后执行的,与其是否连接 OpenFlow控制器无关。
[0055] 本发明中,OpenFlow设备1发送的LLDP报文至少携带了:发送该LLDP报文的端 口信息、发送该LLDP报文的设备信息;这里设备信息可为设备的桥MAC地址等标识。
[0056] 优选地,作为本发明的一个实施例,OpenFlow设备1发送的LLDP报文可携带LLDP 的基本TLV。下述表1示出了 LLDP的基本TLV :
[0057]

【权利要求】
1. 一种邻居发现方法,其特征在于,该方法应用于开放流OpenFlow网络中的OpenFlow 设备,包括: 周期性地发送链路层发现协议LLDP报文; 接收LLDP报文,如果本地LLDP邻居数据库中还未记录本设备与发送该LLDP报文的邻 居OpenFlow设备之间的邻居信息,则在本地LLDP邻居数据库中新增本设备与发送该LLDP 报文的邻居OpenFlow设备之间的邻居信息; 在与OpenFlow控制器建立连接后先遍历本地LLDP邻居数据库,如果本地LLDP邻居 数据库中已记录了邻居信息,则将本地LLDP邻居数据库记录的每一邻居信息主动发送给 OpenFlow控制器,以使OpenFlow控制器更新邻居数据库; 在与OpenFlow控制器建立连接后如果发现本地LLDP邻居数据库中的邻居信息发生变 化,则将发生变化的邻居信息通知给OpenFlow控制器,以使OpenFlow控制器更新邻居数据 库。
2. 根据权利要求1所述的方法,其特征在于,在本地LLDP邻居数据库中新增本设备与 发送该LLDP报文的邻居OpenFlow设备之间的邻居信息后,该方法进一步包括: 每隔设定时间检测本设备是否收到所述邻居OpenFlow设备发送的LLDP报文; 如果是,依据当前收到的LLDP报文确定本设备与所述邻居OpenFlow设备之间的邻居 信息,比较该确定的邻居信息是否与已记录的本设备与该邻居OpenFlow设备之间的邻居 信息一致,如果不一致,则将已记录的本设备与该邻居OpenFlow设备之间的邻居信息更新 为该确定的邻居信息; 如果否,从本地LLDP邻居数据库中删除已记录的本设备与该邻居OpenFlow设备之间 的邻居信息。
3. 根据权利要求1或2所述的方法,其特征在于,周期性发送的LLDP报文至少携带了: 发送该LLDP报文的端口信息、发送该LLDP报文的设备信息; 本设备与发送该LLDP报文的邻居OpenFlow设备之间的邻居信息至少包括: 本设备的设备信息、本设备收到LLDP报文的端口信息、收到的LLDP报文携带的信息。
4. 根据权利要求2所述的方法,其特征在于,所述本地LLDP邻居数据库中的邻居信息 发生变化包括: 本地LLDP邻居数据库中新增邻居信息;和/或 本地LLDP邻居数据库中已记录的邻居信息被更新;和/或 本地LLDP邻居数据库中删除邻居信息。
5. -种邻居发现方法,其特征在于,该方法应用于开放流OpenFlow网络中的OpenFlow 控制器,包括: 与OpenFlow设备建立连接; 接收OpenFlow设备在与本OpenFlow控制器建立连接之后发送的邻居信息,并记录至 本地邻居数据库; 接收OpenFlow设备在与本OpenFlow控制器建立连接之后因本地LLDP邻居数据库中 邻居信息变化发送的通知,并基于该通知更新本地邻居数据库。
6. 根据权利要求5所述的方法,其特征在于,所述本地LLDP邻居数据库中邻居信息变 化包括: 本地LLDP邻居数据库中新增邻居信息;和/或 本地LLDP邻居数据库中已记录的邻居信息被更新;和/或 本地LLDP邻居数据库中删除邻居信息; 当所述本地LLDP邻居数据库中邻居信息变化包括新增邻居信息时,所述通知携带新 增的邻居信息,所述基于通知更新本地邻居数据库包括:在本地邻居数据库中记录所述通 知携带的邻居信息; 当所述本地LLDP邻居数据库中邻居信息变化包括删除邻居信息时,所述通知携带删 除的邻居信息对应的标识,所述基于通知更新本地邻居数据库包括:从本地邻居数据库中 删除所述通知携带的标识对应的邻居信息; 当所述本地LLDP邻居数据库中邻居信息变化包括已记录的邻居信息被更新时,所述 通知携带发生更新的邻居信息对应的标识,以及更新后的邻居信息,所述基于通知更新本 地邻居数据库包括:依据所述通知携带的标识在本地邻居数据库中找到对应的邻居信息, 用所述通知携带的更新后的邻居信息更新本地邻居数据库中该找到的邻居信息。
7. 根据权利要求5所述的方法,其特征在于,该方法进一步包括: 当检测到OpenFlow设备断开与本OpenFlow控制器的连接时,将该OpenFlow设备上报 的所有邻居信息从本地邻居信息数据库中删除。
8. -种邻居发现设备,其特征在于,该设备应用于开放流OpenFlow网络中的OpenFlow 设备,包括: 报文发送单元,用于周期性地发送链路层发现协议LLDP报文; 报文接收单元,用于接收LLDP报文,如果本地LLDP邻居数据库中还未记录本设备与发 送该LLDP报文的邻居OpenFlow设备之间的邻居信息,则在本地LLDP邻居数据库中新增本 设备与发送该LLDP报文的邻居OpenFlow设备之间的邻居信息; 邻居信息上报单元,用于在与OpenFlow控制器建立连接后先遍历本地LLDP邻居数据 库,如果本地LLDP邻居数据库中已记录了邻居信息,则将本地LLDP邻居数据库记录的每一 邻居信息主动发送给OpenFlow控制器,以使OpenFlow控制器更新邻居数据库;以及,在与 OpenFlow控制器建立连接后如果发现本地LLDP邻居数据库中的邻居信息发生变化,则将 发生变化的邻居信息通知给OpenFlow控制器,以使OpenFlow控制器更新邻居数据库。
9. 根据权利要求8所述的设备,其特征在于,所述邻居信息上报单元在本地LLDP邻居 数据库中新增本设备与发送该LLDP报文的邻居OpenFlow设备之间的邻居信息后,进一步 每隔设定时间检测本设备是否收到所述邻居OpenFlow设备发送的LLDP报文; 如果是,依据当前收到的LLDP报文确定本设备与所述邻居OpenFlow设备之间的邻居 信息,比较该确定的邻居信息是否与已记录的本设备与该邻居OpenFlow设备之间的邻居 信息一致,如果不一致,则将已记录的本设备与该邻居OpenFlow设备之间的邻居信息更新 为该确定的邻居信息; 如果否,从本地LLDP邻居数据库中删除已记录的本设备与该邻居OpenFlow设备之间 的邻居信息。
10. -种邻居发现设备,其特征在于,该设备应用于开放流OpenFlow网络中的 OpenFlow控制器,包括: 邻居信息接收单元,用于在与OpenFlow设备建立连接后接收OpenFlow设备发送的邻 居信息;以及接收OpenFlow设备在与本OpenFlow控制器建立连接之后因本地LLDP邻居数 据库中邻居信息变化发送的通知; 记录单元,用于将所述邻居信息接收单元接收的邻居信息记录至本地邻居数据库; 更新单元,用于基于所述邻居信息接收单元接收的通知更新本地邻居数据库。
【文档编号】H04L12/801GK104283802SQ201410527322
【公开日】2015年1月14日 申请日期:2014年10月9日 优先权日:2014年10月9日
【发明者】徐鹏飞 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1