virtio_net question

目标拓扑如下:

主机上tap0和eth1通过br0桥接在一起,tap0对应虚拟机的eth0。HOST上的br0配置地址192.168.1.2/24作为主机地址,虚拟机的eth0配置地址为192.168.1.5/24

虚拟机的启动命令如下:
qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic -smp 1 -m 4096 \
-global virtio-blk-device.scsi=off -device virtio-scsi-device,id=scsi \
-drive file=ubuntu-core-14.04.1-core-arm64.img,id=coreimg,cache=unsafe,if=none -device scsi-hd,drive=coreimg \
-kernel  vmlinuz-3.13.0-55-generic \
-initrd  initrd.img-3.13.0-55-generic  \
-netdev tap,id=mynet -device virtio-net-device,netdev=mynet \
--append "console=ttyAMA0 root=/dev/sda"

启动后在虚拟机里面可以看到eth0网卡,驱动位virtio_net

从虚拟机ping物理机,发现无法ping同

在虚拟机里面抓包,发现ARP请求没有收到响应

但是从物理机TAP0上抓包,发现物理机已经收到ARP请求,并且回应了报文

问题就是TAP0上有了ARP的回应报文,虚拟机的eth0口竟然没有ARP的回应报文,请问大侠们,我的配置是否有错?或启动命令是否有错?TAP0都收到响应报文了,为什么虚拟机eth0竟然没有,丢在哪里了?

【问题已经解决】
必须在使能VHOST的情况下,才可以进行正常的网络通信
vhost=on

 

 

 

..

 

此条目发表在virtual machine分类目录。将固定链接加入收藏夹。