虚拟化一之虚拟机网络模型简介

Posted 睿江云计算

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟化一之虚拟机网络模型简介相关的知识,希望对你有一定的参考价值。



虚拟机网络模型简介:


在大多数的虚拟化解决方案,如xenkvmVMware中使用的虚拟网络模型都包括了以下几种方式,下面我们来一一进行介绍。


桥接模型


介绍:

这种模式将物理网卡当做交换机使用,工作于混杂模式中。此时必须虚拟出一个设备,用作host的网卡。这个网卡通常称为网桥设备(一般称为br0)。在vmware中,这个网桥设备会自动创建,而在xenkvm中,这个网桥需要手动进行创建。文章后半部分将介绍如何创建该网桥设备。其他虚拟机的虚拟网卡也接到由物理网卡虚拟成的交换机上。

工作过程:

如果网络报文的目标macbr0mac,则交给物理机进行网络报文处理;目标mac是虚拟网卡mac,则物理网卡接收数据后,转发数据给虚拟机。此时物理网卡相当于一台虚拟交换机。 


仅主机模型


介绍:

host上,使用软件的方式创建虚拟交换机。各虚拟机网卡连接到虚拟交换机上。而host使用软件模拟出一张网卡(一般称为vnet0),也连接到虚拟交换机上。因此各虚拟机实例能相互通信,虚拟机和物理机能通信。但是和外部网络隔离,因为物理网卡和虚拟机交换机不连接。

工作过程:

各虚拟机的网络报文通过虚拟交换机进行通信,并且虚拟机和host之间也通过虚拟交换机通信。 


路由模型


介绍:

在仅主机的模型下,如果虚拟交换机打开转发功能,让host的虚拟网卡将虚拟机的数据转发到外界。

工作过程:


Nat模型


介绍:

host上,使用软件的方式创建虚拟交换机,而host使用软件模拟出一张网卡(一般称为vnet8)。host通过vnet8连接到虚拟交换机中,然后host中提供nat服务器功能。

工作过程:

因此guest的网关必须指向vnet8 


完全隔离模型:


介绍:

host上创建虚拟交换机,只有各guest将网卡连接到虚拟交换机上。

工作过程:

类似仅主机工作模式,唯一的区别是host和各guest无法通信。仅在虚拟机内核做虚拟通道使用。

 

虚拟化场景中网卡的工作模式:


当启动一个虚拟机时,在host中会显示一张虚拟网卡。虚拟网卡和host网卡建立关联关系。实际上,虚拟网卡分成两部分,一部分在guest中,另一部分在host中。然后二者建立关联关系。如此guesthost就能互联起来,而Host中的两张虚拟网卡连接到虚拟交换机上,两个guest就能相互通信。

一般的,host中的虚拟网卡称为tap设备。


在linux上创建物理网桥:


eth0作为虚拟交换机使用,而br0当做网桥设备,接收发往host的报文。

-注:不支持NetworkManager管理,必须将其关闭。

步骤:


1. 安装bridge-utils

# yum install bridge-utils

2.创建br0eth0配置文件:

# cp ifcfg-eth0 ifcfg-br0

# vim ifcfg-et0

DEVICE="eth0"

BOOTPROTO="static"

MTU="1500"

NM_CONTROLLED="no"

ONBOOT="yes"

TYPE="Ethernet"

BRIDGE="br0"

# vim ifcfg-br0

DEVICE="br0"

BOOTPROTO="static"

DNS1="114.114.114.114"

GATEWAY="192.168.89.254"

IPADDR="192.168.89.5"

MTU="1500"

NETMASK="255.255.255.0"

NM_CONTROLLED="no"

ONBOOT="yes"

TYPE="Bridge"

3. 重启网络服务

# service network restart

可知br0已经绑定在eth0接口上。


为了避免在物理网络中出现环路,启用对生成树协议的支持:

[root@API_Server ~]# brctl stp br0 on

[root@API_Server ~]# brctl show

bridge name     bridge id     STP enabled  interfaces

br0        8000.22cd421d3c79       yes              eth0


通过命令行方式临时配置:


# brctl addbr br0

# ifconfig eth0 0 up

# brctl addif br0 eth0

# ifconfig br0 192.168.89.5 up

 提示:可通过脚本的方式,实现br0的快速创建和移除。

 

创建完毕后,使用xen或者kvm时各虚拟机就能通过br0来和外部网络通信了。

下篇文章将介绍xen的基本部署和使用,敬请期待~

以上是关于虚拟化一之虚拟机网络模型简介的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机网络模型详解,看这篇就够了(图文并茂)

深入理解java虚拟机一之走进Java

KVM虚拟化的四种简单网络模型介绍及实现

揭秘Java虚拟机:JVM设计原理与实现详细资料大全

深入Java虚拟机——安全

译文容器网络模型:CNI+vs+CNM