发明内容
本发明的目的在于提供一种基于OpenStack实现外部网络多线接入的方法,旨在将不同的多家网络接入商服务接入到一个Openstack集群上面。底层用户通过使用不同folating IP的方式能轻松获取不同运营商的网络资源。从而实行灵活自由可控的多网络资源接入和分配。
为了实现上述目的,本发明提供一种基于OpenStack实现外部网络多线接入的方法,包括:
获取运营商的IP地址;
将所获取的IP地址汇总并映射给具有一预设位数的内网地址;
基于Openstack的neutron组件所创建的虚拟路由,由该虚拟路由通过设置网关的方式设置到外部的连接到第一预设IP的网关,且在虚拟路由器中形成第一接口,所述第一接口的第二预设IP用于连接外部网络;
在虚拟路由器中创建多个虚拟路由表文件,以通过每一个虚拟路由表文件与运营商对应;
在虚拟路由器中创建策略路由,以将不同的地址与虚拟路由表进行关联;
将租户网络连接至虚拟路由器,在路由器中生成第二接口,所述第二接口的IP为租户网络的内部网关地址,以用于连接内部网络;
浮动IP通过所述neutron组件被配置在虚拟路由器的外部接口上,在虚拟路由表文件中设置浮动IP的处理规则,所述处理规则包括:当路由器接收到从外网发来的包,如果目的地址是第一浮动IP,将目的地址修改为第一租户的IP,以使接收到的额外网包发送到第一租户,当第一租户发送数据到外网,原地址将被修改为第二浮动IP。
一种实现方式中,所述将所获取的IP地址汇总并映射给具有一预设位数的内网地址的步骤,包括:
通过外置接口实现netmap,将所获取的IP地址汇总成并映射给一个16位内网地址。
应用本发明实施例提供的一种基于OpenStack实现外部网络多线接入的方法,多运营商接入,对于接入方式的容忍度高,无需改变现有网络环境。能偶兼容传统网络。所有操作在Openstack平台层完成,用户无感知,不用对服务器进行侵入,风险低。资源切换简便灵活降低了对于操作人员的要求。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
如图1-3本发明提供一种基于OpenStack实现外部网络多线接入的方法,包括:
S101,获取运营商的IP地址;
S102,将所获取的IP地址汇总并映射给具有一预设位数的内网地址;
S103,基于Openstack的neutron组件所创建的虚拟路由,由该虚拟路由通过设置网关的方式设置到外部的连接到第一预设IP的网关,且在虚拟路由器中形成第一接口,所述第一接口的第二预设IP用于连接外部网络;
S104,在虚拟路由器中创建多个虚拟路由表文件,以通过每一个虚拟路由表文件与运营商对应;
S105,在虚拟路由器中创建策略路由,以将不同的地址与虚拟路由表进行关联;
S106,将租户网络连接至虚拟路由器,在路由器中生成第二接口,所述第二接口的IP为租户网络的内部网关地址,以用于连接内部网络;
S107,浮动IP通过所述neutron组件被配置在虚拟路由器的外部接口上,在虚拟路由表文件中设置浮动IP的处理规则,所述处理规则包括:当路由器接收到从外网发来的包,如果目的地址是第一浮动IP,将目的地址修改为第一租户的IP,以使接收到的额外网包发送到第一租户,当第一租户发送数据到外网,原地址将被修改为第二浮动IP。
一般情况下openstack平台中的外部网络接口只存在一个运营商的公网地址段及网关,通过本发明替代了网络服务中部分的程序。可以将多个运营商的地址抽象成一个16位的内网地址段,通过是在这个内网地址段上可以指定不同的地址走不同的运营商网络,而租户的虚机因为加载的是抽象后的内网网段所以在切换公网地址时时没有感知的。
需要说明的是,Neutron是OpenStack的核心组件,对其定位是:Naas(网络即服务)。Neutron实现对内、外部网络通信的网桥功能,并且实现二、三层网络通信代理即租户网络与公网地址的转换与分发。当云平台节点规模及业务规模增大时,Neutron服务的性能与可靠性将受到较大的依赖。
本领域技术人员可以理解的是,所有数据包通讯需要先发送到各自vpc区域的vRouter(各个VPC的vRouter可以在一个网络节点或者多个网络节点上),vRouter通过浮动IP的方式将VPC内网地址nat转换成EIP地址,再由EIP地址之间进行2层(同网段)或者3层(跨网段)通讯通讯。EIP之间的通讯走物理交换机或者物理路由器。
虚机访问互联网或者跨数据中心业务时,网络通讯通过L3即网络节点完成。所有去往公网或者跨数据通讯的流量将首先发送到各自VPC的vRouter。vRouter通过通过浮动IP的方式或者通过SNAT的方式来访问公网。区别在于浮动IP适用于带外部发布服务,有一对一的外网地址映射,而SNAT适用于虚机访问外网,可以多个虚机公用一个外部地址。
具体的,如图2和图3所示,本发明实施例中可以获取运营商1的IP(24位)、获取运营商2的IP(24位)、获取运营商3的IP(24位),具体实施例中,如现有的三大运营商移动、联通和电信。假设电信公网的IP地址为:202.96.209.0/24(0-24)、联通公网的IP地址为:58.246.194.0/24;移动公网的IP地址为:114.141.24.0/24。
通过外置接口实现了netmap,即IP汇总成并映射给一个16位内网地址,例如:
202.96.209.0/24映射给10.255.0.10/16;
58.246.194.0/24映射给10.255.0.10/16
114.141.24.0/24映射给10.255.0.10/16
通过openstack的neutron组件创建虚拟路由器vRouter,在vRouter中通过SetGateway的方式设置到外部的连接到10.255.0.10/16的网关,同时在vRouter中多出一个新的interface,IP为10.255.0.2用于连接外部网络。
在vRouter中通过开发的脚本程序,创建多个虚拟路由表文件对应不同的运营商,例如:
电信:CT ID:101
联通:CU ID:102
移动:CM ID:103
在vRouter中通过开发的脚本程序创建策略路由将不同的地址与虚拟路由表进行关联,将10.255.0.10/1的IP以folating IP的形式下发给租户一台虚拟机进出方向的访问示例。
SNAT示例
绑定电信公网的VM 192.168.1.11首先会转换成10.255.0.10,再将这个地址映射到202.96.209.1上。即将192.168.1.11对电信方向的访问转化成了202.96.209.1这个电信地址的访问。该映射关系是唯一的并且整个转换过程被记录在虚拟路由表中。
绑定联通公网的VM 192.168.1.21首先会转换成10.255.0.11再将这个地址映射到58.246.194.3上。即将192.168.1.21对联通方向的访问转化成了58.246.194.3这个联通地址的访问。该映射关系是唯一的并且整个转换过程被记录在虚拟路由表中。
DNAT示例
用户访问202.96.209.1时将被映射成10.255.0.10这个地址并被转化成对192.168.1.11的访问。
路由示例
VM 192.168.1.11发出的数据包到达192.168.1.1(内部网关)并nat转换成10.255.0.10(nat),由改变了地址后的10.255.0.10发送数据包给10.255.0.1(外部网关)并映射成202.96.209.1(映射)。
运营商网络:运营商提供的网络地址,可用于业务的发布。每个运营商提供的网络具有独立性。跨运营商的IP默认不能通用。
Openstack:运行本发明程序的节点,负责运行虚拟路由器,接入运营商网络资源,负责建立管理租户的计算资源。
如图2和图3所示,本次发明的程序主体:一后台进程的方式运行在openstack平台中,作为openstack网络组件的增强和替换。负责将多运营商资源建立在不同虚拟路由表中,并将这些IP与内网段建立对应关系。这些对应关系重新被记录到虚拟路由表中。
虚拟路由表:在linux***中以文件形式存在,该文件记录了数据包到达最终目的的下一跳地址,以及由程序文件建立的映射关系。
虚拟路由器(vRouter):搭载虚拟路由表,通过虚拟路由表表项建立路由。分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。