博客
关于我
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/

    你可能感兴趣的文章
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    Node.js安装及环境配置之Windows篇
    查看>>
    Node.js安装和入门 - 2行代码让你能够启动一个Server
    查看>>
    node.js安装方法
    查看>>
    Node.js官网无法正常访问时安装NodeJS的方法
    查看>>
    Node.js的交互式解释器(REPL)
    查看>>
    Node.js的循环与异步问题
    查看>>
    Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
    查看>>
    nodejs + socket.io 同时使用http 和 https
    查看>>
    NodeJS @kubernetes/client-node连接到kubernetes集群的方法
    查看>>
    Nodejs express 获取url参数,post参数的三种方式
    查看>>
    nodejs http小爬虫
    查看>>
    nodejs libararies
    查看>>
    nodejs npm常用命令
    查看>>
    nodejs npm常用命令
    查看>>
    Nodejs process.nextTick() 使用详解
    查看>>
    nodejs 创建HTTP服务器详解
    查看>>
    nodejs 发起 GET 请求示例和 POST 请求示例
    查看>>
    NodeJS 导入导出模块的方法( 代码演示 )
    查看>>
    nodejs 开发websocket 笔记
    查看>>