当前位置: 首页 > article >正文

QEMU通过OVS实现联网

这篇笔记也是记录了一下自己的辛酸历程,仅供有需要的人参考。

首先关于qemu虚拟机的搭建,这不多赘述了,大家应该都会,这里可以给大家提供一个链接和一些命令。

QEMU搭建X86_64 + Ubuntu虚拟系统环境icon-default.png?t=O83Ahttps://blog.csdn.net/m0_53195006/article/details/129883054这里主要的内容参考是没问题,就是记得在qemu configure的时候要加入--enable-sdl。

命令如下:

#./configure --enable-kvm --enable-debug --enable-sdl --enable-vnc --target-list=x86_64-softmmu

#create empty img
qemu-img create -f qcow2 ubt1.qcow2 10G

#create ubuntu img
qemu-system-x86_64 -m 2048 -smp 2 --enable-kvm ubt1.qcow2 -cdrom ./ubuntu-16.04.4-server-amd64.iso

#cp ubt1.qcow2 ubt2.qcow2

#start too vms
qemu-system-x86_64 -m 2048 -smp 2 --enable-kvm ubt1.qcow2 -netdev tap,id=tapnet,ifname=vnet0,script=no -device rtl8139,netdev=tapnet,mac=00:11:22:33:44:55

qemu-system-x86_64 -m 2048 -smp 2 --enable-kvm ubt2.qcow2 -netdev tap,id=tapnet,ifname=vnet1,script=no -device rtl8139,netdev=tapnet,mac=00:11:22:33:44:66

这样我们就拥有了两台虚拟机,但是先别启动,先配置好vnet。

然后呢,我们要启动ovs了。首先是安装ovs。

sudo apt update
sudo apt install openvswitch-switch

这里我们可以检查一下ovs是否启动了,看下是否active。

sudo systemctl status openvswitch-switch

如果active了的话,那么就代表启动了。接着做下面的命令,这很好懂。我新建两个tap设备,给两个qemu用。enp6s0是我宿主机的网卡名称。但是做完下面的动作你会发现,本来可以上网的,现在不行了。

sudo tunctl -b -t vnet0
sudo ifconfig vnet0 up
sudo tunctl -b -t vnet1
sudo ifconfig vnet1 up

sudo ovs-vsctl add-br vbr0
sudo ovs-vsctl add-port vbr0 vnet0
sudo ovs-vsctl add-port vbr0 vnet1
sudo ovs-vsctl add-port vbr0 enp6s0

最关键的步骤,因为我是通过dhcp获取的ip地址,所以把enp6s0的ip地址给到vbr0并没有用(靠!!!)。需要

sudo dhclient vbr0

这样vbr0获取到ip地址才可以使用。

配置完之后,我们按照之前的命令启动两个qemu,就发现他们可以上网了,附一张iperf3的图,是两个qemu之间打的。

这里有个问题,我之前在 CSDN 上看到有人用bridge也可以实现上网的,但是我做了就不行,还没搞清楚原因。

如果觉得这篇文章有用的话,可以点赞、评论或者收藏,万分感谢,goodbye~ 


http://www.kler.cn/a/488259.html

相关文章:

  • 24下半年软考「单独划线」合格标准已公布!
  • 本地手集博客id“升级”在线抓取——简陋版——(2024年终总结1.1)
  • 10_Redis数据结构-HyperLogLog基数统计
  • 国产游戏崛起,燕云十六移动端1.9上线,ToDesk云电脑先开玩
  • 决定系数(R²分数)——评估回归模型性能的一个指标
  • halcon三维点云数据处理(七)find_shape_model_3d_recompute_score
  • 计算机网络之---信号与编码
  • HDFS编程 - 使用HDFS Java API进行文件操作
  • 一、智能体强化学习——强化学习基础
  • component-动态控制 div width 的值 根据传入的变量决定width的值 vue
  • Qt重写webrtc的demo peerconnection
  • 【原型设计】Axure快速入门教程
  • 机器学习实战——决策树:从原理到应用的深度解析
  • 【SOC 芯片设计 DFT 学习专栏 -- RTL 中的信号名和 Netlist 中的信号名差异】
  • d2j-dex2jar classes.dex 执行报错:not support version 问题解决
  • vue入门项目
  • Git之提交和撤销操作
  • Zstandard压缩算法
  • 如何解决HTML和CSS相关的问题,什么情况下会导致元素被遮挡?
  • Qt官方下载地址
  • 【Azure Redis 缓存】Azure Redis 遇见的连接不上问题和数据丢失的情况解答
  • RT-DETR融合[AAAI2025]的ConSeg中的模块
  • 慧知开源充电桩平台:优势与国际化之路
  • Java 原型模式、建造者模式、单例模式
  • ESP32作为Wi-Fi STA模式的测试
  • CLIP代码相关问题