Neutron 介绍

发布时间: 更新时间: 总字数:1722 阅读时间:4m 作者: 分享 复制网址

OpenStack Neutron 是一种 SDN(Software Defined Network)实现。Neutron发展历史:nova-network -> Quantum(F,因其他公司冲突改名) -> Neutron(H)

网络虚拟化基础

  • Linux net namespace:用来实现隔离的一套机制,不同 namespace 中的资源之间彼此不可见
  • bridge:网桥,Linux中用于表示一个能连接不同网络设备的虚拟设备,linux中传统实现的网桥类似一个hub设备,而 ovs 管理的网桥一般类似交换机
  • VETH:虚拟ethernet接口,通常以pair的方式出现,一端发出的网包,会被另一端接收,可以形成两个网桥之间的通道
  • TAP:模拟一个二层的网络设备,可以接受和发送二层网包
  • TUN:模拟一个三层的网络设备,可以接受和发送三层网包
  • iptables:Linux 上常见的实现安全策略的防火墙软件
  • 网络相关
    • GRE(General Routing Encapsulation):一种通过封装来实现隧道的方式。在 OpenStack 中一般是基于L3gre,即original pkt/GRE/IP/Ethernet
    • VLan:虚拟 Lan,同一个物理 Lan 下用tag实现隔离,可用标号为1-4094
    • VXLAN:一套利用 UDP 协议作为底层传输协议的 Overlay 实现。一般认为作为 VLan 技术的延伸替代

几种网络类型

根据可见访问不同分为:

  • Provider network:管理员创建的和物理网络有直接映射关系的虚拟网络。
  • Tenant network:租户普通用户创建的网络,物理网络对创建者透明,其配置由Neutron根据管理员在系统中的配置决定。

根据网络类型不同分:

  • Local network(本地网络):一个只允许在本服务器内通信的虚拟网络,不进行跨服务器的通信。主要用于单节点上测试。
  • Flat network:不使用 tag 的物理网络实现(一对一)的虚拟网络,可以跨节点通信。
  • GRE network(通用路由封装网络):一个使用 GRE 封装网络包的虚拟网络。GRE 封装的数据包基于 IP 路由表来进行路由,因此 GRE network 不和具体的物理网络绑定。
  • VLAN network(虚拟局域网) :基于物理 VLAN 网络实现的虚拟网络。共享同一个物理网络的多个 VLAN 网络是相互隔离的,甚至可以使用重叠的 IP 地址空间。每个支持 VLAN network 的物理网络可以被视为一个分离的 VLAN trunk,它使用一组独占的 VLAN ID。有效的 VLAN ID 范围是 1 到 4094。
  • VXLAN network(虚拟可扩展网络):基于 VXLAN(通过UDP包封装)实现的虚拟网络。同 GRE network 一样, VXLAN network 中 IP 包的路由也基于 IP 路由表,也不和具体的物理网络绑定。
  • GRE network:基于 tunnel 技术的 overlay网络,通过IP包封装实现。

几种网桥的作用

Physical L2 Switch for Private Network

Physical L2 Switch for Private Network

网络设备名称说明:

  • qbr(quantum bridge, neutron 沿用了 Quantum 的叫法,下同): Linux BridgeOpenStack 早期安全组通过 iptables 实现;iptables 只能用于 Linux Bridge 而非 OVS bridage
  • qvb(quantum veth-pair Linux-bridge-side):Linux veth pair 用来连接 Linux 桥 qbr
  • qvo(quantum veth-pair OpenvSwitch-size):Linux veth pair 用来连接 集成网桥(br-int)。集成网桥上的 qvo 端口有一个内部 VLAN 标签,当数据包到达集成网桥的时候自动贴到数据包头部的

计算节点:

  • br-int:bridge-integration,集成网桥OpenvSwitch 虚拟化出来的网桥,起到虚拟交换机的功能,主要职责:
    • 把其所在 计算节点 上的 VM 都连接到该虚拟交换机上,然后利用 br-tun 的隧道功能,实现不同 计算节点 上的 VM 连接在同一个逻辑上的 虚拟交换机 上的功能
    • 对运行在计算节点上实例的流量执行 VLAN 标记和取消标记
  • br-tun:bridge-tunnel,隧道网桥 也是 OpenvSwitch 虚拟化出来的网桥,起到 GRE 隧道层的功能,实现网络节点计算节点计算节点计算节点的互通
    • 根据 OpenFlow 规则将 VLAN 标记的流量从 集成网桥(br-int) 转换为隧道 ID。它允许不同网络的实例彼此进行通信,它支持两层网络,即 GREVXLAN
    • 基于隧道技术的 VxLANGRE 网络将使用该网桥进行通信

Neutron Routers are realized in OpenVSwitch

Neutron Routers are realized in OpenVSwitch

网络节点:

  • br-ex:bridge-external,外部网桥 通常表示负责跟外部网络通信的网桥(以混杂模式加载在物理网卡上),以允许 VM 和外部网络自由通信(VM 分配 float-ip
  • br-int:bridge-integration,集成网桥OpenvSwitch 虚拟化出来的网桥,起到虚拟交换机的功能,还实现:
    • router 功能
    • dhcp 功能
  • br-tun:bridge-tunnel,隧道网桥 和计算节点上的网络的功能一致

计算节点与网络节点

Neutron Routers are realized in OpenVSwitch

重要概念

  • network
  • subnet
  • port
  • router

参考

  1. https://docs.openstack.org/neutron/latest/contributor/internals/openvswitch_agent.html
  2. https://docs.openstack.org/neutron/latest/contributor/internals/layer3.html
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数