在linux下使用qemu模拟路由器

在linux下使用qemu模拟路由器,第1张

前段时间,在学一个东西。学到使用qemu的时候,老是出错。原因有两个:一是我用的linux比较新,和书上的版本有差距,所以/etc/network/interfaces失效;二是我用的无线网卡上网,和书上的以太网不同,这就造成桥接的时候需要先桥接到以太网再转发到无线网卡(我在网上看见,wifi联盟的标准是不能无线桥接),而我还是个小白,所以做起来比较费劲。

utuntu17以后,/etc/network/interfaces失效,由netplan代管。但是我也试过netplan,我还是用不来。最好时直接用ip命令或者nmcli命令,免得麻烦。

以下以下是我总结的两个方法。步骤都差不多。方法1使用了老命令,方法2使用了新命令。

ubuntu下如何安装tap虚拟网络设备: https://www.jianshu.com/p/b1d315ea002e

为qemu虚拟机添加桥接网络和路由

在虚拟机的/etc/network/interfaces里面进行配置

重启虚拟机网络

实验:使用ip命令创建网桥,并调通网络

实验目的:ifconfig和tunctl等命令已经或者即将被淘汰,我必须找到官方公布的替代者,以保证以后还能使用这些命令写成的脚本。

添加网卡到网桥,网桥的状态必须时打开

注:两个从属网卡开启混杂模式,目的是让两个从属网卡可以通信。

在虚拟机的/etc/network/interfaces里面进行配置

1.ip命令能够替代ifconfig进行设置,并且能够替代tunctl和brctl进行工作。是一个十分强大的命令

2.网桥是一种特殊的连接。虽不不能明确个中缘由,但是从其拥有两张网卡可以窥知一二,同时命令nmcli和ip都把他归为连接,从这点也可以映证。

qemu guest agent简称qga, 是在虚拟机中运行的守护进程,他可以管理应用程序,执行宿主机发出的命令。例如冻结或解冻文件系统,使系统进入挂起状态等。但是 guest agent(GA)并没有良好的安全保护,恶意的虚拟机可能发送虚假的回复

目前QEMU通过串口发布GA。可以尝试的允许应用程序通过qume监视器与 GA进行通讯,但是需要virtio串口提供支持.

使用GA需要创建特别的串口,名为 org.qemu.guest_agent.0. 换句话说,需要在domain xml中的<devices>下添加如下内容:

如果使用libvirt1.0.6或者更新的的版本,可以省略<source>元素的path=" "属性。libvirt会进行自动配置。

Libvirt 不提供直接使用guest agent的任何支持,如果您不介意使用libvirt-qemu,则可以使用virDomainQemuAgentCommand API(由virsh qemu-agent-command公开)但需要注意,这是不受支持的,对agent所做的任何改变都会影响libvi,并可能会导致libvirt行为的不确定性。

同时,guest agent可以由几个支持的libvirt API内部使用,通常通过传递标志来发送请求。 例如,virDomainShutdownFlags:

同样使用于重启API

在virsh中,用户可以选择关机或重启的方式通过 -mode acpi|agent:

如果用户正在创建快照,并希望在之前冻结并解冻文件系统,此时可通过为virDomainSnapshotCreate API指定VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE标志来完成,或者在virsh中设置:

警告:与任何监视器命令一样,GA命令可以无限期阻塞。Libvirt实现了一些基础性检测,以确定是否有qemu-ga实例在运行。 实际上,在每个有用的命令之前发出guest-sync命令。 如果它返回,则libvirt会认为guest agent已启动并正在运行,这时就会发送实际命令。 但是,guest agent可能会死亡或被终止。 guest-sync命令发出超时,如果命中guest agent则被认为不存在。

在某些情况下,用户可能希望通过domain的XML配置guest agent,而不希望libvirt连接guest agent 的socket。 因为仅当其virtio channel 名为org.qemu.guest_agent.0时libvirt才可以连接到guest agent,

然而,可通过xml改变目标的名字

如果更改名字,则需要告知qemu GA

仅需要一件事,之前提到过得,需要在domain 中配置串口,同时,虚拟机必须安装GA,幸运的是其已经封装在rpm中。通过如下指令可以进行安装

如何给安卓手机添加虚拟按键

首先手机一定先ROT,打开手机中re文件管理器。

在根目录中找到system并点击。

在这界面中找到bulid.prop并打开。

进入后滑到最底处加上qemu.hw.mainkeys=0

这样就完成了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11412542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存