虚拟网络的逻辑图(OpenStack 官网):
网络虚拟化中最重要的两个东西:Linux Bridge 和 VLAN
Linux Bridge 基本概念
举例:宿主机有 1 块与外网连接的物理网卡 eth0,上面跑了 1 个虚机 VM1,让 VM1 能够访问外网,有两种方案(推荐第二种):
(一) 将物理网卡eth0直接分配给VM1,但随之带来的问题很多:
宿主机就没有网卡,无法访问了;
新的虚机,比如 VM2 也没有网卡
(二)给 VM1 分配一个虚拟网卡 vnet0,通过 Linux Bridge br0 将 eth0 和 vnet0 连接起来,如下图所示:
Linux Bridge 是 Linux 上用来做 TCP/IP 二层协议交换的设备,其功能大家可以简单的理解为是一个二层交换机或者 Hub。
多个网络设备可以连接到同一个 Linux Bridge,当某个设备收到数据包时,Linux Bridge 会将数据转发给其他设备。
在上面这个例子中,当有数据到达 eth0 时,br0 会将数据转发给 vnet0,这样 VM1 就能接收到来自外网的数据;
反过来,VM1 发送数据给 vnet0,br0 也会将数据转发到 eth0,从而实现了 VM1 与外网的通信。
现在我们增加一个虚机 VM2,如下图所示:
VM2 的虚拟网卡 vnet1 也连接到了 br0 上。 现在 VM1 和 VM2 之间可以通信,同时 VM1 和 VM2 也都可以与外网通信。
-----------------------------------------------------引用来自-----------------------------------------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587933&idx=1&sn=958532f257d5b4ba575f297a0b66db25&chksm=8d3081c4ba4708d2199ddfaa151e93da2905eab86e963f194d1a7f90bb77535e5de5b7f83d52&scene=21#wechat_redirect