首页> 中国专利> 一种软件定义网络中虚拟机IP地址分配方法及装置

一种软件定义网络中虚拟机IP地址分配方法及装置

摘要

本发明公开了一种软件定义网络中虚拟机IP地址分配方法及装置,在控制器上配置有虚拟机VM的虚拟端口与虚拟机MAC地址和IP地址的对应关系,SDN交换设备启动后,接收控制器下发的上送VM发送的动态主机配置协议DHCP报文到所述控制器的流表;当SDN交换设备接收到VM发送的DHCP报文时,匹配所述流表后将VM发送的DHCP报文上送所述控制器;当SDN交换设备接收到所述控制器向所述SDN交换设备下发的DHCP报文时,将控制器下发的DHCP报文转发给所述VM;所述控制器下发的DHCP报文中包含所述控制器根据配置的虚拟端口与虚拟机MAC地址和IP地址的对应关系为所述虚拟机分配的IP地址。

著录项

  • 公开/公告号CN104283983A

    专利类型发明专利

  • 公开/公告日2015-01-14

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN201410582508.7

  • 发明设计人 林涛;温涛;任维春;程行峰;

    申请日2014-10-27

  • 分类号H04L29/12(20060101);

  • 代理机构11415 北京博思佳知识产权代理有限公司;

  • 代理人林祥

  • 地址 310052 浙江省杭州市滨江区长河路466号

  • 入库时间 2023-12-17 03:18:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-09

    授权

    授权

  • 2017-04-26

    著录事项变更 IPC(主分类):H04L29/12 变更前: 变更后: 申请日:20141027

    著录事项变更

  • 2015-03-11

    实质审查的生效 IPC(主分类):H04L29/12 申请日:20141027

    实质审查的生效

  • 2015-01-14

    公开

    公开

说明书

技术领域

本发明涉及软件定义网络领域,尤其涉及一种软件定义网络中虚拟机IP地 址分配方法及装置。

背景技术

软件定义网络(Software Defined Networks,SDN)是一种新型网络创新 架构,其核心技术是通过将网络设备控制面与数据面分离开来,从而实现了 网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。在传统 网络中,每台交换机或路由器都需要独立计算报文的转发路径,而在SDN网 络中,网络设备只负责单纯的数据转发,而控制部分则独立为一台集中的控 制器,负责对不同业务逻辑、转发方式进行控制。控制平面与转发平面之间 提供开放可编程的接口,目前主流的协议为Openflow,转发平面通常使用开 放虚拟交换机(Open VSwitch,OVS)。典型的SDN网络架构如图1所示。

Openflow技术的核心是将原本完全由交换机/路由器控制的数据包转发 过程转化为由OVS和控制器(Controller)分别完成的独立过程。每个OVS 都有一张流表,用以进行报文的查找和转发;OVS和控制器通过Openflow 协议的安全通道对流表进行查找和管理。OVS通过用户定义的或者预设的规 则来匹配和处理网络数据包;一条Openflow的规则由匹配域(Match Fields)、 优先级(Priority)、处理指令(Instructions)和统计数据(如Counters)等 字段组成。OVS对每个数据包进行查找,如果匹配则执行相应的处理指令, 否则通过Openflow通道上送到控制器,由控制器决定处理方式。

控制器和OVS之间通过Openflow协议创建一个Openflow安全通道, 该通道中主要的协议报文如下:

a、Packet-In报文,用于OVS接收到数据报文后在本地无法查找到对应 流表、或查找到流表但流表中指定处理动作为上送控制器时,向控制器发送 Packet-In报文请求控制器决策接收到的数据报文的处理规则;

b、Packet-Out报文,用于控制器通过OVS将数据报文发送出去;控制 器会将需要发送的数据报文封装在Packet-Out报文中,并在报文中指定出端 口,OVS接收到Packet-Out报文后会将数据报文通过指定的出端口发送出去;

c、Port-status消息报文,用于OVS上端口事件变化时,通过该消息报 文通知控制器。

SDN网络中的一个VM需要对应控制器上的一个虚拟端口(vport)。在 VM部署之前,需要在控制器上配置相应的vport(包含该vport的MAC、IP 信息),控制器必须知道所有vport对应的虚拟机的媒体介入控制(Media  Access Control,MAC)、IP信息才可以正常的控制转发,该信息也可用于 安全检测,比如检测是否伪造IP或MAC与外界通信等。当部署VM时,需 要为该VM配置与相应vport相同的MAC、IP地址,VM启动后OVS会通 过Openflow协议的Port-status消息报文将端口信息上送到控制器,控制器接 收后将该VM与配置的vport相关联并完成VM的上线,如果上送的MAC 或IP信息不匹配,则认为VM非法,不允许VM上线且不处理该VM的事 件、报文。

相关技术中,从虚拟化管理平台部署VM时,只能设置VM的物理地址(即 MAC地址),而无法设置VM的IP地址;那么当VM启动后,需要用户手动 为VM设置相应的IP地址,并保证该VM的IP地址和MAC地址与控制器上相 应的vport的IP地址和MAC地址匹配。也就是说,相关技术中从虚拟化管理平 台部署VM时,需要人工配置VM的IP地址,不仅无法实现VM的自动化部署, 而且人工配置给网络管理员带来很大的工作量,配置结果也容易出错。

发明内容

有鉴于此,本发明提供一种软件定义网络中虚拟机IP地址分配方法及装置, 用于解决SDN网络中VM的IP地址自动部署问题。

基于本发明实施例的一方面,本发明提供一种软件定义网络中虚拟机IP 地址分配方法,在控制器上配置有虚拟机VM的虚拟端口与虚拟机MAC地 址和IP地址的对应关系,该方法应用于SDN交换设备上,所述方法还包括:

所述SDN交换设备启动后,接收控制器下发的上送VM发送的动态主 机配置协议DHCP报文到所述控制器的流表;

当SDN交换设备接收到VM发送的DHCP报文时,匹配所述流表后将 VM发送的DHCP报文上送所述控制器;

当SDN交换设备接收到所述控制器向所述SDN交换设备下发的DHCP 报文时,将控制器下发的DHCP报文转发给所述VM;

所述控制器下发的DHCP报文中包含所述控制器根据配置的虚拟端口与 虚拟机MAC地址和IP地址的对应关系为所述虚拟机分配的IP地址。

进一步地,所述VM发送的DHCP报文包括:DHCP Discover发现报文 和DHCP Request请求报文;所述控制器下发的DHCP报文包括:与DHCP 发现报文对应的DHCP Offer提供报文和与DHCP请求报文对应的DHCP  ACK确认报文;

所述DHCP Offer报文用于为所述VM提供所述控制器根据配置的虚拟 端口与虚拟机MAC地址和IP地址的对应关系为所述虚拟机分配的IP地址; 所述DHCP ACK报文用于正式确认将DHCP Request报文中的IP地址分配 给所述VM。

与上述方法相对应地,本发明还提供一种软件定义网络中虚拟机IP地址 分配装置,该装置应用于SDN交换设备中,该装置包括:

流表接收单元,用于在所述SDN交换设备启动后,接收控制器下发的 上送VM发送的动态主机配置协议DHCP报文到所述控制器的流表;

报文收发单元,用于在接收到VM发送的DHCP报文时,匹配所述流表 后将VM发送的DHCP报文上送所述控制器;在接收到所述控制器向所述 SDN交换设备下发的DHCP报文时,将控制器下发的DHCP报文转发给所 述VM;

所述控制器下发的DHCP报文中包含所述控制器根据配置的虚拟端口与 虚拟机MAC地址和IP地址的对应关系为所述虚拟机分配的IP地址。

进一步地,所述报文收发单元接收的,所述VM发送的DHCP报文包括 DHCP Discover发现报文和DHCP Request请求报文,所述控制器下发的 DHCP报文包括:与DHCP发现报文对应的DHCP Offer提供报文和与DHCP 请求报文对应的DHCP ACK确认报文;所述DHCP Offer报文用于为所述 VM提供所述控制器根据配置的虚拟端口与虚拟机MAC地址和IP地址的对 应关系为所述虚拟机分配的IP地址;所述DHCP ACK报文用于正式确认将 DHCP Request报文中的IP地址分配给所述VM。

基于本发明实施例的一方面,本发明还提供一种软件定义网络中虚拟机 IP地址分配方法,在控制器上配置有虚拟机VM的虚拟端口与虚拟机MAC 地址和IP地址的对应关系,该方法应用于控制器上,所述方法还包括:

所述控制器在SDN交换设备启动时,向所述SDN交换设备下发要求所 述SDN交换设备将接收到的虚拟机VM发送的动态主机配置协议DHCP报 文上送到控制器的流表;

所述控制器接收到VM发送的DHCP报文后,基于所述虚拟机VM的虚 拟端口与虚拟机MAC地址和IP地址的对应关系,为所述虚拟机分配IP地 址,并响应所述VM发送的DHCP报文。

进一步地,所述VM发送的DHCP报文包括DHCP Discover发现报文和 DHCP Request请求报文;所述控制器接收到DHCP Discover报文后,向所述 VM发送DHCP Offer报文,为所述VM提供所述控制器根据配置的虚拟端口 与虚拟机MAC地址和IP地址的对应关系为所述虚拟机分配的IP地址;所 述控制器接收到DHCP Request报文后,向所述VM发送DHCP ACK报文, 以确认将DHCP Request报文中的IP地址分配给所述VM。

进一步地,所述方法还包括:

所述控制器上预先配置安全IP地址区间;

当所述控制器基于所述虚拟机VM的虚拟端口与虚拟机MAC地址和IP 地址的对应关系,未能为所述虚拟机成功分配IP地址时,所述控制器在所述 配置的安全IP地址区间内分配一个安全IP地址给所述VM。

与上述方法对应地,本发明还提供一种软件定义网络中虚拟机IP地址分 配装置,该装置应用于控制器中,该装置包括:

存储单元,用于存储虚拟机VM的虚拟端口与虚拟机MAC地址和IP地 址的对应关系;

流表发送单元,用于在SDN交换设备启动时,向所述SDN交换设备下 发要求所述SDN交换设备在接收到虚拟机VM发送的动态主机配置协议 DHCP报文后上送到控制器的流表;

IP地址分配单元,用于接收到VM发送的DHCP报文后,基于所述虚拟 机VM的虚拟端口与虚拟机MAC地址和IP地址的对应关系,为所述虚拟机 分配IP地址,并响应所述VM发送的DHCP报文。

进一步地,所述IP地址分配单元进一步用于,

所述IP地址分配单元接收到的所述VM发送的DHCP报文包括DHCP  Discover发现报文和DHCP Request请求报文;所述IP地址分配单元接收到 所述VM发送的DHCP Discover报文后,向所述VM发送DHCP Offer报文, 为所述VM提供所述控制器根据配置的虚拟端口与虚拟机MAC地址和IP地 址的对应关系为所述虚拟机分配的IP地址;

所述IP地址分配单元接收到DHCP Request报文后,向所述VM发送 DHCP ACK报文,以确认将DHCP Request报文中的IP地址分配给所述VM。

进一步地,所述存储单元进一步用于,存储安全IP地址区间;

所述IP地址分配单元还用于,在基于所述虚拟机VM的虚拟端口与虚拟 机MAC地址和IP地址的对应关系,未能为所述虚拟机成功分配IP地址时, 在所述配置的安全IP地址区间内分配一个安全IP地址给所述VM。

本发明提供的一种软件定义网络中虚拟机IP地址分配方法及装置,由控 制器、VM和SDN交换设备之间基于DHCP的协议报文交互实现了在VM部 署上线时为VM自动分配IP地址;在VM部署上线时无需网络管理员手工 配置VM的IP地址,实现了VM的IP地址的自动部署,减少了网络管理员 的工作量,而且VM的IP地址分配工作的出错率得到了控制。

附图说明

图1为相关技术中的SDN网络架构示意图;

图2为DHCP的工作基本流程示意图;

图3为DHCP的报文封装示意图;

图4为本发明实施例的软件定义网络中虚拟机IP地址分配方法流程图一;

图5为本发明实施例的软件定义网络中虚拟机IP地址分配方法流程图二;

图6为本发明实施例的软件定义网络中虚拟机IP地址分配方法流程图三;

图7为本发明实施例VM IP地址分配的一具体应用场景示意图;

图8为本发明实施例的一种SDN交换设备的组成结构示意图;

图9为本发明实施例的一种控制器的组成结构示意图;

图10为本发明实施例的一种VM的组成结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

为实现对VM的IP地址的自动部署,本发明实施例在VM上部署DHCP  Client,控制器上部署DHCP Server;在SDN配置过程中实现VM部署时, 所述控制器、VM之间通过SDN交换设备并基于动态主机配置协议(Dynamic  Host Configuration Protocol,DHCP)报文的交互来实现控制器自动为SDN 中部署的VM自动分配IP地址。

其中,DHCP是局域网的一个网络协议,DHCP基于Client/Server的工 作模式,其工作基本流程如图2所示,主要包括:

步骤201,主机客户端(Client)发送DHCP Discover(发现)广播报文 在网络上寻找DHCP服务器(Server);

步骤202,DHCP服务器向主机客户端发送DHCP offer(提供)广播报 文,其中包含IP地址、MAC地址、域名信息以及地址租期;

步骤203,主机客户端发送DHCP Request(请求)广播报文,正式向 DHCP服务器请求分配已提供的IP地址;

步骤204,DHCP服务器向主机客户端发送DHCP ACK(确认)单播报 文,确认主机的请求。

DHCP的报文封装如图3所示,DHCP是以用户数据报协议(User  Datagram Protocol,UDP)封装的上层协议,DHCP Server使用UDP端口号 67,DHCP Client使用UDP端口号68。如DHCP Client发送给DHCP Server 的报文使用协议号UDP、源端口号68、目的端口号67;DHCP Server应答报 文使用协议号UDP、源端口号67、目的端口号68。

DHCP报文格式如下表1所示:

表1

其中,op为报文类型,1表示请求报文,2表示回应报文;

htype为硬件地址类型,1表示10Mb/s的以太网的硬件地址;

hlen为硬件地址长度,以太网中该值为6;

hops为跳数,客户端设置为0,也能被一个代理服务器设置;

xid为事务ID,由客户端选择的一个随机数,被服务器和客户端用来在 它们之间交流请求和响应,客户端用它对请求和应答进行匹配;该ID由客 户端设置并由服务器返回,为32位整数;

secs表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数;

flags为标志字段,这个16比特的字段,其最左边的一个比特为0表示 单播,为1表示广播;

ciaddr为客户端的IP地址;

yiaddr为或客户端的IP地址;

siaddr为DHCP协议流程的下一个阶段要使用的服务器的IP地址;

giaddr为DHCP中继器的IP地址;

chaddr为客户端硬件地址,客户端必须设置其chaddr字段;

sname为可选的服务器主机名,该字段是空结尾的字符串;

file为启动文件名,是一个空结尾的字符串;

options为可选参数域。

DHCP报文类型通过options域中确定,options域中option id为53即表示 为报文类型域(Message type),Message type含义如下表2所示:

1 DHCP DISCOVER 2 DHCP OFFER 3 DHCP REQUEST 4 DHCP DECLINE

5 DHCP ACK 6 DHCP NAK 7 DHCP RELEASE 8 DHCP INFORM

表2

本发明实施例提供的基于DHCP的一种SDN中虚拟机IP地址分配方法, 在控制器上配置有VM的虚拟端口与虚拟机MAC地址和IP地址的对应关系, 该方法应用于SDN交换设备上,如图4所示,该方法主要包括:

步骤401,SDN交换设备启动后,接收控制器(Controller)下发的上送 VM发送的DHCP报文到所述控制器的流表。

步骤402,当SDN交换设备接收到VM发送的DHCP报文时,匹配所 述流表后将VM发送的DHCP报文上送所述控制器。

步骤403,当SDN交换设备接收到所述控制器向所述SDN交换设备下 发的DHCP报文时,将控制器下发的DHCP报文转发给所述VM;控制器下 发的DHCP报文中包含所述控制器根据配置的虚拟端口与虚拟机MAC地址 和IP地址的对应关系为所述虚拟机分配的IP地址。

本发明实施例中,VM发送的DHCP报文包括:DHCP Discover发现报 文和DHCP Request请求报文,控制器下发的DHCP报文包括:与DHCP发 现报文对应的DHCP Offer提供报文和与DHCP请求报文对应的DHCP ACK 确认报文。DHCP Offer报文用于为VM提供控制器根据配置的虚拟端口与虚 拟机MAC地址和IP地址的对应关系为所述虚拟机分配的IP地址;DHCP  ACK报文用于正式确认将DHCP Request报文中的IP地址(即DHCP Offer 提供给所述VM的IP地址)分配给所述VM。

本发明实施例提供的基于DHCP的一种SDN中虚拟机IP地址分配方法, 在控制器上配置有虚拟机VM的虚拟端口与虚拟机MAC地址和IP地址的对 应关系,该方法应用于控制器上,如图5所示,该方法主要包括:

步骤501,控制器在SDN交换设备启动时,向SDN交换设备下发要求 将所述SDN交换设备接收到的虚拟机VM发送的DHCP报文上送到控制器 的流表。

在SDN配置时,控制器(Controller)依据创建虚拟端口时配置的MAC 地址和IP地址创建VM的虚拟端口与虚拟机MAC地址和IP地址的对应关 系。

在SDN配置时,需要在Controller上为每个VM创建一个虚拟端口 (vport),并配置虚拟端口对应的虚拟机的MAC地址以及IP地址,用于 Controller计算转发路径。在Controller上根据创建虚拟端口时配置的MAC 地址与IP地址创建虚拟端口与虚拟机MAC地址和IP地址的对应关系。出 于容错和兼容性的考虑,本发明实施例还在控制器上配置安全IP地址区间, 用于为无法在上述对应关系中查找到对应IP的VM分配IP地址。

当SDN交换设备启动时,Controller首先向SDN交换设备下发一条协议 号UDP、目的端口号67(由DHCP client发送到server的报文)、action为 上送控制器的流表,该流表用于指令SDN交换设备将接收到的虚拟机VM发 送的DHCP报文后上送到控制器。

步骤502,控制器接收到VM发送的DHCP报文后,基于所述虚拟机VM 的虚拟端口与虚拟机MAC地址和IP地址的对应关系,为所述虚拟机分配IP 地址,并响应所述VM发送的DHCP报文。

步骤502的一种实施方式为:

控制器接收所述SDN交换设备上送的VM在启动时所发送的DHCP发 现报文,从所述DHCP发现报文中获取所述VM的MAC地址,并基于虚拟 机VM的虚拟端口与虚拟机MAC地址和IP地址的对应关系,获得与该VM 的MAC地址匹配的IP地址;

控制器依据所述匹配的IP地址生成DHCP提供报文,向所述SDN交换 设备发送所述DHCP提供报文,并指示所述DHCP提供报文在所述SDN交 换设备的出端口为所述DHCP发现报文在所述SDN交换设备的入端口;

控制器接收所述SDN交换设备上送的DHCP请求报文,所述DHCP请 求报文是所述VM在收到所述DHCP提供报文后向所述SDN交换设备发送 的;VM发送DHCP请求报文用于向控制器请求确认使用分配的IP地址;

控制器生成相应的DHCP确认报文,向所述SDN交换设备发送所述 DHCP确认报文,并指示所述DHCP确认报文在所述SDN交换设备的出端 口为所述DHCP请求报文在所述SDN交换设备的入端口;其中,所述DHCP 确认报文用于向所述VM进行分配的IP地址确认。

步骤502的实施方式也可具体描述为:

在VM中部署DHCP Client,当VM启动时主动发送DHCP Discover报 文,SDN交换设备接收到该DHCP Discover报文后会匹配到控制器在SDN 交换设备启动时下发的上述流表,将DHCP Discover报文通过Openflow协 议通道Packet In到Controller;

Controller接收到Packet In报文后,根据报文中的协议号UDP以及目的 端口号67确定该报文为DHCP报文,再根据DHCP报文中options域中id 为53的选项确定报文类型为Discover,Controller从DHCP报文中chaddr字 段获取VM的MAC,在MAC与IP映射表中查找到相匹配的IP地址;以匹 配的IP地址生成DHCP Offer报文,将报文Packet Out到SDN交换设备并指 定报文的Action为DHCP Discover报文在SDN交换设备的入端口;SDN交 换设备收到Packet Out消息后,根据报文的Action将DHCP Offer报文从 DHCP Discover报文在SDN交换设备的入端口发送出去(发送给源VM);

VM接收到DHCP Offer报文后广播DHCP Request报文,同样SDN交 换设备根据报文类型又匹配控制器在SDN交换设备启动时下发的上述流表, 将该DHCP Request报文Packet in到Controller,Controller接收到Packet In 报文后,根据报文中的协议号UDP以及目的端口号67确定该报文为DHCP 报文,再根据DHCP报文中options域中id为53的选项确定报文类型为 Request;Controller生成相应的DHCP ACK报文,将DHCP ACK报文Packet  Out到SDN交换设备并指定Action为DHCP Request报文在SDN交换设备 的入端口;

SDN交换设备收到Packet out报文后通过Action将DHCP ACK报文转 发给该VM,VM接收到DHCP ACK报文后设置自身的IP地址为Controller 分配的IP地址。

在一实施方案中,当所述控制器基于所述虚拟机VM的虚拟端口与虚拟 机MAC地址和IP地址的对应关系,未能为所述虚拟机成功分配IP地址时, 所述控制器在所述配置的安全IP地址区间内分配一个安全IP地址给所述VM, 并在所述控制器中生成相应的告警信息,用户可以通过该IP登录VM排查问 题原因。

本发明实施例提供的基于DHCP的一种SDN中虚拟机IP地址分配方法, 应用于VM,VM上部署有DHCP客户端,如图6所示,该方法主要包括:

步骤601,VM启动时通过连接的SDN交换设备发送DHCP发现报文, 所述DHCP发现报文中包括所述VM的MAC地址;

其中,所述VM的MAC地址是在创建VM的时候由虚拟化平台分配的 (可以由用户手动选择或者通过算法计算生成),SDN网络中的一个VM需 要对应控制器上的一个虚拟端口vport,所述VM的MAC地址与vport的对 应关系必须与控制器上创建vport时配置的MAC一致。如果MAC采用算法 随机生成,那么需要在创建VM后再根据生成的MAC在控制器上创建相应 的vport,然后再启动VM。

步骤602,VM通过所述SDN交换设备接收所述控制器为所述VM分配 的IP地址,并按所述分配的IP地址进行本地IP设置;其中,所述控制器为 所述VM分配的IP地址,是所述控制器在收到所述DHCP发现报文后,依 据从所述DHCP发现报文中获取的所述VM的MAC地址查找虚拟机VM的 虚拟端口与虚拟机MAC地址和IP地址的对应关系后获得的。

其中,所述VM通过SDN交换设备接收控制器为VM分配的IP地址, 并按所述分配的IP地址进行本地IP设置,包括:

所述VM在发送所述DHCP发现报文后,通过所述SDN交换设备接收 控制器发送的DHCP提供报文,所述DHCP提供报文中包括所述控制器为所 述VM分配的IP地址;

所述VM在获得所述分配的IP地址后,通过所述SDN交换设备向所述 控制器发送DHCP请求报文;

所述VM接收所述控制器通过所述SDN交换设备发送的DHCP确认报 文,并依据所述DHCP确认报文,按所述控制器分配的IP地址进行本地IP 设置。

所述控制器为所述VM分配的IP地址为:

所述控制器依据从所述DHCP发现报文中获取的MAC地址查找虚拟机 VM的虚拟端口与虚拟机MAC地址和IP地址的对应关系所获得的匹配的IP 地址;或者,

所述控制器无法通过查找所述对应关系获得匹配的IP地址时,在所述控 制器配置的安全IP地址区间内分配一个安全IP地址。

通过上述实施例,在VM部署上线时无需网络管理员手工配置VM的IP 地址,实现了VM的IP地址的自动部署,减少了网络管理员的工作量,而且 VM的IP地址分配工作的出错率得到了控制。

下面结合图7所示的基于Openflow协议实现的SDN组网实例,对本发 明实施例的VM的IP地址分配方法进一步详细阐述。本实例的IP地址分配 方法主要包括两个阶段:

a、初始配置阶段:

在Controller上创建vport 1:Mac 00-11-22-33-44-01,IP 192.168.0.1; vport2:Mac 00-11-22-33-44-02,IP 192.168.0.2,Controller根据vport信息创 建MAC和IP的映射表;

在Controller上配置安全地址区间192.168.10.1~192.168.10.254,用于给 无法在MAC和IP的映射表中找到映射关系的VM分配安全地址;

Controller给SDN交换设备下发一条协议类型为UDP、目的端口号67、 优先级10、Action为上送Controller的流表,用于SDN交换设备截获VM发 送的DHCP报文时上送Controller(DHCP报文采用UDP封装,Client使用 端口号68,Server使用端口号67,当SDN交换设备接收到UDP、目的端口 67的报文即为VM向Server发送的DHCP报文,Openflow流表优先级0~255, 默认为0,此处可以设置较默认优先级稍高级别10)。

b、VM部署阶段:

1.VM1启动后,主动向端口vport1发送DHCP Recover广播报文(一般 VM系统都自带有标准的DHCP Client,本发明实施例不涉及修改VM DHCP  Client,只是在Controller上实现DHCP最基础的功能以及SDN交换设备上 对DHCP报文做相应转发,所以此处发出的为标准的DHCP Discover报文: 协议号UDP、源端口号68、目的端口号67);

2.SDN交换设备接收到VM1的DHCP Recover广播报文后,进行流表 匹配操作,可以匹配预置的流表并执行Action动作,将DHCP Recover广播 报文通过Openflow协议通道Packet In到controller;

3.Controller接收Packet In消息后,根据协议号UDP以及目的端口号67 确定为DHCP报文,再根据DHCP报文中options选项域中id为53的字段 查询报文类型,确定报文类型为DHCP Discover,Controller从报文chaddr 字段获取VM1的MAC地址为00-11-22-33-44-01,通过VM1的MAC地址 在本地的MAC/IP映射表中查找该VM1的IP地址,查找到IP地址为 192.168.0.1;Controller以查找到的IP地址生成DHCP Offer报文,指定Action 为OutPut vport1,将该DHCP Offer报文通过Openflow协议通道Packet Out 到SDN交换设备;SDN交换设备收到Packet Out消息后将DHCP Offer报文 从vport1端口发送给VM1;

4.VM1接收到DHCP Offer报文后,再向vport1发送DHCP Request广 播报文;

5.SDN交换设备收到报文后进行流表匹配,上与步骤2类似,该标准的 DHCP Request同样匹配上预置的流表,SDN交换设备将将该报文通过 Openflow协议通道Packet In到Controller;

6.Controller接收到Packet In消息,与步骤3类似,检查报文为DHCP 报文,并通过options选项域确定报文为DHCP Request报文,生成DHCP ACK 报文,指定Action为OutPut vport1,Controller将报文通过Openflow协议通 道Packet Out到SDN交换设备;SDN交换设备接收到Packet Out消息后执 行Action动作将DHCP ACK报文从vPort1发送给VM1;VM1接收到该DHCP ACK报文后,设置自己的IP地址为Controller分配的IP,至此,VM1成功 获取到IP地址192.168.0.1。

另外还需要说明的是,在Controller上MAC和IP映射表中无法成功查 询到该VM,此时可能为用户还未在Controller上正确配置vport时VM就先 上线,或者用户非法上线;这个情况可以在初始的安全区IP地址区间中给 VM分配一个安全IP,并在Controller上记录相应告警信息,用户可以通过 该IP登录VM排查问题原因。

对应本发明实施例的软件定义网络中虚拟机IP地址分配方法,本发明实 施例还提供了一种应用于上的SDN交换设备软件定义网络中虚拟机IP地址 分配装置800,SDN交换设备的硬件环境通常至少包括有CPU、内存以及非易 失性存储器,当然还可能包括各种转发芯片、I/O接口等硬件。请参考图8,以 软件实现为例,本实施例通过该SDN交换设备的CPU将非易失性存储器中对 应的计算机程序指令读取到内存中运行以形成所述装置800,该装置800包括有: 流表接收单元801和报文收发单元802;在本发明的一种实施方式中:

流表接收单元801,用于在所述SDN交换设备启动后,接收控制器下发 的上送VM发送的DHCP报文到所述控制器的流表;

报文收发单元802,用于在接收到VM发送的DHCP报文时,匹配所述 流表后将VM发送的DHCP报文上送所述控制器;在接收到所述控制器向所 述SDN交换设备下发的DHCP报文时,将控制器下发的DHCP报文转发给 所述VM;

所述控制器下发的DHCP报文中包含所述控制器根据配置的虚拟端口与 虚拟机MAC地址和IP地址的对应关系为所述虚拟机分配的IP地址。

报文收发单元802接收的所述VM发送的DHCP报文包括:DHCP Discover发现报文和DHCP Request请求报文;报文收发单元802接收的所 述控制器下发的DHCP报文包括:与DHCP发现报文对应的DHCP Offer提 供报文和与DHCP请求报文对应的DHCP ACK确认报文;

DHCP Offer报文用于为所述VM提供所述控制器根据配置的虚拟端口 与虚拟机MAC地址和IP地址的对应关系为所述虚拟机分配的IP地址;

DHCP ACK报文用于正式确认将DHCP Request报文中的IP地址分配给 所述VM。

对应本发明实施例的软件定义网络中虚拟机IP地址分配方法,本发明实 施例还提供了一种应用于控制器的软件定义网络中虚拟机IP地址分配装置, 该控制器的硬件环境通常至少包括有CPU、内存以及非易失性存储器,当然还 可能包括各种转发芯片、I/O接口等硬件。请参考图9,以软件实现为例,本实 施例通过该控制器的CPU将非易失性存储器中对应的计算机程序指令读取到内 存中运行以形成所述的装置,使该控制器包括有:存储单元901、流表发送单 元902和IP地址分配单元903;在本发明的一种实施方式中:

存储单元901,用于存储虚拟机VM的虚拟端口与虚拟机MAC地址和 IP地址的对应关系;

流表发送单元902,用于在SDN交换设备启动时,向所述SDN交换设 备下发要求所述SDN交换设备在接收到虚拟机VM发送的DHCP报文后上 送到控制器的流表;

IP地址分配单元903,用于接收到VM发送的DHCP报文后,基于所述 虚拟机VM的虚拟端口与虚拟机MAC地址和IP地址的对应关系,为所述虚 拟机分配IP地址,并响应所述VM发送的DHCP报文。

所述IP地址分配单元903接收到的所述VM发送的DHCP报文包括 DHCP Discover发现报文和DHCP Request请求报文;

所述IP地址分配单元903接收到的通过SDN交换设备上送的所述VM 发送的DHCP Discover报文后,通过SDN交换设备向所述VM发送DHCP  Offer报文,为所述VM提供所述控制器根据配置的虚拟端口与虚拟机MAC 地址和IP地址的对应关系为所述虚拟机分配的IP地址;

所述IP地址分配单元903接收到的通过SDN交换设备上送的所述VM 发送的DHCP Request报文后,通过SDN交换设备向所述VM发送DHCP  ACK报文,以确认将DHCP Request报文中的IP地址分配给所述VM。

所述存储单元901进一步用于,存储安全IP地址区间;

IP地址分配单元903进一步用于,基于所述虚拟机VM的虚拟端口与虚 拟机MAC地址和IP地址的对应关系,未能为所述虚拟机成功分配IP地址 时,在所述配置的安全IP地址区间内分配一个安全IP地址给所述VM,并 在所述控制器中生成相应的告警信息。

对应本发明实施例的软件定义网络中虚拟机IP地址分配方法,本发明实 施例还提供了一种VM,VM的硬件环境通常至少包括有CPU、内存以及非 易失性存储器,当然还可能包括各种转发芯片、I/O接口等硬件。请参考图 10,以软件实现为例,本实施例通过该VM的CPU将非易失性存储器中对 应的计算机程序指令读取到内存中运行,使该VM包括有:IP地址请求获得 单元1001和IP地址设置单元1002;在本发明的一种实施方式中:

IP地址请求获得单元1001,用于在所述VM启动时,所述IP地址请求 获得单元通过连接的SDN交换设备发送DHCP发现报文,所述DHCP发现 报文中包括所述VM的MAC地址;其中,所述VM的MAC地址是在SDN 配置时,由控制器为所述VM分配的;

IP地址设置单元1002,用于在所述IP地址请求获得单元1001获得所述 控制器为所述VM分配的IP地址时,按所述分配的IP地址进行所述VM的 本地IP设置;其中,所述控制器为所述VM分配的IP地址,是所述控制器 在收到所述DHCP发现报文后,依据从所述DHCP发现报文中获取的所述 VM的MAC地址查找虚拟端口与虚拟机MAC地址和IP地址的对应关系后 获得的。

IP地址请求获得单元1001进一步用于,在发送所述DHCP发现报文后, 通过所述SDN交换设备接收控制器发送的DHCP提供报文,所述DHCP提 供报文中包括所述控制器为所述VM分配的IP地址;在获得所述分配的IP 地址后,通过所述SDN交换设备向所述控制器发送DHCP请求报文;接收 所述控制器通过所述SDN交换设备发送的DHCP确认报文;

IP地址设置单元1002进一步用于,依据所述DHCP确认报文,按所述 控制器分配的IP地址进行本地IP设置。

控制器为所述VM分配的IP地址为:

所述控制器依据从所述DHCP发现报文中获取的MAC地址查找虚拟端 口与虚拟机MAC地址和IP地址的对应关系所获得的匹配的IP地址;或者,

所述控制器无法通过查找所述对应关系获得匹配的IP地址时,在所述控 制器配置的安全IP地址区间内分配一个安全IP地址。

综上所述,本发明实施例由控制器、VM和SDN交换设备之间基于DHCP 的协议报文交互实现了在VM部署上线时为VM自动分配IP地址;在VM 部署上线时无需网络管理员手工配置VM的IP地址,实现了VM的IP地址 的自动部署,减少了网络管理员的工作量,而且VM的IP地址分配工作的出 错率得到了控制。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或 计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软 件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含 有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和 光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序 产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图 和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或 方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入 式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计 算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图 一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理 设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储 器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程 或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的 处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图 一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发 明保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号