一种通信方法、交换机、控制器及通信系统的制作方法

文档序号:7810673阅读:325来源:国知局
一种通信方法、交换机、控制器及通信系统的制作方法
【专利摘要】本发明涉及一种通信方法,该方法通过将同一网段和不同网段的主机通过OpenFlow交换机和SDN控制器互连后,OpenFlow交换机接收第一主机发送的目的IP地址为虚拟网关的IP地址、目的MAC地址为虚拟网关的MAC地址的第一PING请求报文之后,将所述PING请求报文发送给所述SDN控制器,之后将所述SDN控制器下发的PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。这样,能够在一次配置之后,实现将OpenFlow交换机和SDN控制器作为几个网段的交换机的共同的默认网关,实现网关之间的互连通信,并且进一步可以实现不同网段的主机之间的通信。
【专利说明】 一种通信方法、交换机、控制器及通信系统

【技术领域】
[0001]本发明涉及通信领域,具体涉及一种通信方法及实现该种通信方法的交换机、控制器和通信系统。

【背景技术】
[0002]网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连的网络互连设备。网关,既可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备,用于在使用相同或不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间。默认网关是指局域网中的一个互联网协议(InternetProtocol, IP)子网的默认出口网关。该子网中的任意一台主机如果要与其他IP网段的主机通信,则将数据包发给默认网关,由这个网关来处理数据包和转发数据包。现有技术中,通常需要配置默认网关的IP后才能正常的与其他IP网段的主机通信和访问互联网。之后,移动终端都是通过动态主机分配协议(Dynamic Host Configurat1n Protocol,DHCP)协议自动获取和配置其自身的IP和网关地址。
[0003]传统3层IP网络的默认网关可以配置在路由器或一台物理主机上,即由路由器或主机充当了默认网关的角色。一个IP网段的主机通过一到多台的传统2层交换机连接到该路由器或物理主机,并在该路由器或主机上配置一到多条静态路由(小型网络)或动态路由协议(大型复杂网络),以实现该IP子网与其他网段/外网的通信。不同子网之间的主机经由各自的默认网关并依照这些网关/路由器上配置的静态路由或动态路由协议通信。
[0004]现有技术的方案要求网络管理员手动的配置所有的静态路由到I到2台的路由器上,主机或接入层交换机的变动都会造成静态路由的重新配置。例如,如果一台主机的接入点变动,即其接入点从一台以太网交换机的非VLAN端口变动到另外一个虚拟局域网(Virtual Local Area Network,VLAN)端口(或该台以太网交换机的VLAN端口发生变动),则该主机的IP和默认网关都要做相应的变更(修改为新端口所在VLAN所属的网段和网关)。如果一条静态路由的下一跳发生了改变,则需要登录路由器并在命令行下修改原先的静态路由规则。此外,园区网中每增加一个IP子网,都要在路由器上预先新增相应的静态路由和物理端口,并增加VLAN或扩充以太网交换机设备,使得网络部署的复杂度和成本增力口。现有技术的方案,存在的问题是,网络拓扑结构变化时,使得网络的部署和迁移很不灵活、配置繁琐、可维护难度高、可扩展性低的问题。


【发明内容】

[0005]本发明实施例提供了一种通信方法,以通过SDN控制器和OpenFlow交换机组合后作为虚拟的默认网关实现不同网段之间主机的互连通信,并且在网络拓扑发生改变时,不需要手动进行逐个配置修改。
[0006]为实现上述目的,本发明实施例第一方面提供了一种通信方法,一种通信方法,所述方法包括:
[0007]OpenFlow交换机接收第一主机发送的第一因特网包探索器PING请求报文,所述第一 PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述OpenFlow交换机和与该OpenFlow交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段;
[0008]将所述PING请求报文发送给所述SDN控制器;
[0009]接收所述SDN控制器下发的PING回复报文;
[0010]将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
[0011]第二方面,本发明实施例提供了一种通信方法,该包括:
[0012]接收OpenFlow交换机发送的第一 PING请求报文,所述第一 PING请求报文由第一主机生成后发送给所述OpenFlow交换机,所述第一 PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述OpenFlow交换机和与该OpenFlow交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段;
[0013]对所述第一 PING请求报文进行流表匹配通过后,生成PING回复报文;
[0014]将所述PING回复报文下发给所述OpenFlow交换机,以便于所述OpenFlow交换机将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
[0015]第三方面,本发明实施例提供了一种交换机,所述交换机包括:
[0016]第一接收模块,用于接收第一主机发送的第一因特网包探索器PING请求报文,所述第一PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述交换机和与该交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段;
[0017]第一发送模块,用于将所述PING请求报文发送给所述SDN控制器;
[0018]第二接收模块,用于接收所述SDN控制器下发的PING回复报文;
[0019]第二发送模块,用于将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
[0020]第四方面,本发明实施例提供了一种控制器,所述控制器包括:
[0021]第一接收模块,用于接收OpenFlow交换机发送的第一 PING请求报文,所述第一PING请求报文由第一主机生成后发送给所述OpenFlow交换机,所述第一 PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述OpenFlow交换机和与该OpenFlow交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段;
[0022]报文生成模块,用于对所述第一 PING请求报文进行流表匹配通过后,生成PING回复报文;
[0023]第一发送模块,用于将所述PING回复报文下发给所述OpenFlow交换机,以便于所述OpenFlow交换机将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
[0024]第五方面,本发明实施例提供了一种通信系统,该系统包括本发明实施例第三方面提供的交换机和本发明实施例第四方面提供的控制器。
[0025]本发明实施例通过将同一网段和不同网段的主机通过OpenFlow交换机和SDN控制器互连后,OpenFlow交换机接收第一主机发送的目的IP地址为虚拟网关的IP地址、目的MAC地址为虚拟网关的MAC地址的第一 PING请求报文之后,将所述PING请求报文发送给所述SDN控制器,之后将所述SDN控制器下发的PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。这样,能够在一次配置之后,实现将OpenFlow交换机和SDN控制器作为几个网段的交换机的共同的默认网关,实现网关之间的互连通信。

【专利附图】

【附图说明】
[0026]图1为本发明实施例提供的一种通信系统的架构图;
[0027]图2为本发明实施例提供的一种通信方法的流程图;
[0028]图3是本发明实施例中控制器对ICMP报文进行处理的流程图;
[0029]图4是本发明实施例中控制器对ARP报文进行处理的流程图;
[0030]图5是本发明实施例中提供的一种通信方法另一种应用场景的架构图;
[0031]图6是本发明实施例中控制器在跨网段通信时,对PACKET_IN类型报文进行处理的流程图;
[0032]图7是本发明实施例提供的交换机的结构图;
[0033]图8是本发明实施例提供的控制器的结构图。

【具体实施方式】
[0034]本发明实施例提供了一种通信方法、交换机控制器和通信系统,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0035]图1是本发明实施例提供的通信方法的一种典型的应用场景的架构图,但是应当理解的是,本发明实施例并不局限于图1所示的架构。本发明实施例中的通信系统包括软件定义网络(software defined network, SDN)控制器、
[0036]OpenFlow交换机以及部署在应用环境中的主机。其中,一台SDN控制器可以通过管理通路连接一个或者一个以上的OpenFlow交换机,一台OpenFlow交换机进一步通过不同的端口分别连接若干台以太网交换机,每台交换机再连接若干个主机,构成数据通路。
[0037]进一步地,SDN控制器承担OpenFlow控制器的角色,并支持OpenFlow协议,其可以具有一个RJ-45网络接口,用于连接管理通路中的OpenFlow交换机,用户可以预先通过管理软件配置SDN控制器所管理的一个或多个网段,以及作为虚拟网关时的网关介质接入控制(Media Access Contro, MAC)地址等。OpenFlow交换机可以具有一个RJ-45管理端口,用于连接到管理网络,并最终与SDN控制器相连。上述接口型号,仅仅作为举例,不应理解为对本发明的限制。
[0038]所述SDN控制器运行有地址解析协议(Address Resolut1n Protocol, ARP)管理器用于处理OpenFlow交换机上送上来的ARP请求(Request)和回复(Reply)报文、并负责生成和发送ARP Request和ARP R印Iy报文。而所述SDN控制器上运行的IP层通信管理器,负责创建、维护和删除IP网段和网关、回复针对网关的因特网包探测器(Packet InternetGrope,PING)(也就是ICMP Echo Request)报文、负责不同网段的2台主机之间的通信。所有主机发出的ARP类型的报文都会由OpenFlow交换机产生PACKET_IN事件上送到SDN控制器,SDN控制器再以PACKET_OUT报文通过管理网直接发送到数据网中相关的主机。
[0039]在预配置动作完成后,SDN控制器可以通过管理通路向OpenFlow交换机下发OpenFlow流规则,该流规则也可以被称之为策略流表,满足该策略流表匹配项的报文都会被上送到SDN控制器,由SDN控制器进行相应的处理。该策略流表可以是FL0W_M0D报文,策略流表的输出动作为上送控制器,任何目的IP匹配到这些策略流表中匹配项的的流都会上送SDN控制器。
[0040]也就是说,SDN控制器向OpenFlow交换机下发具有匹配项的策略流表,满足匹配项的报文将被所述OpenFlow交换机上送到SDN控制器。
[0041]例如,运行在SDN控制器上的ARP管理器自动下发针对ARP类型报文的流表规则,针对网关和跨网段通信的ARP报文,其动作为上传控制器。
[0042]再例如,运行在SDN控制器上的IP通信管理器下发另一流表规则,针对目的IP为该IP子网和/或目的MAC地址为网关MAC地址的数据报文,匹配的相应动作也为上送至控制器。
[0043]基于以上的应用架构,本发明实施例提供了一种通信方法,该方法可以应用于图1所不的通信系统,但不局限于图1所不的应用系统,以图1中的任意一台OpenFlow交换机作为执行主体,如图2所示,本发明实施例可以包括:
[0044]201,OpenFlow交换机接收第一主机发送的第一因特网包探索器PING请求报文;
[0045]在该步骤中,所述第一 PING请求报文由第一主机生成,其目的IP地址为虚拟网关的IP地址,目的MAC地址为所述虚拟网关的MAC地址。通常在第一 PING请求报文先经过普通的以太网交换机,以太网交换机再通过相应的端口将第一 PING请求报文发送到OpenFlow交换机上相应的端口。
[0046]所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述OpenFlow交换机和与该OpenFlow交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段。
[0047]在正常的使用状态中,主机的ARP缓存中已经缓存了默认网关的MAC地址,因此能够顺利构建PING报文。
[0048]OpenFlow交换机接收到第一 PING请求报文,之后,进行流表匹配之后,符合相应的匹配项,则执行步骤202,如果不符合,则将报文丢弃。
[0049]202,将所述第一 PING请求报文发送给所述SDN控制器;
[0050]在该步骤中,OpenFlow交换机可以将第一 PING请求报文构建为PACKET_IN类型报文,上传给SDN控制器。
[0051]如图3所示,SDN控制器接收到PACKET_IN类型报文之后,判断PACKET_IN类型报文中的负载是否为ICMP Echo Request报文,如果是,则进一步查看该ICMP Echo Request报文的目的IP地址是否属于预配置好的该SDN控制器上维护的一个网关的IP地址,反之,则不进行处理。
[0052]如果ICMP Echo Request报文的目的IP地址属于预配置好的该SDN控制器上维护的一个网关的IP地址,则进一步构造ICMP Echo R印Iy报文,该ICMP Echo R印Iy报文作为PING回复报文,其中携带的源MAC地址可以为SDN控制器自身的MAC地址,源IP地址为网关IP地址,目的MAC地址为ICMP Echo Request报文的源MAC地址,目的IP地址为ICMPEcho Request报文的源IP地址。
[0053]SDN控制器构建ICMP Echo R印Iy报文完成后,通过PACKET_0UT方式将ICMP EchoReply报文发送到ICMP Echo Request报文的来源端口,进而下发给OpenFlow交换机。
[0054]203,接收所述SDN控制器下发的PING回复报文;
[0055]204,将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
[0056]当第一主机接收到来自于SDN控制器的PING回复报文之后,即可证明,主机与默认网关之间已经完成一轮Ping通信,两者建立了通信链路。
[0057]在另一种实施例中,例如,一台主机首次连接到一个网段中的一台交换机之后,该主机需要与默认网关之间建立通信链路,此时,该主机的ARP缓存中并不具有默认网关的MAC地址,因此无法构建PING请求报文。
[0058]在该种情况下,主机先生成ARP请求报文,请求获取默认网关的MAC地址,发送给OpenFlow交换机,OpenFlow交换机接收第一主机发送的地址解析协议ARP请求报文;
[0059]更具体的,第一主机生成一个ARP请求报文时,该ARP请求报文的目的MAC地址可以为FF-FF-FF-FF-FF-FF的以太网广播帧,目的IP字段为网关的IP地址,与第一主机相连的接入层的以太网交换机收到该以太网广播帧之后,将其发送给除来源端口之外的全部端口,其中包括与OpenFlow交换机相连的端口,以使得OpenFlow交换机收到所述ARP请求报文。
[0060]OpenFlow交换机接收到ARP请求报文之后,根据预配置阶段SDN控制器下发的流表规则,进行匹配,匹配完成后,可以按照PACKET_IN事件的方式将所述ARP请求报文发送给所述SDN控制器;
[0061]参考图4,SDN控制器收到PACKET_IN事件之后,判断接收到的报文是否为ARP报文,在接收到的报文是ARP报文的情况下,进一步判断ARP报文是ARP请求(ARP request)包还是ARP回复报文(ARP reply)。
[0062]如果是ARP回复报文,则SDN控制器从中提取出MAC地址和IP地址,将MAC/IP映射关系更新到ARP管理器的ARP缓存表。进一步,更新MAC和PACKET_IN来源端口的映射关系到前向数据库(Forwarding DataBase,FDB)表,也就是MAC地址转发表中,最后通知IP通信模块遍历其维护的一个IP报文队列,通过PACKET_0UT事件转发出目的IP匹配该MAC/IP的报文,并相应的安装流表。
[0063]如果是ARP请求报文,则SDN控制器进一步查看ARP请求报文中的目的IP地址是否属于SDN控制器的维护范围,如果是,则构造ARP回复报文,构造的ARP回复报文中携带默认网关的MAC地址,例如,优选的,可以选择SDN控制器自身的MAC地址作为默认网关的MAC地址,也可以选择构建一个唯一的地址作为默认网关的MAC地址,之后通过PACKET_OUT事件的方式下发给报文的来源端口,进一步下发给OpenFlow交换机。
[0064]OpenFlow交换机接收所述SDN控制器下发的ARP回应报文,该ARP回应报文中携带所述虚拟网关的MAC地址,进一步将所述ARP回应报文下发给所述第一主机,从而使得第一主机获取到默认网关的MAC地址,可以构建PING请求报文。执行图2所示的构建与默认网关的通信链路的动作。
[0065]进一步地,在另一种实施例中,可参考图5所示的架构,当位于第一网段的第一主机A需要与位于第二网段的第二主机B进行通信时,在第一主机A与默认网关建立了通信链路之后,第一主机A构造第二 PING请求报文,该报文的目的地址为第二主机B的IP地址,目的MAC地址为所述虚拟网关的MAC地址,OpenFlow交换机接收所述第一主机发送的第二PING请求报文。
[0066]OpenFlow交换机按照预配置的流表,将所述第二 PING请求报文上传至所述SDN控制器;所述SDN控制器对所述第二 PING请求报文进行流表匹配,并且所述SDN控制器对所述第二 PING请求报文进行流表匹配成功后,对所述第二 PING请求报文的目的MAC地址修改为所述第二主机的MAC地址,封装为第三PING报文之后,将所述第三PING报文下发给所述第二主机,建立所述第一主机到所述第二主机之间的通信链路。
[0067]可参考图6,作为一种可选的实施例,SDN控制器接收到一个以PACKET_IN事件方式接收到的报文后,判断该报文的负载是否为第二 PING请求报文,例如IPV4报文,如果不是,则不作处理。
[0068]如果是,则查看IP报文中的目的IP地址是否属于该SDN控制器维护的一个IP子网,如果不是,则不作处理,反之,则查询ARP管理器,查询目的IP地址对应的主机的MAC地址,也就是第二主机B的地址。
[0069]如果能够查询到所需的第二主机的MAC地址,则修改IP报文的目的MAC地址为查询到的第二主机的MAC地址,之后通过PACKET_out事件将修改后的IP报文下发到目的IP地址所在的王机端口。
[0070]如果不能查询到所需的第二主机的MAC地址,则构造ARP请求报文,其源MAC地址为SDN控制器自身的MAC地址,源IP地址可以为0.0.0.0,以查询第二主机的MAC地址,直至查询到第二主机的MAC地址后,将其通过PACKET_out事件将修改后的IP报文下发到目的IP地址所在的主机端口。
[0071]将修改后的IP报文下发到目的IP地址所在的主机端口,之后,SDN控制器检查已经下发的流表,如果该报文的目的地址匹配之前下发的流表,则可以通过OSPF算法,算出源IP地址和目的IP地址之间的最短路径,并在最短路径上的每台OpenFlow交换机上下发一条针对目的IP的流表,每条流表的输出端口为最短路径上相应的下一个端口,且在路径上最后一台OpenFlow交换机上的流表的输出动作上增加修改IP的目的MAC地址的动作,也就是将原先的目的MAC地址修改为目的IP地址所在主机的MAC地址。至此,第一主机到第二主机之间的单向通信链路已经建立。
[0072]如果需要建立第一主机和第二主机之间的双向通信链路,则需要第二主机执行与第一主机相同的动作,建立第二主机与第一主机之间的单向通信链路,不多赘述。
[0073]通过上述的实施例,可以实现,由一台OpenFlow交换机作为汇聚层/核心层的交换机,所有的默认网关和IP层通信功能均由控制器提供和OpenFlow交换机实现。相比于,传统网络的园区网的3层IP通信方案要求在一个接入层或汇聚层的以太网交换机划分多个多个VLAN,每个VLAN对应一个IP子网,这种方式操作繁琐且容易出错。本实施例则无需配置VLAN即可在接入层的一台以太网交换机内规划多个IP子网,且多个IP子网的默认网关可以共享一个OpenFlow交换机的物理端口,极大的提高了网络规划和部署的灵活性、提高了的物理网络资源的利用率并节省了网络部署的成本。
[0074]相应的,本发明实施例提供了一种交换机,该交换机可以是图1所示的OpenFlow交换机,图7是该实施例的结构图,由图7可见,本实施例提供的交换机可以包括:
[0075]第一接收模块701,用于接收第一主机发送的第一因特网包探索器PING请求报文,所述第一 PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述交换机和与该交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段;
[0076]第一发送模块702,用于将所述PING请求报文发送给所述SDN控制器;
[0077]第二接收模块703,用于接收所述SDN控制器下发的PING回复报文;
[0078]第二发送模块704,用于将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
[0079]在一种可选的实施例中,所述交换机还包括:
[0080]第三接收模块,用于接收第一主机发送的地址解析协议ARP请求报文,该ARP请求报文用于获取所述虚拟网关的MAC地址;
[0081]第三发送模块,用于将所述ARP请求报文发送给所述SDN控制器;
[0082]第四接收模块,用于接收所述SDN控制器下发的ARP回应报文,该ARP回应报文中携带所述虚拟网关的MAC地址;
[0083]第四发送模块,用于将所述ARP回应报文下发给所述第一主机。
[0084]在另一种可选的实施例中,所述交换机还可以包括:
[0085]第五接收模块,用于接收所述第一主机发送的第二 PING请求报文,所述第二 PING请求报文的目的地址为第二主机的IP地址,所述第二 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述第一主机和第二主机位于不同的IP网段;
[0086]第五发送模块,用于将所述第二 PING请求报文上传至所述SDN控制器,以便于所述SDN控制器对所述第二 PING请求报文进行流表匹配,并且所述SDN控制器对所述第二PING请求报文进行流表匹配成功后,对所述第二 PING请求报文的目的MAC地址修改为所述第二主机的MAC地址,封装为第三PING报文之后,将所述第三PING报文下发给所述第二主机,建立所述第一主机到所述第二主机之间的通信链路。
[0087]在另一种可选的实施例中,所述交换机还可以包括:
[0088]第六接收模块,用于接收SDN控制器下发的策略流表,所述策略流表具有匹配项,满足该匹配项的报文将被所述OpenFlow交换机上送到SDN控制器。
[0089]通过上述实施例,可以实现与SDN控制器进行配合,实现默认网关的功能。在一次配置之后,实将OpenFlow交换机和SDN控制器作为几个网段的交换机的共同的默认网关,实现网关之间的互连通信。
[0090]相应的,本发明实施例提供了一种控制器,该控制器可以是图1所示的SDN控制器,图8是该实施例的结构图,由图8可见,本实施例提供的控制器可以包括:
[0091]第一接收模块801,用于接收OpenFlow交换机发送的第一 PING请求报文,所述第一PING请求报文由第一主机生成后发送给所述OpenFlow交换机,所述第一 PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述OpenFlow交换机和与该OpenFlow交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段;
[0092]报文生成模块802,用于对所述第一 PING请求报文进行流表匹配通过后,生成PING回复报文;
[0093]第一发送模块803,用于将所述PING回复报文下发给所述OpenFlow交换机,以便于所述OpenFlow交换机将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
[0094]在一种可选的实施例中,所述控制器还可以包括:
[0095]第二接收模块,用于接收所述OpenFlow交换机发送的ARP请求报文,所述ARP请求报文是所述第一主机发送给所述OpenFlow交换机,该ARP请求报文用于获取所述虚拟网关的MAC地址;
[0096]确定模块,用于确定所述虚拟网关的MAC地址;
[0097]第二发送模块,用于向所述OpenFlow交换机下发ARP回应报文,该ARP回应报文中携带所述虚拟网关的MAC地址,以便于所述OpenFlow交换机将所述ARP回应报文下发给所述第一主机。
[0098]在另一种可选的实施例中,所述控制器还可以包括:
[0099]第三接收模块,用于接收所述OpenFlow交换机发送的第二 PING请求报文,所述第二PING请求报文的目的地址为第二主机的IP地址,所述第二 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述第一主机和第二主机位于不同的IP网段;
[0100]匹配模块,用于对所述第二 PING请求报文进行流表匹配;
[0101]封装模块,用于对所述第二 PING请求报文进行流表匹配成功后,对所述第二 PING请求报文的目的MAC地址修改为所述第二主机的MAC地址,封装为第三PING报文;
[0102]第三发送模块,用于将所述第三PING报文下发给所述第二主机,建立所述第一主机到所述第二主机之间的通信链路。
[0103]在又一种实施例中,所述控制器还可以包括:
[0104]路径确定模块,用于确定所述第一主机和所述第二主机之间的最短通信路径;
[0105]流表下发模块,用于向所述最短通信路径上的每台交换机下发目的IP地址与所述第二主机IP地址匹配的流表。
[0106]可选的,所述流表下发模块还用于向所述OpenFlow交换机下发策略流表,所述策略流表具有匹配项,满足该匹配项的报文将被所述OpenFlow交换机上送到SDN控制器。
[0107]通过本实施例提供的控制器,可以与交换机进行配合,实现默认网关的功能。能够在一次配置之后,实现将OpenFlow交换机和SDN控制器作为几个网段的交换机的共同的默认网关,实现网关之间的互连通信。
[0108]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-R0M,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0109]本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0110]本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0111]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0112]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种通信方法,其特征在于,所述方法包括: OpenFlow交换机接收第一主机发送的第一因特网包探索器PING请求报文,所述第一PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述OpenFlow交换机和与该OpenFlow交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段; 将所述PING请求报文发送给所述SDN控制器; 接收所述SDN控制器下发的PING回复报文; 将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
2.如权利要求1所述的方法,其特征在于,所述接收第一主机发送的PING请求报文,之前,还包括: 接收第一主机发送的地址解析协议ARP请求报文,该ARP请求报文用于获取所述虚拟网关的MAC地址; 将所述ARP请求报文发送给所述SDN控制器; 接收所述SDN控制器下发的ARP回应报文,该ARP回应报文中携带所述虚拟网关的MAC地址; 将所述ARP回应报文下发给所述第一主机。
3.如权利要求1或2任一项所述的方法,其特征在于,所述将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路;之后,还包括: 接收所述第一主机发送的第二 PING请求报文,所述第二 PING请求报文的目的地址为第二主机的IP地址,所述第二 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述第一主机和第二主机位于不同的IP网段; 将所述第二 PING请求报文上传至所述SDN控制器,以便于所述SDN控制器对所述第二PING请求报文进行流表匹配,并且所述SDN控制器对所述第二 PING请求报文进行流表匹配成功后,对所述第二 PING请求报文的目的MAC地址修改为所述第二主机的MAC地址,封装为第三PING报文之后,将所述第三PING报文下发给所述第二主机,建立所述第一主机到所述第二主机之间的通信链路。
4.如权利要求1所述的方法,其特征在于,所述OpenFlow交换机接收第一主机发送的第一因特网包探索器PING请求报文,之前,还包括: 接收SDN控制器下发的策略流表,所述策略流表具有匹配项,满足该匹配项的报文将被所述OpenFlow交换机上送到SDN控制器。
5.一种通信方法,其特征在于,包括: 接收OpenFlow交换机发送的第一 PING请求报文,所述第一 PING请求报文由第一主机生成后发送给所述OpenFlow交换机,所述第一 PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述OpenFlow交换机和与该OpenFlow交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段; 对所述第一 PING请求报文进行流表匹配通过后,生成PING回复报文; 将所述PING回复报文下发给所述OpenFlow交换机,以便于所述OpenFlow交换机将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
6.如权利要求5所述的方法,其特征在于,所述接收OpenFlow交换机发送的第一PING请求报文,之前,还包括: 接收所述OpenFlow交换机发送的ARP请求报文,所述ARP请求报文是所述第一主机发送给所述OpenFlow交换机,该ARP请求报文用于获取所述虚拟网关的MAC地址; 确定所述虚拟网关的MAC地址; 向所述OpenFlow交换机下发ARP回应报文,该ARP回应报文中携带所述虚拟网关的MAC地址,以便于所述OpenFlow交换机将所述ARP回应报文下发给所述第一主机。
7.如权利要求5或6任一项所述的方法,其特征在于,所述将所述PING回复报文下发给所述OpenFlow交换机,之后,还包括: 接收所述OpenFlow交换机发送的第二 PING请求报文,所述第二 PING请求报文的目的地址为第二主机的IP地址,所述第二 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述第一主机和第二主机位于不同的IP网段; 对所述第二 PING请求报文进行流表匹配; 并且所述SDN控制器对所述第二 PING请求报文进行流表匹配成功后,对所述第二 PING请求报文的目的MAC地址修改为所述第二主机的MAC地址,封装为第三PING报文; 将所述第三PING报文下发给所述第二主机,建立所述第一主机到所述第二主机之间的通信链路。
8.如权利要求7所述的方法,其特征在于,所述将所述第三PING报文下发给所述第二主机,建立所述第一主机到所述第二主机之间的通信链路,之后,还包括: 确定所述第一主机和所述第二主机之间的最短通信路径; 向所述最短通信路径上的每台交换机下发目的IP地址与所述第二主机IP地址匹配的流表。
9.如权利要求5所述的方法,其特征在于,还包括: 向所述OpenFlow交换机下发策略流表,所述策略流表具有匹配项,满足 该匹配项的报文将被所述OpenFlow交换机上送到SDN控制器。
10.一种交换机,其特征在于,所述交换机包括: 第一接收模块,用于接收第一主机发送的第一因特网包探索器PING请求报文,所述第一PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述交换机和与该交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段; 第一发送模块,用于将所述PING请求报文发送给所述SDN控制器; 第二接收模块,用于接收所述SDN控制器下发的PING回复报文; 第二发送模块,用于将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
11.一种控制器,其特征在于,所述控制器包括: 第一接收模块,用于接收OpenFlow交换机发送的第一 PING请求报文,所述第一 PING请求报文由第一主机生成后发送给所述OpenFlow交换机,所述第一 PING请求报文的目的IP地址为虚拟网关的IP地址,所述第一 PING请求报文的目的MAC地址为所述虚拟网关的MAC地址,所述虚拟网关为所述第一主机所处网段的默认网关,该虚拟网关由所述OpenFlow交换机和与该OpenFlow交换机连接的软件定义网络SDN控制器组成,所述第一主机位于所述SDN控制器的管理的至少一个网段; 报文生成模块,用于对所述第一 PING请求报文进行流表匹配通过后,生成PING回复报文; 第一发送模块,用于将所述PING回复报文下发给所述OpenFlow交换机,以便于所述OpenFlow交换机将所述PING回复报文下发给所述第一主机,以建立所述虚拟网关与所述第一主机之间的通信链路。
12.一种通信系统,其特征在于,包括权利要求9所述的交换机和权利要求10所述的控制器。
【文档编号】H04L12/46GK104202266SQ201410379220
【公开日】2014年12月10日 申请日期:2014年8月4日 优先权日:2014年8月4日
【发明者】陈启昌, 黄东远, 周都 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1