使用公司網路內的 KVM 橋接網路介面存取 VM 在房間 LAN 之外無法正常運作

使用公司網路內的 KVM 橋接網路介面存取 VM 在房間 LAN 之外無法正常運作

我在一家研究所工作,所以你可以想像我們有典型的代理商、AD、DNS 等。我的團隊正在考慮將我們的伺服器(包含用於各種研究目的的多個GPU)過渡到Linux,因為我們的環境(機器學習、渲染)設定更容易,並且可以更輕鬆地存取我們工作所需的工具。但在我們這樣做之前,我自己(經過 IT 管理員和老闆的許可)創建了一個簡單的設置,這將使我們對我們到底需要什麼有一些了解。

我使用一台普通的桌上型電腦,並將 Ubuntu Server 20.04 LTS 設定為主機。為了管理它,我使用 SSH(透過 Putty)或 Web 介面(駕駛艙)。在主機之上,我運行帶有一堆 QEMU VM 的 KVM,所有這些 VM 都共用相同的橋接網路介面(由於 PCI 直通,一次只能執行一個 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- PC,執行 Ubuntu Server 20.04 的主機,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,以允許將來僅訪問虛擬機器而不是底層伺服器)
  • 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 部門)之前,我想嘗試解決問題(當然需要您的幫助)。

相關內容