在Ubuntu环境下为Qemu配置桥接网络


在Qemu网络中,为了实现虚拟机网卡和真实物理网络的连通,就需要使用桥接网络。通常情况下qemu的桥接网络是通过使用tap虚拟网卡来实现的,具体原理请参考相关文档,这里只介绍配置桥接网络的方法:

1. 安装tap相关工具

  1. sudo apt-get install uml-utilities  

2. 配置网桥

  1. sudo vi /etc/network/interfaces  

修改为以下内容:

  1. auto lo   
  2. iface lo inet loopback   
  3. auto br0   
  4. iface br0 inet static   
  5. bridge_ports eth0 tap0   
  6. address 10.0.7.6   
  7. netmask 255.255.0.0   
  8. network 10.0.0.0   
  9. broadcast 10.0.255.255   
  10. gateway 10.0.0.2  

3. 创建tap网络启动脚本

  1. sudo vi /etc/qemu-ifup  

创建qemu-ifup脚本,写入以下内容:

  1. #!/bin/sh   
  2. #set -x   
  3. switch=br0   
  4. if [ -n "$1" ];then  
  5.         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1  
  6.         /usr/bin/sudo /sbin/ip link set $1 up   
  7.         sleep 0.5s   
  8.         /usr/bin/sudo /usr/sbin/brctl addif $switch $1  
  9.         exit 0   
  10. else  
  11.         echo "Error: no interface specified"  
  12.         exit 1   
  13. fi  

4. 创建一个空的tap网络关闭脚本(避免关闭虚拟机时的一个警告)

  1. sudo vi /etc/qemu-ifdown  

其内容如下:

  1. #!/bin/sh  

如此配置完成后,即可使用以下命令启动qemu,直接使用网桥,而不必作其他配置(FILENAME为镜像文件路径):
  1. sudo qemu-system-x86_64 -hda $FILENAME -net nic,model=e1000,macaddr=DE:AD:BE:EF:3E:10 net tap -m 512 -vnc 10.60.1.124:10  

相关内容