KVM 桥接

本文以 Ubuntu 10.04 主机说明 , 其他平台大同小异.
妳的机子能不能支持 KVM 以及如何加载相应的模块直至如何安装 KVM 不在本文的讨论范围之内 . 妳可以参见这里 , 这里 . 我这里讨论的是如何桥接 .

   gateway —– eth0<– br0 –> tap0 ….(tap 是给 guest 使用的接口) — eth0(Guest) 

110.20.133.20      10.20.133.203

说明一下我这边的环境 :
Host : Ubuntu 10.04 (IP : 10.20.133.203 , gateway : 10.20.133.20 , netmask : 255.255.255.0)
Guest : CentOS 5.2 (IP : 10.20.133.204 , gateway : 10.20.133.20 , netmask : 255.255.255.0)

清空 Iptables (这是比较简单的方法 , 妳高兴也可以一条一条的往下加)
# iptables -F
# iptables -Z
# iptables -X
# iptables -P INPUT ACCEPT
# iptables -L -n
注意查看 Iptables 里面的链.

关闭 Network-manager
# service network-manager stop

新增一个网桥
# brctl addbr br0

将 eth0 加进网桥 , 清除它的地址
# ifconfig eth0 0.0.0.0

将 eth0 桥接到 br0 上
# brctl addif br0 eth0

将 eth0 原先的地址给予网桥
# ifconfig br0 10.20.133.203 netmask 255.255.255.0 up

添加路由
# route add -net 10.20.133.0  netmask 255.255.255.0 br0
# route add default gw 10.20.133.20 br0

新增一个 tap0 界面 , 并将访问权给予 root 这个用户(妳以后登录 CentOS 需要以 root 的身份登录)
# tunctl -b -u root

开启 tap0
# ifconfig tap0 up

桥接至 br0
# brctl addif br0 tap0

启动 Guest
# qemu-system-x86_64 ~/centos -m 512 -net nic,macaddr=00:11:22:33:44:55 -net tap,ifname=tap0,script=no

可能会出现如下错误 :
pci_add_option_rom: failed to find romfile “pxe-rtl8139.bin”
安装 kvm-pxe 即可
# apt-get install kvm-pxe

开启 Guest 后,手动配置 Ip , Gateway , Netmask .

重启网络
# service network restart

测试结果
# ping 10.20.133.20
# ping 10.20.133.203

一山容不得二虎 , 这话在 Linux 的虚拟化上也适用 . 加载了 kvm-intel 后 , VirtualBox 就不可以使用了 ! 所以如果要使用 VirtualBox 的话 , 需要先将 kvm-intel 给停止.
# rmmod kvm-intel

或者卸载该模块
# modprobe -r kvm-intel

除了上面的桥接方式外 , 还有其余几种连接方式 , 感兴趣的请猛击这里 .
 

  • dai

    我来杀个花

    • http://jaseywang.info jaseywang

      去申请个 gravatar , 这样妳就有头像了~

      • dai

        这样?

        • http://jaseywang.info jaseywang

          Yep

  • chobit_s

    不能会E文…mark!