KVM 网络虚拟化基础 - 天天5分钟玩转 OpenStack(9)

 

网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大。 但由于网络是虚拟化中很是重要的资源,因此再硬的骨头也必需要把它啃下来。 web

为了让你们对虚拟化网络的复杂程度有一个直观的认识,请看下图 网络

这是 OpenStack 官网上给出的计算节点(能够理解为 KVM 的宿主机)虚拟网络的逻辑图,上面的网络设备不少,层次也很复杂。
我第一次看到这张图,也着实被吓了一跳。 架构

不过你们也不要怕,万丈高楼从地起,虚拟网络再复杂,也是由一些基础的组件构成的。只要咱们将这些基础组件的概念和它们之间的逻辑关系搞清楚了,就能深入理解虚拟网络的架构,那么云环境下的虚拟化网络也就不在话下了。 学习

下面咱们来学习网络虚拟化中最重要的两个东西:Linux Bridge 和 VLAN spa

Linux Bridge 基本概念

假设宿主机有 1 块与外网链接的物理网卡 eth0,上面跑了 1 个虚机 VM1,如今有个问题是: 如何让 VM1 可以访问外网? orm

至少有两种方案 blog

  1. 将物理网卡eth0直接分配给VM1,但随之带来的问题不少: 宿主机就没有网卡,没法访问了; 新的虚机,好比 VM2 也没有网卡。 下面看推荐的方案 资源

  2. 给 VM1 分配一个虚拟网卡 vnet0,经过 Linux Bridge  br0 将 eth0 和 vnet0 链接起来,以下图所示
    it

Linux Bridge 是 Linux 上用来作 TCP/IP 二层协议交换的设备,其功能你们能够简单的理解为是一个二层交换机或者 Hub。多个网络设备能够链接到同一个 Linux Bridge,当某个设备收到数据包时,Linux Bridge 会将数据转发给其余设备。 class

在上面这个例子中,当有数据到达 eth0 时,br0 会将数据转发给 vnet0,这样 VM1 就能接收到来自外网的数据; 反过来,VM1 发送数据给 vnet0,br0 也会将数据转发到 eth0,从而实现了 VM1 与外网的通讯。

如今咱们增长一个虚机 VM2,以下图所示

VM2 的虚拟网卡 vnet1 也链接到了 br0 上。 如今 VM1 和 VM2 之间能够通讯,同时 VM1 和 VM2 也均可以与外网通讯。

有了上面的基础知识,下一节将演示如何在实验环境中实现这套虚拟网络。

相关文章
相关标签/搜索