美文网首页
OpenStack Neutron初探

OpenStack Neutron初探

作者: 墨痕hz | 来源:发表于2018-06-06 15:57 被阅读199次

    1.什么是OpenStack

    OpenStack是一个开源的IAAS(基础设施即服务)云计算平台,让任何人都可以自行建立和提供云端运算服务,具体可以从devstack脚本开始熟悉他。OpenStack由一系列相互关联的项目提供云基础设施解决方案的各个组件,核心项目9个,分别为:

    • 计算(compute)--Nova
    • 网络和地址管理 --Neutron
    • 对象存储(Object)--Swift
    • 块存储(Block)--Cinder
    • 身份(Identity)--keystone
    • 镜像(Image)--Glance
    • UI界面(Dashboard)--Horizon
    • 测量(Metering)--Ceilometer
    • 编排(Orchestration)--Heat

    如图所示:

    OpenStack 几个核心项目

    2.Neutron发展

    OpenStack网络服务,现已由之前的Quantum改名为Neutron。Neutron是OpenStack核心项目之一,提供云计算环境下虚拟网络功能。Neutron新增加功能:

    1. Multi-Vendor-Support:同时支持多种物理网络类型,支持Linux Bridge、Hyper-V和OVS bridge计算节点共存;
    2. Neutron-Fwass:支持防火墙服务;
    3. VPNass:支持节点间VPN服务;
    4. More-Vendors:更过的网络设备支持和开源SDN实现完善和提高,新增加了ML2(The Modular layer2)插件。

    OpenStack Nova-network网络模型

    在OpenStack网络组件没有独立出来之前,OpenStack最初的nova-network网络模型,如下图:

    单一平面网络

    单一平面网络的缺点:

    1. 存在单一网络瓶颈,缺乏可伸缩性。
    2. 缺乏合适的多租户隔离。

    OpenStack Neutron网络模型

    OpenStack nova-network独立称为单独的组件Neutron后,形象的网络模型的多平面网络、混合平面私有网络。如下图:

    多平面网络 混合平面私有网络 通过私有网络实现运营商路由功能 通过私有网络实现每个租户创建自己专属的网络区段

    3.Neutron网络创建过程

    Neutron网络目的是为OpenStack云更灵活的划分物理网络,在多租户环境下提供给每个租户独立的网络环境。另外,Neutron提供API来实现这种目标。Neutron中用户可以创建自己的网络对象,如果要和物理环境下的概念映射的话,这个网络对象相当于一个巨大的交换机,可以拥有无限多个动态可创建和销毁的虚拟端口。创建Neutron网络过程如下:

    1. 首先管理员拿到一组可以在互联网上寻址的IP地址,并且创建一个外部网络和子网。
    2. 租户创建一个网络和子网。
    3. 租户创建一个路由器并且连接租户子网和外部网络
    4. 租户创建虚拟机。

    4.OpenStack网络类型

    一个标准的 OpenStack 网络设置有 4 个不同的物理数据中心网络:

    • 管理网络:用于 OpenStack 各组件之间的内部通信。
    • 数据网络:用于云部署中虚拟数据之间的通信。
    • 外部网络:公共网络,外部或 internet 可以访问的网络。
    • API 网络:暴露所有的 OpenStack APIs,包括 OpenStack 网络 API 给租户们。


      OpenStack 网络类型

    5.Neutron 服务网络管理的三种模式

    Flat模式

    Flat 模式和 FlatDHCP 模式其实区别不大,都是基于网桥网络,只是 FLat 模式需要管理员手动配置(包括配置网桥和外部的 DHCP 设备)。

    Flat 网络拓扑

    FlatDHCP 模式

    这种模式下与 Flat 模式不同的地方在于有一个 DHCP 进程,每一个运行 nova-network 进程的节点(网络控制节点/nove-network 主机)就是一个单独的网络。Nova 会在 nova-network 主机建立网桥(默认名称 br100,配置项 flat_network_bridge=br100),并给该网桥指定该网络的网关 IP,同时 Nova 在网桥处起一个 DHCP 进程,最后,会建立 iptables 规则(SNAT/DNAT)使虚拟机能够与外界通信,同时与一个 metadata 服务器通信以取得 cloud 内的信息。

    计算节点负责创建对应节点的网桥,此时的计算节点网卡可以不需要 IP 地址,因为网桥把虚拟机与 nove-network 主机连接在一个逻辑网络内。虚拟机启动时会发送 dhcpdiscover 以获取 IP 地址。虚拟机通往外界的数据都要通过 nova-network 主机,DHCP 在网桥处监听,分配 fixed_range 指定的 IP 段。

    FlatDHCP 网络拓扑

    这种部署方式的缺点----单节点故障、无二层隔离(即所有的虚拟机都在一个广播域)。

    VLAN 模式

    VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。VLAN 是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。

    VLAN 模式与 Flat 模式的区别

    在 Flat 模式下,管理员的工作流程应该是这样的:

    1. 为所有租户创建一个 IP 池:

      nova-manage network create --fixed_range_v4=10.0.0.0/16 –label=public
      
    2. 创建租户

    3. 租户创建虚拟机,为虚拟机分配 IP 池中的可用 IP

    在 VLAN 模式下流程如下:

    1. 创建新的租户,并记下租户的标识

    2. 为该租户创建独占的 fixed_ip 段:

      nova-manage network create --fixed_range_v4=10.0.1.0/24 --vlan=102 --project_id="tenantID"

    3. 租户创建虚拟机,从租户的私有 IP 段内分配 IP 给虚拟机

    因此,与 Flat 模式相比,VLAN 模式为网络增加了:将网络与租户关联和为网络分配一个 VLAN 号。

    参考:OpenStack 网络:Neutron 初探

    相关文章

      网友评论

          本文标题:OpenStack Neutron初探

          本文链接:https://www.haomeiwen.com/subject/thgbsftx.html