我有一台运行 Linux (ubuntu-18.04) 的主机。我配置了 2 个 VMware 实例,并且网络是通过 NAT 配置的。我可以通过本地 IP 从 VM1 ping 到 VM2(反之亦然),但对于我当前的需要,我希望它们通过以太网电缆连接到 DPDK 测试环境,以便一台机器可以通过直接 mac 地址找到另一台机器(层2 协议,无 IP 堆栈)。如何以简单有效的方式做到这一点并测试它是否正常工作(可能通过arping,不确定)?
答案1
如果你需要身体的二层连接,那么就需要使用桥接模式,而不是NAT。
请注意,除非您的主机操作系统也是无线接入点,否则您无法在无线网络上使用桥接模式。当您的主机是无线客户端时,它只有一个 WiFi 身份(MAC 地址 + 关联的加密会话密钥),如果它尝试将虚拟机的流量桥接到无线网络,则虚拟机的 MAC 地址 + 主机的 WiFi 的组合加密密钥只会被接入点拒绝。
对于第 2 层连接同一主机中的虚拟机之间,您只需要确保所有虚拟机的虚拟网卡都使用相同的虚拟交换机。请参阅 VMware Workstation 文档中的此页面:即使在 NAT 模式下,多个虚拟机也可以虚拟地插入同一虚拟交换机并相互自由通信,因为 NAT 元素位于虚拟交换机和主机外部的物理网络之间。
在 NAT 模式下,默认虚拟交换机将被命名为VMnet8
。所有已连接到该虚拟交换机的虚拟机将自动在彼此之间建立第 2 层连接。
然而,测试可能有点棘手。如果网络接口配置了 IP 地址,则它只会应答传入的 ARP 请求,因此如果您希望使用 .NET 进行测试,则需要配置 IP 地址(至少是暂时的)arping
。
目前 RHEL 8 中似乎没有可用的纯第 2 层连接测试仪。然而,在过去我用过这个实用程序:请注意,您必须在两台虚拟机上安装它,linkloopd
在一台虚拟机上运行并linkloop
在另一台虚拟机上使用命令进行测试。