IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    qemu-kvm桥接网络

    枯木 (1988.wulei@gmail.com)发表于 2013-12-10 22:22:00
    love 0

    手动桥接

    qemu-kvm安装或者启动虚拟系统的时候如果需要和外界通信,那么就要设置网络桥接

    1
    2
    3
    
    /usr/libexec/qemu-kvm -m 1024 \
    -drive file=/data/images/CentOS6_4.qcow2,if=virtio \
    -net nic,model=virtio -net tap,script=no -nographic -vnc :0
    

    使用-net tap,script=no方式启动之后,系统会生成tapX的虚拟网卡,默认是DOWN状态的

    1
    2
    3
    
    # ip link show dev tap0
    37: tap0:  mtu 1500 qdisc noop state DOWN qlen 500
        link/ether d2:b0:af:7b:23:0f brd ff:ff:ff:ff:ff:ff
    

    如果想和外界通信,可以手动执行生效,如下所示当前与br0桥接的设备,并没有tap相关的网卡

    1
    2
    3
    4
    5
    
    # brctl show br0
    bridge name   bridge id       STP enabled interfaces
    br0       8000.b8975a626020   no      eth0
                              vnet0
                              vnet1
    

    我们需要把tap0也桥接到br0下以便和外界通信,方法如下

    1
    2
    3
    4
    5
    6
    7
    8
    
    # ip link set tap0 up        //使tap0状态变为up
    # brctl addif br0 tap0        //桥接tap0到br0
    # brctl show br0          
    bridge name   bridge id       STP enabled interfaces
    br0       8000.b8975a626020   no      eth0
                              tap0
                              vnet0
                              vnet1
    

    brctl delif br0 tap0删除桥接网络,qemu-kvm工具在客户机关闭时会自动解除TAP设备的bridge绑定,所以这一步无需操作

    脚本实现

    1
    2
    3
    
    /usr/libexec/qemu-kvm -m 1024 \
    -drive file=/data/images/CentOS6_4.qcow2,if=virtio \
    -net nic,model=virtio -net tap,script=/tmp/qemu-ifup.sh -nographic -vnc :0
    

    如上tap,script=/tmp/qemu-ifup.sh指定script网络配置启动前启动脚本,脚本内容如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    # cat /tmp/qemu-ifup.sh 
    #!/bin/bash
    
    # 桥接网络设备
    switch=br0
    
    if [ -n $1 ]; then          //$1为qemu-kvm传递值,这里是tap
        ip link set $1 up
        brctl addif ${switch} $1
        exit 0
    else
       echo "no interface!"
       exit 1
    fi
    

    如此,便不需要每次手动添加了

    这部分内容的理解主要是 KVM使用网桥模式 这篇文章,顺便推荐此博主的《KVM虚拟化技术:实战与原理解析》一书,对系统的学习KVM很有帮助



沪ICP备19023445号-2号
友情链接