探索云端计算技术分享:Openstack实践-Neutron的基本原理
大家好,很高兴今天能与大家分享一些Neutron的知识。今天分享的思路是:Openstack网络基础等知识,在此之前先回顾OpenStack Neutron网络架构。

neutron的基本原理
neutron是openstack的一个重要模组,也是比较难以理解和debug的模组之一。这里安装如图安装了经典的三个节点的Havana的Openstack

External Network/API Network,这个网络是连线外网的,无论是使用者呼叫Openstack的API,还是创建出来的虚拟机器要访问外网,或者外网要ssh到虚拟机器,都需要通过这个网络Data Network,资料网络,虚拟机器之间的资料传输通过这个网络来进行,比如一个虚拟机器要连线另一个虚拟机器,虚拟机器要连线虚拟的路由都是通过这个网络来进行Management Network,管理网络,Openstack各个模组之间的互动,连线数据库,连线Message Queue都是通过这个网络来。将这三个网络隔离,一方面是安全的原因,在虚拟机器里面,无论采取什么手段,干扰的都紧紧是Data Network,都不可能访问到我的数据库,一方面是流量分离,Management Network的流量不是很大的,而且一般都会比较优雅的使用,而Data network和External Network就需要进行流量控制的策略。我的这个网络结构有些奇怪,除了Controller节点是两张网络卡之外,其他的都多了一张网络卡连线到external network,这个网络卡是用来做apt-get的,因为Compute Node按说是没有网络卡连线到外网的,为了apt-get添加了eth0,Network Node虽然有一个网络卡eth1是连线外网的,然而在neutron配置好之前,这个网络卡通常是没有IP的,为了apt-get也添加了eth0,有人说可以通过新增route规则都通过Controller连线外网,但是对于初学的人,这个样比较容易操作。neutron是用来建立虚拟网络的,所谓虚拟网络,就是虚拟机器启动的时候会有一个虚拟网络卡,虚拟网络卡会连线到虚拟的switch上,虚拟的switch连线到虚拟的router上,虚拟的router最终和物理网络卡联通,从而虚拟网络和物理网络联通起来。neutron分成多个模组分布在三个节点上。
Controller节点:neutron-server,用于接受API请求建立网络,子网,路由器等,然而建立的这些东西仅仅是一些资料结构在数据库里面
Network节点:neutron-l3-agent,用于建立和管理虚拟路由器,当neutron-server将路由器的资料结构建立好,它是做具体的事情的,真正的呼叫命令列将虚拟路由器,路由表,namespace,iptables规则全部建立好
neutron-dhcp-agent,用于建立和管理虚拟DHCP Server,每个虚拟网络都会有一个DHCP Server,这个DHCP Server为这个虚拟网络里面的虚拟机器提供IP
neutron-openvswith-plugin-agent,这个是用于建立虚拟的L2的switch的,在Network节点上,Router和DHCP Server都会连线到二层的switch上
Compute节点:neutron-openvswith-plugin-agent,这个是用于建立虚拟的L2的switch的,在Compute节点上,虚拟机器的网络卡也是连线到二层的switch上

为这个Tenant建立一个private network,不同的private network是需要通过VLAN tagging进行隔离的,互相之间broadcast不能到达,这里我们用的是GRE模式,也需要一个类似VLAN ID的东西,称为Segment ID建立一个private network的subnet,subnet才是真正配置IP网段的地方,对于私网,我们常常用192.168.0.0/24这个网段为这个Tenant建立一个Router,才能够访问外网将private network连线到Router上建立一个External Network建立一个Exernal Network的Subnet,这个外网逻辑上代表了我们资料中心的物理网络,通过这个物理网络,我们可以访问外网。因而PUBLIC_GATEWAY应该设为资料中心里面的Gateway, PUBLIC_RANGE也应该和资料中心的物理网络的CIDR一致,否则连不通,而之所以设定PUBLIC_START和PUBLIC_END,是因为在资料中心中,不可能所有的IP地址都给Openstack使用,另外可能搭建了VMware Vcenter,可能有物理机器,仅仅分配一个区间给Openstack来用。将Router连线到External Network
网络管理流程

Neutron的安装需求

Neutron网络整体架构

上图是在网上看过的更加细致,更为全面的一张图,图中清晰地展示了Neutron对多种L2技术(VLAN、VxLAN、GRE)共同执行的支援。图中的mellonax是intel等硬件厂商搞出的具备转发功能的网络卡,能够避免虚拟交换机带来的资源消耗,并能够加快转发速率。一块这样的网络卡能虚拟出63个VF,每个VF就好像一个独立的物理网络卡一样,通过将VF直接挂到虚拟机器上,能够实现转发效能的大幅度提高。
最后
以上介绍了OpenStack中网络元件的演进,以及Neutron组网的基本原理。想要了解更多内容敬请等待后续分享。还有福利分享:云端计算教程资料可全文下载分享
领取方式
如果需要获取到这个【核心知识点整理】文件的话,欢迎“转发+关注”,然后请进入我的主页,点选“私信”,回复“08”,即获取可免费学习资料。
待续......