Neutron是OpenStack核心项目之中的一个,提供云计算环境下的虚拟网络功能。Neutron的功能日益强大,并在Horizon面板中已经集成该模块。作为Neutron的核心开发人员之中的一个。个人认为Neutron全然取代Nova Network模块作为云计算网络管理中心是必定趋势。要使用好OpenStack,了解Neutron概念及其对应操作就显得格外重要。为此目的,这篇博客主要讲述Neutron网络的一些基本概念,网络规划和Horizon中怎样使用Neutron中的网络功能。
Neutron基本概念
-
网络
在普通人的眼里,网络就是网线和供网线插入的port。一个盒子会提供这些port。对于网络project师来说,网络的盒子指的是交换机和路由器。所以在物理世界中,网络能够简单地被觉得包含网线,交换机和路由器。当然。除了物理设备。我们还有软的物件:IP地址,交换机和路由器的配置和管理软件以及各种网络协议。
要管理好一个物理网络须要很深的网络专业知识和经验。
Neutron网络目的是(为OpenStack云更灵活地)划分物理网络,在多租户环境下提供给每一个租户独立的网络环境。
另外,Neutron提供API来实现这样的目标。Neutron中“网络”是一个能够被用户创建的对象,假设要和物理环境下的概念映射的话。这个对象相当于一个巨大的交换机。能够拥有无限多个动态可创建和销毁的虚拟port。
-
port
在物理网络环境中,port是用于连接设备进入网络的地方。Neutron中的port起着类似的功能,它是路由器和虚拟机挂接网络的着附点。
-
路由器
和物理环境下的路由器类似。Neutron中的路由器也是一个路由选择和转发部件。仅仅只是在Neutron中,它是能够创建和销毁的软部件。
-
子网
简单地说,子网是由一组IP地址组成的地址池。不同子网间的通信须要路由器的支持,这个Neutron和物理网络下是一致的。Neutron中子网隶属于网络。
Neutron网络的一种典型结构
有这么多的基本概念,使用起来是不是非常麻烦?事实上仅仅要我们好好梳理一下。neutron的基本操作还是非常easy的。
首先我们规划一下我们的网络。
Neutron典型的网络结构例如以下图所看到的:
在这个图中。我们有一个和互联网(互联网能够由其他网络取代。比方办公网络)连接的外部网络。这个外部网络是租户虚拟机訪问互联网或者互联网訪问虚拟机的途径。外部网络有一个子网。它是一组在互联网上可寻址的IP地址。
普通情况下,外部网络仅仅有一个(neutron是支持多个外部网络的),且由管理员创建。租户网络可由租户随意创建。
当一个租户的网络上的虚拟机须要和外部网络以及互联网通信时,这个租户就须要一个路由器。路由器有两种臂,一种是gateway网关臂,还有一种是interfaces接口臂。网关臂仅仅有一个,连接外部网。接口臂能够有多个。连接租户网络的子网。经过这种网络规划,我们有以下的步骤来实施:
- 首先管理员拿到一组能够在互联网上寻址的IP地址。而且创建一个外部网络和子网
- 租户创建一个网络和子网
- 租户创建一个路由器而且连接租户子网和外部网络
- 租户创建虚拟机
Horizon上操作网络
如今我们规划好了网络。我们就能够在Horizon上进行操作了。
管理员创建外网
我们说过外网要由管理员创建。如果我们拿到的外部网络的IP地址是20.0.2.0/24,可用的地址段是20.0.2.10-20.0.2.20,网关是20.0.2.1。我们如今就以管理员的身份在horzion上创建一个外网和子网:
- 以管理员身份登录后。选择管理员面板,点击’Networks’项后显示当前网络列表:
- 在上图中点击“Create Network”button弹出“Create Network”窗体:在上面的弹出窗体中,填入网络名:ExternalNet,并且勾选External Network然后点击“Create Network”。
- 以下是我们刚才创建好的网络:
- 如今我们点击“ExternalNet”查看这个网络的具体情况:
- 在网络具体情况页面中。我们点击“Create Subnet”弹出窗体创建外部网络的子网:
这是一个多标签页面,在上面的“Subnet”页面中填入子网名,子网CIDR(Network Address)。
在以下的“Subnet Detail”页中填入地址范围:
注意:由于外部网络不挂接虚拟机,能够不选泽“Enable DHCP“。最后点击子网创建窗体上的“Create”完毕子网的创建。
租户demo创建租户网络
我们如今以普通租户登录horizon。并点击“Netowrks”项:
点击上图的“Create Network”弹出租户网络创建窗体:
显然。这是一个多Tab的界面,和我们先前管理员创建网络的界面不一样。在这个界面里。我们能够一气完毕网络和子网的创建。
我们在“Network”页中填入网络名。在“Subnet”页中填入CIDR (Network Address):
“Subnet Datail”页面能够让我们填入IP地址池,缺省情况是Neutron使用整个CIDR规定的地址范围。
所以我们不关心“Subnet Datail”页面。
我们点击“Create”button完毕租户子网的创建。
租户创建路由器
选择“Routers”项。系统显演示样例如以下页面:
-
创建路由器
点击右面的“Create Router”弹出路由器创建对话框:
这个对话框及其简单,我们仅仅需输入全部的路由器的名字,然后点击“Create Router”创建路由器。
-
配置网关臂
路由器创建出来之后。会显示在路由器列表中:
我们点击“Set Gateway”来设置这个路由器的网关臂:
如上图所看到的,我们选择管理员创建好的外部网络“ExternalNet”。然后点击“Set Gateway”。
-
配置接口臂
下图显示了租户刚才创建的路由器及其网关臂:
如今我们点击路由器名字查看路由器详情:
为了设置路由器的接口臂。我们点击“Add Interface”button弹出“Add Interface”窗体:
上图显示的窗体,我们仅仅需选择我们所要连接的子网。然后点击“Add Interface”。
如今这个租户的路由器以及连接了外网和租户的子网。接下来这个租户能够创建虚拟机,这个虚拟机借助路由器就能够訪问外部网络甚至互联网。
租户创建虚拟机
这里不想详述创建虚拟机的过程。我们着重叙述一下这个过程中怎样选择网络:
从上面的图中我们能够看出,租户能够选择的网路包含了租户刚才创建的网络。点击网络右边的“+”符号,或者拖拽这个网络进入“Selected Networks”框中。租户所创建的虚拟机就会使用这个网络。
租户查看网络拓扑
最后我想要说的是Horizonproject师费尽心思实现的网络拓扑图:
从这个拓扑图能够看到我们前面全部操作的结果:
- 绿色的是管理员创建的外部网络
- 跨在外部网络和租户网络上的是具有网关臂和接口臂的路由器
- 蓝色的是租户网路及其子网
- 最后是租户创建的虚拟机
点击拓扑图上的虚拟机图像,我们能够使用VNC訪问虚拟机的控制台,例如以下图所看到的:
我们能够看出。这个虚拟机从租户网络中获取到了IP地址:10.0.1.3。它通过租户自己的路由器能訪问互联网。
总结
是不是有了Neutron就不须要物理网络的网络project师了呢?不是的。虚拟网络的负载终于还须要跑到物理网络上去传递。Neutron仅仅只是是把部分传统网络管理的功能推到了租户方。比方租户能够创建一个虚拟网络及其子网,创建一个路由器等等,这个从上面的操作中能够看出来。
在虚拟网络功能的帮助下,基础物理网络就能够向外提供额外的网络服务了,比方租户全然能够创建一个属于自己的类似于数据中心网络的虚拟网络。
Neutron提供了比較完好的多租户环境下的虚拟网络模型以及API。
像部署物理网络一样。使用Neutron创建虚拟网络时也须要做一些主要的规划和设计。本文提出了一个Neutron环境下的典型网络结构和Horzion下的操作流程。
在兴许的博客中,我会继续介绍Neutron的其他功能。比方负载均衡。防火墙,VPN等。