学习OpenStack-Neutron网络服务
一、OpenStack网络服务
1、概念
·网络是OpenStack最重要的资源之一,没有网络,虚拟机将被隔离。OpenStack的网络服务最主要的功能就是为虚拟机实例提供网络连接,最初由nova的一个单独模块nova-compute实现,但是nova-compute支持的网络服务有限,无法适应大规模、高密度和多项目的云计算,现已被专门的网络服务项目Neutron所取代。
·Neutron为整个OpenStack环境提供软件定义网络支持,主要功能包括二层交换、三层路由、防火墙、VPN,以及负载均衡等。Neutron在由其他OpenStack服务(如 nova)管理的网络接口设备(如虚拟网卡)之间提供网络连接即服务。
2、作用:提供网络资源支持(通过不同的插件、代理来实现)
·通过软件定义物理设备功能
·通过指定的网络接口(虚拟接口或物理接口)提供
·可以提供二层、三层、四层、七层、VPN等功能
二、Linux网络虚拟化
OpenStack网络服务最核心的任务就是对二层物理网络进行抽象和管理
·实现虚拟化后,多个物理服务器可以被虚拟机取代,部署在同一个物理服务器上。虚拟机由虚拟机管理器(Hypervisor)实现,在Linux系统中Hypervisor通常采用KVM。在对服务器进行虚拟化的同时。也对网络进行虚拟化。
·Hypervisor为虚拟机创建一个或多个虚拟网卡(vNIC),在虚拟网卡等同于虚拟机的物理网卡。物理交换机在虚拟网络中被虚拟为虚拟交换机(vSwitch),虚拟机的虚拟网卡连接到虚拟交换机上,虚拟机交换机再通过物理主机的物理网卡连接到外部网络。
·对于物理网络来说,虚拟化的主要工作是对网卡和交换设备的虚拟化
三、Linux虚拟网桥
·与物理机不同,虚拟机并没有硬件设备,但是也要与物理机和其他虚拟机进行通信。Linux KVM的解决方案是提供虚拟网桥设备,像物理交换机具有若干网络接口(网卡)一样,在网桥上创建多个虚拟的网络接口,每个网络接口,每个网络接口再与KVM虚拟机的网卡相连。
·在Linux的KVM虚拟系统中,为支持虚拟机的网络通信,网桥接口的名称通常以vnet开头,加上从0开始顺序编号,如vnet0、vnet1,在创建虚拟机时会自动创建这些接口。虚拟网桥br1和br2分别连接到物理主机的物理网卡1和物理网卡2
四、虚拟局域网
·一个网桥可以桥接若干虚拟机,当多个虚拟机连接在同一网桥时,每个虚拟机发出的广播包会引发广播风暴,影响虚拟机的网络性能。通常使用虚拟局域网(VLAN)将部分虚拟机的广播包限制在特定范围内,不影响其他虚拟机的网络通信。
·将多个虚拟机划分到不同的VLAN中,同一VLAN的虚拟机相当于连接同一网桥上
·在Linux虚拟化环境中,通常会将网桥与VLAN对应起来,也就是将网桥划分到不同的VLAN中
·VLAN协议为802.1Q,VLAN是具有802.1Q标签的网络
五、开放虚拟交换机
·开放虚拟交换机(Open vSwitch)是与硬件交换机具备相同的特性,可在不同虚拟平台之间移植(移植的特性:可保持自己功能/特性),具有产品级质量的虚拟交换机,适合在生产环境中部署
·交换设备的虚拟化对虚拟网络来说至关重要。在传统的数据中心,管理员可以对物理交换机进行配置,控制服务器的网络接入,实现网络隔离、流量监控、Qos配置(指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术)、流量优化等目标。在云环境中,采用Open vSwitch技术的虚拟交换机可使虚拟网络的管理、网络状态和流量的监控得以轻松实现。
·Open vSwitch在云环境中的虚拟化平台上实现分布式虚拟交换机,可以将不同主机上的Open vSwitch交换机连接起来,形成一个大规模的虚拟网络
六、OpenStack网络基础服务
OpenStack网络服务提供一个API让用户在云中建立和定义网络连接。该网络服务的项目名称是Neutron。OpenStack网络负责创建和管理虚拟网络基础架构,包括网络、交换机、子网和路由器,这些设备由OpenStack计算服务Nova管理。同时,网络服务还提供防火墙和VPN这样的高级服务。可以将网络服务部署到特定主机上。OpenStack网络组件与身份服务、计算服务和仪表板等多个OpenStack组件进行整合
七、Neutron网络结构
·一个简化的典型的Neutron网络结构,包括一个外部网络、一个内部网络和一个路由器
·外部网络负责连接OpenStack项目之外的网络环境,又称公共网络。与其他网络不同,它不仅仅是一个虚拟网络,更重要的是,它表示OpenStack网络能被外部物理网络接入并访问。外部网络可能是企业的局域网(lntranet),也可能是互联网(lnternet),这类网络并不是由Neutron直接管理。
·内部网络完全由软件定义,又称私有网络。它是虚拟机实例所在的网络,能够直接连接到虚拟机。项目用户可以创建自己的内部网络。默认情况下,项目之间的内部网络是相互隔离的,不能共享。该网络由Neutron之间配置与管理
·路由器用于将内部网络与外部网络连接起来,因此,要使虚拟机访问外部网络,必须创建一个路由器
·Neutron需要实现的主要是内部网络和路由器。内部网络是对二层(L2)网络的抽象,模拟物理网络的二层局域网,对于项目来说,它是私有的。路由器则是对三层(L3)网络的抽象,模拟物理路由器,为用户提供路由,NAT等服务