软件桥接是任何基于内核的虚拟机环境的必备要素,其工作原理与以太网交换机连接类似,实现虚拟机与外部网络接口的连接。本文将详细介绍有关软件桥接的技术细节。 安装基于内核的虚拟机以及部分虚拟机后,所有的虚拟机与虚拟网桥连接,虚拟网桥与物理网卡连接。虚拟网络的IP地址在内部使用意味着KVM主机之外的任何计算机都不能访问虚拟网络,虚拟机默认使用网络地址转换(NAT)连接互联网。
尽管只需要进行简单的设置,但某些配置需要更高级的设置。为便于快速入门,本文展示如何在同一个物理接口中增加第二个虚拟桥接,能够在隔离的软件定义网络中运行虚拟机。总体配置如图1所示。 图1:虚拟网络设置 定义虚拟桥接 为创建一个具有不……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
软件桥接是任何基于内核的虚拟机环境的必备要素,其工作原理与以太网交换机连接类似,实现虚拟机与外部网络接口的连接。本文将详细介绍有关软件桥接的技术细节。
安装基于内核的虚拟机以及部分虚拟机后,所有的虚拟机与虚拟网桥连接,虚拟网桥与物理网卡连接。虚拟网络的IP地址在内部使用意味着KVM主机之外的任何计算机都不能访问虚拟网络,虚拟机默认使用网络地址转换(NAT)连接互联网。尽管只需要进行简单的设置,但某些配置需要更高级的设置。为便于快速入门,本文展示如何在同一个物理接口中增加第二个虚拟桥接,能够在隔离的软件定义网络中运行虚拟机。总体配置如图1所示。
图1:虚拟网络设置
定义虚拟桥接
为创建一个具有不同虚拟桥接的设置,首先需要定义第二个虚拟网桥。网桥是通过XML文件定义的,而XML文件由libvirtd守护进程解析。默认的虚拟网桥在“/etc/libvirt/qemu/networks/default.xml”文件中定义。增加第二个网桥最简单的方式是将该文件拷贝为一个新的XML文件。如下是虚拟网桥定义文件的内容。拷贝文件后,你应该使用virsh net-edit命令编辑该文件,在该命令后以新文件名作为参数。
<network>
<name>vmnet4</name>
<uuid>f4f6fde8-03f6-4303-ae41-b4e03bd804d9</uuid>
<forward mode='nat' dev="eno1"/>
<bridge name='virbr1' stp='on' delay='5'/>
<mac address='52:54:00:c4:44:c2'/>
<ip address='192.168.4.2' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.4.2' end='192.168.4.254'/>
</dhcp>
</ip>
</network>
在定义虚拟网桥时你会发现有不同的元素,从唯一的名字一直到通用唯一标识符。如果已经通过复制旧文件创建了虚拟网桥,那么也不要忘了修改UUID。
在接下来的一行中定义转发模式。尽管NAT是默认且最常见的模式,但也可以使用路由作为转发模式。在本文中我们只关注NAT配置。本行中一个重要的选项是isdev="eno1",确定将网络接口卡enol作为虚拟网桥必须连接的网络接口。其他配置不言而喻,显示IP地址配置。
创建完虚拟网桥后,一定要使用systemctl restart libvirtd命令重启libvirtd进程。
虚拟机连接到网桥
为了将虚拟机连接到一个新定义的虚拟网桥,需要编辑其XML配置文件。应优先使用virsh edit vmname命令,vmname指的是虚拟机的名字,可以通过virsh list命令获取虚拟机的名字。在虚拟机配置中,查找"<interface>"部分,配置与如下内容类似:
<interface type='network'>
<mac address='52:54:00:46:eb:6f'/>
<source network='vmnet4'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
配置文件中最重要的部分是"<source network>"定义,需要指定你想连接的虚拟网桥的名字。该名字必须与在虚拟网桥定义中已使用的名字对应。你可以使用virsh net list命令确认虚拟网桥的名字是可用的。
确认操作
使用新虚拟网桥配置引导虚拟机后,虚拟机将自动连接到新虚拟网桥。你可以使用brctl show命令进行确认,输出的结果与如下内容类似:
[root@lab networks]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400c56bc2 yes virbr0-nic
vnet0
vnet10
vnet11
vnet12
vnet13
vnet14
vnet4
vnet5
vnet6
vnet7
vnet8
vnet9
virbr1 8000.525400c444c2 yes virbr1-nic
vnet1
vnet2
vnet3
brctl show命令结果输出中最为重要的部分是接口列。在本列中,你会看到已经增加了一个VNET接口,作为所有虚拟机连接虚拟网桥的一个网桥接口。同样地,虚拟机内有一个类似eth0的网卡,使用vnet0接口连接virbr0网桥。
相关推荐
-
回顾年度9大虚拟化技术
虚拟化管理员从未放弃追寻更好虚拟化技术,以使他们的工作更快、更易于管理以及更好地优化。 我们看到,虚拟化工具在 […]
-
16口液晶KVM用什么牌子比较好?
16口液晶KVM用什么牌子比较好?
-
深圳那家KVM延长器买的比较好呢?
深圳那家KVM延长器买的比较好呢?
-
kvm选择什么牌子好
kvm选择什么牌子好