OpenStack网络管理
目录
OpenStack网络管理
一、Linux网络虚拟化基础
二、Neutron简介
三、Neutron概念
四、Neutron架构
五、Neutron典型操作及流程
六、Neutron网络流量分析
一、Linux网络虚拟化基础
Linux下的网络虚拟化本质就是将原本物理网络中的网卡、物理虚拟机以软件应用的形式在操作系统中虚拟化。通过系统软件实现虚拟的网卡和虚拟的交换机以实现一个物理设备内的多重网络交换。正常情况下,一个物理网卡只能有一个IP,转换也必须要物理设备实现,但是在虚拟化的场景下,每个虚拟机都会有自己独特的网络需求。所以如何让一个物理设备的虚拟环境能够满足不同虚拟机的需求,就成为了需要解决的问题。通过虚拟化,我们将全套的物理网络在服务器中进行了虚拟实现
本质就是物理结构的软件化,通过软件实现了物理网络的所有功能
在常规的网络虚拟化中,我们需要对网卡和交换机做虚拟化。然后制定一些隔离规则,保证虚拟网络安全性
常规的网卡虚拟化方式
(1)TAP:TAP是目前常用的虚拟化解决方案,TAP技术可用实现桥接、NAT、仅主机网络
-
桥接:指的是虚拟机的网卡直接复制物理机网卡的信息,等同于给虚拟机挂上了物理网卡上网,中间不需要做任何转换
-
NAT模式:指的是虚拟机内部的网卡和物理机的网卡配置不同,所以我们需要将虚拟机的配置转换为物理机的配置来实现网络联通,流量发出虚拟机网卡配置转换为物理机网卡配置,流量返回物理机网卡配置转换为虚拟机网卡配置,但是需要注意的是NAT并不是改变了网卡配置,改变的是发出的流量的信息,改变的是封装中控制信息的内容,五物理机底层需要记录物理网卡和虚拟网卡的映射关系,以保证流量控制信息在进出时正常的转换
-
仅主机:指的是只在物理机内部交换信息,不对外发送数据。一般用于物理机内部的多个虚拟机之间的信息交互
-
TAB网卡主要是管理Bridge进行流量转发,可以关联OVS
(2)TUN:Tunnel隧道网络,一般常用于VPN技术以及VXLAN技术,其主要的目标是为了打破物理网络的隔离特性,在物理网络的基础上建立一个虚拟的网络架构。通过在物理网络上架构隧道,可用实现物理网络和虚拟网络的隔离,不论物理网络怎么建设,虚拟网络都可用自定义,实现了每个用户的独立网络建设
-
Tun网卡主要是关联OVS进行流量转发,通过关联Bridge可以实现基本的网络转发
(3)VETH:虚拟以太网,一般是用于创建子接口使用的,这部分技术使用的不是很多,主要是负责在一个物理网卡上实现多种流量的传输。例如eth0可用创建出eth0.1
交换机虚拟化
(1)Linux Bridge:Linux网桥
(2)Open vSwitch:开放虚拟交换机
Linux Bridege和OVS本质上都是交换机虚拟化,都可以实现虚拟网卡的接入。为虚拟网卡提供相关网络服务功能,但是Linux Bridege网桥只能提供基本的网络服务,满足上述网卡的通信需求。OVS就可以在基本的网络服务之上提供高级管理功能和更多的网络服务方式
-
Linux Bridege只能在物理机内部实现,OVS可以跨物理机实现
如何隔离一个物理机中不同虚拟机的网络?
(1)由于虚拟网卡和虚拟交换机拥有和物理网络设备意义的功能,所以我们完全可通过在虚拟网络中做网络配置,实现网络隔离,比如vlan或者将不同的网络分配不同网段的IP地址
-
网络隔离可以理解为软隔离,需要大同网络的时候,可以通过配置实现
(2)NameSpace命名空间法通过创建隔离域的形式实现网络隔离的,在不同域中的虚拟机都无法发现对方的存在,网络自然可以隔离开
-
命名空间是硬隔离,等于虽然资源源自于同一台设备,但是虚拟机层面都直接隔离开,网络无法打通
二、Neutron简介
(1)Neutron的基本对象
-
网络:也可以被称为VPC网络,每一个网络等于是一个跨物理设备的大型网络架构,网络和网络之间是完全隔离的,在网络中所包含的所有的虚拟机或其他设备都需要让自己的IP属于该网络才可以通信
-
子网:子网是网络中的不同网段的网络,等同于在大型网络中划分vlan,子网是分配给虚拟机的单位,里面包含了DHCP服务。虚拟机得到分配的IP一定归属于某一个子网,而所有的子网都应该归属于网络
-
路由:路由是一种记录从源到目的之间的通信传递方式的信息,比如从虚拟机到公网的转发方式和转发路径信息。网络中所有的路由统一整合起来就成为了路由表。路由表记录了当前网络的所有转发信息
(2)Neutron基本关联对象
-
网络:代表当前创建的网络的全局
-
子网:网络的拆分网段
-
端口:一般是挂载给虚拟机的虚拟网卡,端口的IP源于子网,其一定要属于子网的范围,可以有手动分配和DHCP两种方式
-
路由:记录了虚拟机访问的路径和方式
-
Floating IP:浮动IP,一般是指公网IP地址
三、Neutron概念
四、Neutron架构
五、Neutron典型操作及流程
六、Neutron网络流量分析
Linux Bridege + Flat/VLAN网络
Open vSwitch + VXLAN网络
(1)VXLAN简介
数据中心网络设计
在传统网络中,用户的流量往往是对外访问,所以采用三层结构组网还是二层结构组网都不会有很大的性能差距。但是在数据中心网络中,往往流量的转发是基于内部的转发形式。这就导致如果数据中心使用的是三层架构,就很容易出现流量被堆积在核心层
-
网络架构设计一般是分为了接入层、汇聚层、核心层
接入层主要负责是终端接入,端口多流量小
汇聚层主要负责将接入层的流量做汇聚,以实现流量汇聚转发
核心层负责了全局的跨网络流量转发,核心层设备接口少,但是流量大
-
东西向、南北向流量:东西向流量指的是同层流量转发,一般针对的是内部同级别的设备之间的流量互传。南北向指的是纵向流量转发,一般是内部到外部的流量转发
传统网络南北向流量占到了转发总流量的80%以上
数据中心的流量大部分是内部互转,所以东西向流量占到了总流量的85%以上
传统三层网络结构适用于传递南北向流量,数据中心网络适合于东西向流量转发
数据中心使用三层架构会造成流量拥塞,所以必须要采用新架构减少影响,尽量让流量在内部互传,不要到达核心层,所以数据中心为了避免流量大量的转发到核心层,就将核心流量都在二层完成。适配于这种结构的网络就叫做大二层网络
-
为了让流量可以在二层完成互转,这就对二层设备的性能提出了要求,所以数据中心有专门的数据中心通信设备。传统网络交换机都是S系列,园区网交换机就是CE系列
如果所有的东西向流量都需要在二层完成转发,那么如果实现基于物理网络架构的逻辑网络设计?这种情况下就需要使用到VXLAN技术
在云架构下,每个用户都需要使用网络,但是根据用户网络架构的不同,IP地址是会出现冲突的。如何实现在一个大型网络中为不同的用户维护相同的IP呢?
想要实现相同IP不冲突,就需要让这两组IP不要互相发现对方,所以需要通过隔离来进行实现,每个用户都是一个独立的完全可用的隔离网络。通过VXLAN技术可以实现网络的隔离,因为隔离的不是物理网络而是虚拟网络
VXLAN虚拟扩展本地局域网本质上是一种隧道技术,传统的隧道技术只构建1个或者是一类隧道。VXLAN建立了若干条隧道,然后给隧道可以做分组,将相同的一类隧道展现出来的时候,就形成了一个隧道网络,这个隧道网络就是虚拟网络。一个物理链路上可以有若干条隧道。根据隧道网络的ID不同,在一个物理网上,可以有多个虚拟网络
(2)华为云Stack节点内部网络结构
(3)华为云Stack网络服务流量走向