博客
关于我
Neutron的VLAN实现模型
阅读量:190 次
发布时间:2019-02-28

本文共 1852 字,大约阅读时间需要 6 分钟。

Neutron VLAN 实现模型概述

在 Neutron 网络框架中,VLAN(虚拟局域网)是实现网络隔离和安全的核心机制。本文将从技术实现和工作原理两个维度,对 Neutron VLAN 模型进行详细阐述。

一、VM 与 VLAN ID 的内外视角

在 Neutron 的网络模型中,VLAN ID 具有内外之别,这种划分方式旨在解决不同视角下网络地址的冲突问题。具体来说:

  • 外部视角(用户视角):用户看到的网络结构是一个包含两个 VLAN(如 VLAN 100 和 VLAN 200)的网络环境。每个 VLAN 中有两个虚拟机(如 VLAN 100 中的 VM1-1 和 VM2-1,VLAN 200 中的 VM1-2 和 VM2-2)。

  • 内部视角(Host 视角):在每个 Host 内部,虚拟机看到的 VLAN ID 并非上述的 100 和 200,而是更小的编号(如 10、20、30、40)。这种差异源于 Neutron 的网络架构设计,将外部的网络地址与内部的虚拟地址进行了映射。

  • 视角 VLAN ID 说明
    外部 100、200 用户看到的网络结构,用于实现不同网络的隔离。
    内部 10、20、30、40 每个 Host 内部的虚拟网络地址,用于区分不同的虚拟机。

    这种内外视角的区别需要通过 Host 内的 Bridge 组件进行 VLAN ID 转换。Bridge 组件的作用是将外部的网络地址与内部的虚拟地址进行映射,从而实现网络的正确路由和通信。

    二、qbr 与 br-int 的功能解析

    在 Neutron 网络架构中,qbr(Quantum Bridge)和 br-int(Integration Bridge)是两个关键的 Bridge 组件。它们分别承担了不同的网络功能:

  • qbr(Quantum Bridge)

    • 实现方式:基于 Linux Bridge。
    • 功能:用于将虚拟机与 Neutron 的网络架构进行接合。qbr 的主要作用是支持 iptables 规则的安全组功能,这对于 OpenStack 的网络安全策略至关重要。
  • br-int(Integration Bridge)

    • 实现方式:基于 Open vSwitch(OVS)。
    • 功能:作为一个综合网桥,负责将不同的网络接口(如物理网卡、虚拟接口)进行整合。br-int 负责了网络的路由和转发功能。
  • qbr 和 br-int 之间通过 veth pair(虚拟网桥接口对)进行通信。每个虚拟机(VM)与 qbr 之间通过一个 tap(虚拟网络接口)接口进行连接。

    三、br-ethx 的作用

    br-ethx 是另一个关键的 Bridge 组件,其全称为 Bridge-Ethernet-External。主要功能如下:

  • 与外部网络接合:br-ethx 负责将 Neutron 网络与外部物理网络进行连接。
  • 接口类型:其接口是物理网卡接口,直接与外部网络进行通信。
  • 与 br-int 的接合:通过 veth pair 实现与 br-int 的通信。
  • br-ethx 的关键在于它连接了 Neutron 网络的外部接口,同时又保持了与内部网络架构的兼容性。

    四、内外 VLAN ID 的转换过程

    VLAN ID 的转换是 Neutron 网络架构的核心机制,其主要作用是确保网络的正确路由和通信。具体过程如下:

  • 出报文 VLAN ID 转换

    • 当数据包从 Host 内部发送到外部时,VLAN ID 会被转换为对应的外部网络地址。
    • 例如,VLAN ID 100 的数据包将被转换为对应的外部网络地址,确保数据包能够正确路由到目标网络。
  • 入报文 VLAN ID 转换

    • 当数据包从外部返回 Host 内部时,VLAN ID 也会进行相反的转换。
    • 例如,外部接收到的 VLAN ID 100 的数据包会被转换为 Host 内部的 VLAN ID 100,确保数据包能够正确定向到目标虚拟机。
  • 这种双向的 VLAN ID 转换功能,依赖于 Host 内的 Bridge 组件(如 qbr 和 br-int)的协同工作。

    总结

    Neutron 的 VLAN 实现模型通过内外视角的 VLAN ID 区别,确保了网络的高效管理和安全性。qbr 和 br-int 的协同工作提供了灵活且高性能的网络架构,而 br-ethx 则负责与外部网络的接合。这种设计理念不仅提升了网络的可管理性,也为后续的网络扩展奠定了坚实基础。

    转载地址:http://reej.baihongyu.com/

    你可能感兴趣的文章
    npm学习(十一)之package-lock.json
    查看>>
    npm安装 出现 npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! 解决方法
    查看>>
    npm安装crypto-js 如何安装crypto-js, python爬虫安装加解密插件 找不到模块crypto-js python报错解决丢失crypto-js模块
    查看>>
    npm安装教程
    查看>>
    npm报错Cannot find module ‘webpack‘ Require stack
    查看>>
    npm报错Failed at the node-sass@4.14.1 postinstall script
    查看>>
    npm报错fatal: Could not read from remote repository
    查看>>
    npm报错File to import not found or unreadable: @/assets/styles/global.scss.
    查看>>
    npm报错TypeError: this.getOptions is not a function
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
    查看>>
    npm版本过高问题
    查看>>
    npm的“--force“和“--legacy-peer-deps“参数
    查看>>
    npm的安装和更新---npm工作笔记002
    查看>>
    npm的常用操作---npm工作笔记003
    查看>>
    npm的常用配置项---npm工作笔记004
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    npm编译报错You may need an additional loader to handle the result of these loaders
    查看>>
    npm设置淘宝镜像、升级等
    查看>>
    npm设置源地址,npm官方地址
    查看>>