qemu的bridge和nat模式

qemu使用brige模式

  1. 创建tap和bridge设备
tunctl -t tap1        #创建tap网卡
brctl addbr br0
brctl addif br0 tap1
brctl addif br0 enp0s3f0  #将tap和物理网卡全都挂接在bridge上
ip addr add 192.168.0.10/24 dev br0
ip link set tap1 up
ip link set enp0s3f0 up
ip link set br0 up

route add default gw 192.168.0.1
  1. qemu使用tap1
./qemu-system-x86_64 -m 1024 -boot c -smp 4 -drive file=./rootfs.qcow2,if=virtio -machine q35 -cpu host --enable-kvm \
-nographic -serial stdio -monitor tcp::4444,server,nowait \
-net nic,model=virtio,macaddr=00:23:9e:03:c7:3b -net tap,ifname=tap1,script=no,downscript=no -no-reboot

使用NAT模式

  1. 创建虚拟网桥
    brctl addbr br0
  2. 创建虚拟tap设备
    ip tuntap add mode tap tap0
  3. 将tap设备介入网桥
    brctl addif br0 tap0
  4. 配置网桥ip
    ip addr add 192.168.0.1/24 dev br0 ip route add 192.168.0.0/24 dev br0 //一般当设置ip时系统会为其自动添加默认路由,这一不就不用了
  5. 启动桥设备和虚拟网卡设备
    ip link set br0 up ip link set tap1 up
  6. 准备dnsmasq配置文件,启动dnsmasq服务,这样就能为虚拟机自动分配IP了
    strict-order
    pid-file=/var/run/libvirt/network/default.pid
    except-interface=lo
    bind-interfaces
    listen-address=192.168.0.1
    dhcp-range=192.168.0.2,192.168.0.254
    dhcp-no-override
    dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases
    dhcp-lease-max=253
    dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile
    addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts

 /usr/sbin/dnsmasq --conf-file=./dnsmasq.conf
  1. 配置iptables forward转发规则
    在基本环境搭建这一节中,设置了一个本地网络,虚机只能访问host,无法访问外网,如果需要访问外网需要设置SNAT
    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -j MASQUERADE

  2. 开启物理网卡的转发功能:
    sysctl -w net.ipv4.ip_forward=1

  3. 如果有防火墙的,特别是centos系统中,记得放开防火墙
    iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

  4. 启动qemu

qemu-system-x86_64 -m 1024 -boot c -smp 4 -machine q35 -cpu host --enable-kvm -nographic -no-reboot -kernel vmlinuz 
-append "root=/dev/vda1 console=ttyS0" -drive file=./root.qcow2,if=virtio -nographic 
-net nic,model=virtio,macaddr=4a:07:0f:b4:d3:98 -net tap,ifname=tap0,script=no,downscript=no
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页