一种基于软件定义网络的二层组播网络互通装置和方法与流程

文档序号:17817387发布日期:2019-06-05 21:55
本发明涉及智慧城市信息
技术领域
:,尤其是涉及一种基于软件定义网络的二层组播网络互通装置和方法。
背景技术
::在智慧城区中,小到一个停车场,大到智慧园区,乃至整个城市,无时无刻都会有物联网设备与云端进行互联互通,云端应用通过设备端采集的数据对城区中的上下文情景进行感知,并通过控制物联网设备的形式加以反馈。智慧城区的建设,需要打造统一的云管理平台。即把物联网设备的控制从传统的设备端移到云端,这样做具有整合资源,联动应用,全局优化,高效管理等优势,但对于一些需要二层通信的设备,将控制端移到位于另一个网络的云端会造成设备无法通信的问题。以园区中最常见的公共广播设备为例,公共广播需要控制端软件发送二层组播报文以控制公共广播设备的广播内容,而位于云端的控制软件发出的二层组播报文无法穿透路由到达园区的广播设备。传统的VPN解决方案,例如IPSECVPN,由于是三层VPN,同样无法解决二层组播报文透传的问题。技术实现要素:本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于软件定义网络的二层组播网络互通装置和方法。本发明的目的可以通过以下技术方案来实现:一种基于软件定义网络的二层组播网络互通装置,用以连接物联网设备和装载有所述物联网设备控制软件的控制云主机,所述互通装置包括:一第一SDN网关,用以连接所述物联网设备,安装有软件定义网络软件;一第二SDN网关,用以连接所述控制云主机,安装有软件定义网络软件;所述第一SDN网关和第二SDN网关通过VxLAN隧道相连。所述第一SDN网关和第二SDN网关均为允许转发状态。所述第二SDN网关与控制云主机的连接端口上具有允许特定MAC/IP包通过的设置。所述第一SDN网关至少具有一与外网连接的第一端口和一与物联网设备连接的第二端口。所述第二SDN网关至少具有一与第一SDN网关连接的第三网络端口和一与控制云主机连接的第四网络端口。一种采用所述的二层组播网络互通装置实现基于软件定义网络的二层组播网络互通方法,包括以下步骤:1)建立第一SDN网关和第二SDN网关间的VxLAN隧道,并进行网络地址转换设置;2)设置第一SDN网关和第二SDN网关为允许转发状态;3)配置物联网设备和第一SDN网关、控制云主机和第二SDN网关的连接;4)在第二SDN网关与控制云主机的连接端口上设置允许特定MAC/IP包通过;5)形成组播路由转发。一种云端与设备端二层组播网络系统,包括所述的二层组播网络互通装置、物联网设备和装载有所述物联网设备控制软件的控制云主机。与现有技术相比,本发明通过在智慧城区中部署第一SDN网关设备,将物联网设备与第一SDN网关相链接,并在云端部署第二SDN网关设备,第二SDN网关为一虚拟SDN网关,将物联网设备的控制软件所在的云主机与虚拟SDN网关设备相链接,并基于SDN网关构建的VxLAN隧道打通二层组播数据包的传输通路,从而实现在云端发送二层组播数据包控制城区中物联网设备的效果,解决二层控制设备(例如公共广播)的控制软件移到云端的云主机中后无法与设备进行二层组播通信的问题。附图说明图1为本发明互通装置的结构示意图。具体实施方式下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。如图1所示,本发明提供一种基于软件定义网络的二层组播网络互通装置,用以连接物联网设备1和装载有物联网设备1控制软件的控制云主机2,互通装置包括:一第一SDN网关3,用以连接物联网设备1,安装有软件定义网络(SoftwareDefinedNetwork,以下简称SDN)软件;一第二SDN网关4,用以连接控制云主机2,安装有软件定义网络软件;第一SDN网关3和第二SDN网关4通过VxLAN隧道相连。工作时,第一SDN网关3和第二SDN网关4均为允许转发状态。第二SDN网关4与控制云主机2的连接端口上具有允许特定MAC/IP包通过的设置。图1中的IP地址只是一个具体实施例子,并不代表一定要用这些IP地址,IP地址应根据实际情况进行配置。第一SDN网关3至少具有一与外网连接的第一端口和一与物联网设备1连接的第二端口。本实施例中,第一SDN网关3可为基于ARM芯片的嵌入式Linux设备或者一台装有Linux操作系统的X86主机,可以连接公共广播等物联网设备。在某些实施例中,第一SDN网关3的第一端口可以是以太网或者3G、4G等无线网口,第二端口可以是有线或无线网口。第二SDN网关4至少具有一与第一SDN网关3连接的第三网络端口和一与控制云主机2连接的第四网络端口。本实施例中,第二SDN网关4包含一台装有Linux操作系统的云主机,在其上安装SDN软件,构成虚拟SDN网关。采用上述二层组播网络互通装置实现基于软件定义网络的二层组播网络互通方法,包括以下步骤:1)建立第一SDN网关和第二SDN网关间的VxLAN隧道,并进行网络地址转换设置;2)设置第一SDN网关和第二SDN网关为允许转发状态;3)配置物联网设备和第一SDN网关、控制云主机和第二SDN网关的连接;4)在第二SDN网关与控制云主机的连接端口上设置允许特定MAC/IP包通过;5)形成组播路由转发。通过上述二层组播网络互通装置可形成一种云端与设备端二层组播网络系统,包括二层组播网络互通装置、物联网设备和装载有物联网设备控制软件的控制云主机。以基于OpenStack云平台和OVS软件为例,实施步骤如下:1)在SDN网关和虚拟SDN网关上建立VxLAN隧道,并基于iptables设置MASQUERADE的NAT:*nat-APOSTROUTING-oeth0-jMASQUERADE在虚拟SDN网关上执行:ovs-vsctladd-brbr1ovs-vsctladd-portbr1eth1ifconfigeth10up&&ifconfigbr110.10.0.6/24upovs-vsctladd-portbr1vx1--setinterfacevx1type=vxlanoptions:remote_ip=125.215.36.168routeadd-net172.55.0.0/16devbr1在虚拟SDN网关上执行:ovs-vsctladd-brbr1ovs-vsctladd-portbr1eth1ifconfigeth10up&&ifconfigbr1172.55.0.101/16upovs-vsctladd-portbr1vx1--setinterfacevx1type=vxlanoptions:remote_ip=122.144.216.26routeadd-net10.10.0.0/24devbr12)配置允许转发在SDN网关和虚拟SDN网关上执行:在/etc/sysctl.conf中增加如下指令:net.ipv4.ip_forward=13)在物联网设备和控制云主机上分别把网关设置成SDN网关和虚拟SDN网关修改/etc/sysconfig/network-scripts/ifcfg-eth0●对于控制控制云主机:GATEWAY="10.10.0.6"●对于物联网设备:GATEWAY="172.55.0.101"并重启网络:servicenetworkrestart4)在虚拟SDN网关的eth1口上设置允许特定MAC/IP包通过记录下SDN网关中br1的mac地址为mac1,虚拟SDN网关中br1的mac地址为mac2在基于OpenStack的IaaS云平台的控制节点上执行如下命令:.keystonerc_adminNeutronport-list|grep10.10.0.6(拿到这个IP地址对应的portid)Neutronport-update<port_id>--allowed-address-pairstype=dictlist=trueip_address=10.10.0.6,mac_address=<mac1>ip_address=172.55.0.101,mac_address=<mac2>ip_address=172.55.0.102,mac_address=<mac2>5)在SDN网关和虚拟SDN网关上配置组播路由转发修改/etc/sysconfig/iptables,配置如下命令:*filter-AINPUT-s224.0.0.0/4-jACCEPT-AINPUT-d224.0.0.0/4-jACCEPT-AINPUT-mpkttype--pkt-typemulticast-jACCEPT-AINPUT-mpkttype--pkt-typebroadcast-jACCEPT-AFORWARD-ieth1-jACCEPT-AFORWARD-ibr1-jACCEPT重启服务:serviceiptablesrestart增加组播路由:routeadd-net224.0.0.0/4devbr1以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本
技术领域
:中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。当前第1页1 2 3 当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1