使用公司网络内的 KVM 桥接网络接口访问虚拟机,无法在房间 LAN 之外工作

使用公司网络内的 KVM 桥接网络接口访问虚拟机,无法在房间 LAN 之外工作

我在一家研究所工作,所以你可以想象我们有典型的代理、AD、DNS 等。我的团队正在考虑将我们的服务器(包含多个用于各种研究目的的 GPU)过渡到 Linux,因为这样可以更轻松地设置我们的环境(机器学习、渲染)并访问我们工作所需的工具。但在我们这样做之前,我主动(在我们的 IT 管理员和我的老板的许可下)创建了一个简单的设置,这将让我们了解我们到底需要什么。

我使用一台普通台式电脑,将 Ubuntu Server 20.04 LTS 设置为主机。为了管理它,我使用 SSH(通过 Putty)或 Web 界面(cockpit)。在主机上,我运行 KVM 和一堆 QEMU VM,所有这些 VM 都共享同一个桥接网络接口(由于 PCI 直通,一次只能运行一个 VM)。主机和 VM 的主机名遵循以下方案

<hostname>.<domain>

由于我们的 IT 人员一直是我们部门中直言不讳的反 Linux 推动者,因此部门中每台运行 Linux 的机器都必须由“拥有”它的员工管理。如果我们遇到与这些机器有关的问题,管理员不会给予我们任何帮助。Linux 机器还需要有后缀,-L以便他知道这不是他的问题。一般来说,PC 和笔记本电脑的主机名遵循以下方案

<department>-<machine type><3 digit numeric value>

所以完整的将是

<department>-<machine type><3 digit numeric value>.<domain>

假设我有以下foo.bar.com内容<domain>

  • ABC-DT001-L.foo.bar.com- 运行 Ubuntu Server 20.04 的 PC、主机、IP 地址10.21.5.83
  • ABC-DT001-L-VM0.foo.bar.com- VM,运行 Xubuntu 20.04 的客户机,IP 地址10.21.5.104
  • ABC-NB001.foo.bar.com- 笔记本电脑,运行 Windows 10,具有 AD 用户和 IP 地址10.21.5.104
  • 网桥- 转换了单一网络接口ABC-DT001-L连接到桥接器,我计划运行的每个虚拟机都会使用该桥接器
  • HP ProCurve 交换机 1810g-8 J9449A- 我的机器连接到办公室内的管理交换机(我无法访问它),IP 地址10.21.99.10(标签上写着)
  • 默认网关- IP地址10.21.5.1
  • DHCP 服务器- IP地址10.21.1.3
  • DNS 服务器- IP地址10.21.1.3
  • 主 WINS 服务器- IP地址10.21.1.10

我们的 IT 部门告诉我,如果一台机器有永久的 MAC 地址,我就可以ABC-DT001-L.foo.bar.com访问我的ABC-DT001-L机器。

在 KVM 级别,我有virbr0在创建虚拟机时设置的默认桥接器(或其他东西),以便允许虚拟机系统以某种方式同步时间,以及我自己的桥接器,它将虚拟机绑定到我主机拥有的唯一以太网端口,允许它访问互联网以及我们研究所的内部网络。因此,就我电脑上的 MAC 地址而言,我有

  • ABC-DT001-L.foo.bar.com- MAC地址14:b3:1f:07:ee:5a
  • ABC-DT001-L-VM0.foo.bar.com- MAC地址52:54:00:2a:b8:4f

关于我的桥梁。

如果您对我拥有的默认桥52:54:00:58:04:50(主机端)和 52:54:00:1e:cf:8b(虚拟机端)感兴趣。

以下是有效的方法:

  • ABC-NB001- 可以 ping 和 SSHABC-DT001-L
  • ABC-NB001- 可以 ping、SSH 和 VNC 连接到ABC-DT001-L-VM0(端口 5900 用于 Cockpit,端口 5901 用于任何其他 VNC 查看器,因为我还与 Cockpit 已提供的服务并行运行 X11VNC,以便将来仅允许访问 VM 而不是底层服务器)
  • ABC-DT001-L- 可以 ping 和 SSHABC-DT001-L-VM0,可以 ping 通ABC-NB001
  • ABC-DT001-L-VM0- 可以 ping 和 SSHABC-DT001-L,可以 ping 通ABC-NB001

此外,我可以 ping 并访问 Web 控制台ABC-DT001-L从我们的 Windows 服务器(我们将来会将其转换为 Linux)。我的同事在家办公,也可以(通过我们的 VPN)ping 和访问ABC-DT001-L

以下是不起作用的内容:

  • 进入ABC-DT001-L-VM0从我们的服务器,甚至只是 ping
  • 进入ABC-DT001-L-VM0通过 VPN 从我同事的机器

因此,似乎交换机以外的任何东西都无法以任何可能的方式访问虚拟机。我注意到的一件事(我想这是意料之中的)是,在交换机后面,我也可以简单地使用主机名而不是全名来访问我的所有机器。

看来问题出在桥上。在我去惹毛我们 IT 部门之前,我想尝试解决这个问题(当然需要您的帮助)。

相关内容