libvirt kvm 虚拟机上网 – Bridge桥接
2014-11-05 12:13
363 查看
通过艰难的过程,终于使用libvirt安装完qemu kvm虚拟机了.但是发现虚拟机不能上网.虚拟机想要上网,有很多中方法.
先说两个定义:Guest机器为虚拟机,Host机器为开机运行的真实机器.
查看libvirt的教程,看到网络配置有许多中方式.详情可以访问http://libvirt.org/formatdomain.html#elementsNICS
NAT (默认上网) 虚拟机利用host机器的ip进行上网.对外显示一个ip
Bridge 将虚拟机桥接到host机器的网卡上,guest和host机器都通过bridge上网.对外不同的ip,
…
Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。
桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。
Bridge桥接原理
如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。
首先可以按照ibm 文章的虚拟机配置一下host机的网络情况,这个的目的就是让host生成一个不日多个桥接,大家都通过这个桥接上网.下面我们来看看具体的步骤.
确保你想使用bridge网桥的网卡能够为kvm虚拟机模块提供网络连接能力并且网卡是否可以工作.这个网卡应该要能够给guest的kvm虚拟机提供相同的网络支持.接下来例子说明了网卡的配置,并且可以被外部网络访问.这个例子中,使用eth0网卡.
备份网络配置到不同的目录下,将来可以用来恢复网络配置,. 根据下面的命令将网络脚本
注意:不要把文件copy到/etc/sysconfig/network-scripts/目录或者其子目录
进入
为Linux的bridge创建一个新的配置文件为
具体的内容是基于已有的配置文件来进行的.
编辑配置文件,让数据包通过bridge(网桥)进行上网.你的网络配置很可能是通过静态ip(BOOTPROTO=static)上网或者是从DHCP服务器获得ip(BOOTPROTO=dhcp)上网的.
如果你的网络是通过静态ip地址来配置的,那么你的配置很可能是和下面一样的:
下面的表格显示了eth0和br0的静态ip配置内容,可以根据下面进行编辑
static ip配置
下面表格显示的eth0和br0的DHCP配置情况.
HDCP配置
重启网络以验证网络配置是否工作.
如果网络配置不正确,网络连接将会断开,你的电脑将失去访问能力.这样的话,检查以下配置文件,然后使用以下的命令重启以下网络服务:
向文件
通过运行
注意:你可能发现eth0的网络信息里面没有ipv4的地址了.或者你的GUI界面的网络显示你是断网的. 这不用担心.因为eth0的网络能力已经通过br0进行工作.你的host网络还是能正常工作的.
也可以使用以下的命令来查看网桥是否工作.
如果是类似的输出,那么你的Linux的Bridge网桥就配置的差不多了.
在虚拟机的xml配置文件进行设置网络的连接方式为bridge桥接,并且桥接的设备为br0.其中mac地址要改变!不然MAC相同,局域网MAC地址相同的电脑不能上网.
我使用的是CentOS Minimal Installation的发行版.使用以下命令就可以进行上网了. 一开始只有lo显示.没有看到eth0,后来想到了eth0被禁用了,于是开启即可.
现在还有个问题是,网络不随开机启动. 我打开/etc/sysconfig/network-scripts/ifcfg-eth0显示:
虽然设置了开机启动,但是每次开机都需要运行上面的两个命令.这样就没办法远程控制主机了.
后来发现是udev弄的.udev在/etc/udev/rules.d/下面搞了一个持久命名规则(persistent-net.rules),对于网卡的持久命令,就采取了MAC地址的匹配方式
原来虚拟机安装后自带MAC网卡地址和我xml定义的网卡不一样.于是我就将虚拟机的MAC网卡提取出来,替换xml文件的MAC网卡信息.然后undefine和define以下虚拟机.
重启虚拟机,发现这次网络能够自动开机获得了.
/article/11722218.html
http://www.linuxtopia.org/online_books/rhel6/rhel_6_virtualization/rhel_6_virtualization_sect-Virtualization-Network_Configuration-Bridged_networking_with_libvirt.html
IBM
– Configuring the network
/article/4202615.html
/article/8292276.html
先说两个定义:Guest机器为虚拟机,Host机器为开机运行的真实机器.
查看libvirt的教程,看到网络配置有许多中方式.详情可以访问http://libvirt.org/formatdomain.html#elementsNICS
NAT (默认上网) 虚拟机利用host机器的ip进行上网.对外显示一个ip
Bridge 将虚拟机桥接到host机器的网卡上,guest和host机器都通过bridge上网.对外不同的ip,
…
Bridge桥接原理
Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。
Bridge桥接原理
如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。
在host机器配置桥接网络
首先可以按照ibm 文章的虚拟机配置一下host机的网络情况,这个的目的就是让host生成一个不日多个桥接,大家都通过这个桥接上网.下面我们来看看具体的步骤.
查看网卡是否工作
确保你想使用bridge网桥的网卡能够为kvm虚拟机模块提供网络连接能力并且网卡是否可以工作.这个网卡应该要能够给guest的kvm虚拟机提供相同的网络支持.接下来例子说明了网卡的配置,并且可以被外部网络访问.这个例子中,使用eth0网卡.
备份NETWORK-SCRIPTS网络脚本文件
备份网络配置到不同的目录下,将来可以用来恢复网络配置,. 根据下面的命令将网络脚本ifcfg-eth0网卡到
/root目录:
进入NETWORK-SCRIPTS目录
进入/etc/sysconfig/network-scripts/目录.
为桥接新建配置文件
为Linux的bridge创建一个新的配置文件为/etc/sysconfig/network-scripts/ifcfg-br0,这里
br0是bridge网桥的名字,同eth0类似.使用以下命令
编辑BRIDGE网桥配置文件
编辑配置文件,让数据包通过bridge(网桥)进行上网.你的网络配置很可能是通过静态ip(BOOTPROTO=static)上网或者是从DHCP服务器获得ip(BOOTPROTO=dhcp)上网的.如果你的网络是通过静态ip地址来配置的,那么你的配置很可能是和下面一样的:
/ETC/SYSCONFIG/NETWORK-SCRIPTS/IFCFG-ETH0 | /ETC/SYSCONFIG/NETWORK-SCRIPTS/IFCFG-BR0 |
---|---|
DEVICE=eth0 TYPE=Ethernet HWADDR=00:14:5E:C2:1E:40 ONBOOT=yes NM_CONTROLLED=no BRIDGE=br0 | DEVICE=br0 TYPE=Bridge NM_CONTROLLED=no BOOTPROTO=static IPADDR=10.10.1.152 NETMASK=255.255.255.0 ONBOOT=yes |
/ETC/SYSCONFIG/NETWORK-SCRIPTS/IFCFG-ETH0 | /ETC/SYSCONFIG/NETWORK-SCRIPTS/IFCFG-BR0 |
---|---|
DEVICE=eth0 TYPE=Ethernet HWADDR=00:14:5E:C2:1E:40 ONBOOT=yes NM_CONTROLLED=no BRIDGE=br0 | DEVICE=br0 TYPE=Bridge NM_CONTROLLED=no BOOTPROTO=dhcp ONBOOT=yes |
重启网络服务
重启网络以验证网络配置是否工作.如果网络配置不正确,网络连接将会断开,你的电脑将失去访问能力.这样的话,检查以下配置文件,然后使用以下的命令重启以下网络服务:
禁用网络过滤器
向文件/etc/sysctl.conf添加以下代码:
重新加载KERNEL参数
验证配置是否成功
通过运行ifconfig来验证以下配置是否成功.如果出现两个项,即网桥的br0和现在在工作的eth0:
也可以使用以下的命令来查看网桥是否工作.
为Guest虚拟机配置网络
配置GUEST虚拟机的XML文件
在虚拟机的xml配置文件进行设置网络的连接方式为bridge桥接,并且桥接的设备为br0.其中mac地址要改变!不然MAC相同,局域网MAC地址相同的电脑不能上网.
在虚拟机配置网络
我使用的是CentOS Minimal Installation的发行版.使用以下命令就可以进行上网了. 一开始只有lo显示.没有看到eth0,后来想到了eth0被禁用了,于是开启即可.后来发现是udev弄的.udev在/etc/udev/rules.d/下面搞了一个持久命名规则(persistent-net.rules),对于网卡的持久命令,就采取了MAC地址的匹配方式
原来虚拟机安装后自带MAC网卡地址和我xml定义的网卡不一样.于是我就将虚拟机的MAC网卡提取出来,替换xml文件的MAC网卡信息.然后undefine和define以下虚拟机.
重启虚拟机,发现这次网络能够自动开机获得了.
参考资料
/article/11722218.htmlhttp://www.linuxtopia.org/online_books/rhel6/rhel_6_virtualization/rhel_6_virtualization_sect-Virtualization-Network_Configuration-Bridged_networking_with_libvirt.html
IBM
– Configuring the network
/article/4202615.html
/article/8292276.html
相关文章推荐
- libvirt kvm 虚拟机上网 – Bridge桥接
- libvirt kvm 虚拟机上网 – Bridge桥接
- 【转】libvirt kvm 虚拟机上网 – Bridge桥接
- libvirt kvm 虚拟机上网 – Bridge桥接(can be used, good)
- libvirt kvm 虚拟机上网 – Bridge桥接
- Ubuntu14.04+KVM配置虚拟机桥接(bridge)
- RHEL6.4 KVM 桥接上网的设置
- kvm-libvirt的使用:创建虚拟机与快照
- Linux:宿主机通过桥接方式连接的VMware内部Linux14.04虚拟机(静态IP)实现上网方案
- Kvm虚拟机NAT、桥接网络模式配置
- 物理机拨号上网 虚拟机不能通过桥接访问Internet,解决办法
- Linux:虚拟机桥接上网
- 虚拟机下桥接bridge
- Ubuntu虚拟机用桥接方式上网
- kvm/qemu虚拟机桥接网络创建与配置
- KVM修改网络模式为Bridge后,原有虚拟机该如何修改配置
- kvm-libvirt的使用:创建虚拟机与快照
- 使用 libvirt创建和管理KVM虚拟机
- 虚拟机桥接上网配置
- 虚拟机和真机桥接上网