开发者学堂课程【高校精品课-长安大学 -基于混合式教学的云计算课程建设:3.3.3 网络服务 开源 OpenStack】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1073/detail/15479
3.3.3 网络服务 开源OpenStack
内容介绍:
一、网络服务
二、Open Stack neutron 概念
三、Open Stack neutron 概念-网络相关
四、Open Stack Neutron 概念-安全组 (Security Group)
五、Neutron 架构图
六、Neutron 架构说明
七、Neutron 组件-Neutron Server
八、Neutron 组件-Core Plugin
九、Neutron 组件-Service Plugin
十、Neutron 组件-Agent
一、网络服务
1.OPEN STACK 的网络服务称作 Neutron ,它是 Open Stack 的核心项目为open stack提供网络及服务实现灵活和自动化的管理,new truck 在设计上,它也遵循基于软件定义网络也是 sdn 的灵活的和自动化的原则,在实线上,它又充分利用 linex 的各种网络相关的技术注入网卡虚拟化交换去心里话网络隔离等等
2.AWS Amazon VPC
3.阿里云专有网络 VPC
4. OpenStack Neutron
二、Open Stack neutron 概念
1.为了便于操作管理 Neutron 它对网络进行了一些抽象,基本的管理对象列了一些 包括网络 子网端口路由固定 IP 浮动 IP 网络可以支持 Neutron 的网络 支持多种类型的网络 它可以包括 low code、 flat 、vlan 、vxlan 和 GRE 在生产环境中一般使用的是 vlan vxlan 和 GRE
2. low code 网络是指与其它网络和节点隔离 它网络中的虚拟机只能与位于同一个节点上的同一个网络的虚拟机通讯,所以主要用于单机测试
3.flat 没有 vlan talen 网络,flat 网络中的虚拟机能与位于同一网络中的虚拟去通讯而且可以跨多个节点
4.GRE 与 vlan 类似 over 类也就是覆盖网络主要的区别就在于它使用IP包而不是使用udp包进行封装
5.子网 它是一个ipv4 或者 ipv 6的一个地址段虚拟级的 IP,都是从子网中进行分配的每一个子网都需要定义 IP 地址的范围和解码,它必须和网络呀关联,它包括一些可选属性,可以是 DNS、网关 IP、静态陆游等
6.端口是指逻辑网络交换机上的虚拟交换端口,虚拟机通过端口可以映射到通过端口对象可以映射到网络上,端口可以分配 IP 地址
7.路由是连接租户内的同一个网络或者不同网络之间的子网以及可以连接外网
8.固定 ip 是分配到每一个端口上的 ip 类似于物理环境中配置的网卡 IP 固定 IP
9.浮动 IP floating ip 是一个从外部网络创建的 一个特殊的端口,可以绑定到任意的一个网络中的端口上,它的底层就会做 net 转发 将发送给 floating ip 的流量 转发到 pot 对应的固定的 IP 地址 外界可以通 floating ip 访问虚拟机 虚拟机也可以访问外界。
三、Open Stack neutron 概念-网络相关
1.Physical Network
在物理网络环境中连接 openstech 的不同节点的网络,openstec
必须通过物理网络才能和真实的物理网络通讯,每一个物理网络可以支持的neutron中的一个或多个虚拟网络
2.Provider Network
它是由 Open Stack 管理员创建的 它直接对应于数据中心现有物理网络的一个网段 通常使用 vlan 或者 flat 模式,可以在多个租户之间共享
3.Self-service Network
自助服务网络,也叫租户网络或项目网络由 OpenStack 租户创建的,完全虚拟的,只在本网络内部连通,不能在租户间共享,不同的 Self-service 网络 网段是可以相同的,类似于我们物理环境中不同公司的内部网络,通常使用 vxlan 或者 gre 模式,它可以通过虚拟路由器的 x net 与 provider 的 network 就是 provider 网络进行通信类似于我们物理环境中公司上网需要通过路由器和防火墙
4.External Network
外部网络,也叫公共网络一种特殊的 Provider Network,连接的物理网络与数据中心或 lnternet 相通 网络中的端口 可以访问外网,一般将租户的虚拟路由器连接到网络 已实现虚拟机和外网的通信。
四、OpenStack Neutron 概念-安全组 (Security Group)
1.安全组是作用在 neutron port 上的一组策略,规定了虚拟机入口和出口流量的规则。
2.安全组基于 Linux iptables 实现。
3.安全组默认拒绝所有流量,只有添加了放行规则的流量才允许通过。
4.每个OpenStack项目中都有一个 default 默认安全组,默认包含如下规则
(1)拒绝所有入口流量、允许所有出口流量
五、Neutron 架构图
1.它的一个架构原则是统一的API核心部分最小化可插入式的开放架构可扩展
2.Neutron-Server 是部署在控制节点上的,它使用 Message Queue 与其它的Neutron 的 Agent 可以分布在计算节点网络节点上面。不同的 Agent 进行信息交互 但 Message Queue 不会用于 Neutron-Server 和其它 OpenStack 组件 比如说和 nova 进行交换信息
3.L2Agent 负责连接端口和设备,通常它是运行在 hypervide 上的,
4.L3Agent 负责连接租户网络连接到 internet 所以在真实的部署环境中 需要多个L3 来同时运行
5.DHCP Agent 用于自动配置虚拟网络
六、Neutron 架构说明
1.架构是基于一种插件式,它不同的插件提供不同的网络服务
2.Neutron Server 对外提供网络 API,并调用 Plugin 处理请求。
3.Plugin 处理 Neutronserver 的请求,维护网络状态,并调用 Agent 处理请求。
4.Agent 处理 Plugin 的请求,调用底层虚拟或物理网络设备实现各种网络功能。
5.(1)Neutron Server
(2)Core Plugin
(3)Service Plugin
①L3 Service Plugin
②LB Service Plugin
③Firewall Service Plugin
④VPN Service Plugin
(4)各种 Agent
①L2 (ovs-agent)
②L3 Agent
③DHCP Agent
④MetaData Agent
七、Neutron 组件-Neutron Server
1.Neutron Server= APls + Plugins
(1)API 定义各类网络服务
(2)Plugin 实现各类网络服务
2.通过方式就可以自由对接不同的网络的后端能力
八、Neutron 组件-Core Plugin
1.Core Plugin,主要是指 ML2 Plugin,是一个开放性框架,在一个 plugin 下,可以集成各个厂家、各种后端技术支持的 Layer 2网络服务。
(1)通过 Type Driver和Mechanism Driver 调用不同的底层网络技术,实现二层互通。
2.是提供基础的网络功能,使用不同的驱动来调用不同的底层网络实现技术实2层的互通
3.它的 drivers 就它的驱动 主要分为两种一种就称作叫 Type Driver 它定义了网络的类型 每个网络类型都对应一个 Type Driver
4.Mechanism Driver 对接各种2层网络技术和物理交换设备 比如说OVS/Bridge/SRIOV 它会从 Type Driver 获取相关的底层网络信息去确保对应的底层技术能够根据这些信息来正确的配置2层网络。
九、Neutron 组件-Service Plugin
Service Plugin用于实现高阶网络服务,例如路由、负载均衡、防火墙和VPN服务等。
十、Neutron 组件-Agent
Neutron Agent 向虚拟机提供二层和三层的网络连接、完成虚拟网络和物理网络之间的转换、提供扩展服务等。