欢迎光临散文网 会员登陆 & 注册

[QEMU]网络仿真

2022-07-25 21:05 作者:-小白之家-  | 我要投稿

QEMU可以模拟多个网卡(例如PC目标上的PCI或ISA卡),并可以将它们连接到主机上的网络后端或模拟集线器。各种主机网络后端既可用于将来宾的 NIC 连接到真实网络(例如,通过使用 TAP 设备或非特权用户模式网络堆栈),也可以用于在另一个 QEMU 进程中运行的其他来宾实例(例如,通过使用套接字主机网络后端)。

使用 TAP 网络接口

这是将QEMU连接到真实网络的标准方法。QEMU 在主机上添加一个虚拟网络设备(称为 ),然后可以将其配置为真正的以太网卡。tapN

Linux 主机

例如,您可以下载存档并将脚本复制到中并进行正确配置,以便以 root 身份执行 中包含的命令。您必须验证主机内核是否支持 TAP 网络接口:设备必须存在。linux-test-xxx.tar.gzqemu-ifup/etcsudoifconfigqemu-ifup/dev/net/tun

请参阅调用以包含使用 TAP 网络接口的命令行示例。

视窗主机

有一个用于Windows 2000 / XP系统的虚拟以太网驱动程序,称为TAP-Win32。但它不包含在Windows的标准QEMU中,因此您需要单独获取它。它是OpenVPN软件包的一部分,因此请从以下位置下载OpenVPN:https://openvpn.net/。

使用用户模式网络堆栈

通过使用该选项(如果未指定任何选项,则为默认配置),QEMU 使用完全用户模式的网络堆栈(无需 root 权限即可使用虚拟网络)。虚拟网络配置如下:-net user-net

guest (10.0.2.15)  <------>  Firewall/DHCP server <-----> Internet                      |          (10.0.2.2)                      |                      ---->  DNS server (10.0.2.3)                      |                      ---->  SMB server (10.0.2.4)

QEMU VM 的行为就像在防火墙后面一样,防火墙会阻止所有传入连接。您可以使用 DHCP 客户端在 QEMU VM 中自动配置网络。DHCP 服务器从 10.0.2.15 开始为主机分配地址。

为了检查用户模式网络是否正常工作,您可以 ping 通地址 10.0.2.2,并验证您是否从 QEMU 虚拟 DHCP 服务器获得了 10.0.2.x 范围内的地址。

请注意,ICMP 流量通常不适用于用户模式网络。即。但是,ICMP 回显到本地路由器 (10.0.2.2) 应该可以正常工作。如果您在Linux上使用QEMU>= 3.0,它可以使用非特权ICMP ping套接字来允许Internet。主机管理员必须设置ping_group_range才能授予对这些套接字的访问权限。要允许 PING 的 GID 100(通常是用户组),请执行以下操作:pingping

echo 100 100 > /proc/sys/net/ipv4/ping_group_range

使用内置的 TFTP 服务器时,路由器也是 TFTP 服务器。

使用该选项时,TCP 或 UDP 连接可以从主机重定向到来宾。例如,它允许重定向X11,telnet或SSH连接。'-netdev user,hostfwd=...'

枢纽

QEMU可以模拟多个集线器。可以将集线器视为多个网络设备之间的虚拟连接。例如,这些设备可以是 QEMU 虚拟以太网卡或虚拟主机以太网设备(TAP 设备)。可以使用 或 选项将来宾 NIC 或主机网络后端连接到此类中心。旧版选项还将给定设备连接到 ID 为 0 的模拟中心(即默认中心),除非您在此处指定 netdev。-netdev hubport-nic hubport-net-net nic,netdev=xxx

在 QEMU 实例之间连接模拟网络

使用 (or 或 ) 选项,可以创建跨多个 QEMU 实例的模拟网络。请参阅

https://www.qemu.org/docs/master/system/invocation.html#sec-005finvocation

中的选项说明,了解基本示例。-netdev socket-nic socket-net socket-netdev socket


[QEMU]网络仿真的评论 (共 条)

分享到微博请遵守国家法律