![透過虛擬機器僅主機網路連接交換機](https://rvso.com/image/1555383/%E9%80%8F%E9%81%8E%E8%99%9B%E6%93%AC%E6%A9%9F%E5%99%A8%E5%83%85%E4%B8%BB%E6%A9%9F%E7%B6%B2%E8%B7%AF%E9%80%A3%E6%8E%A5%E4%BA%A4%E6%8F%9B%E6%A9%9F.png)
我有一本運行 Mac OS High Sierra 的 mac 書。它託管著三個運行 Ubuntu 16.04 的虛擬機器。所有虛擬機器都啟用了兩個適配器; NAT 和僅主機。 Mac 透過交換器連接到另一台主機。虛擬機器協調並提供一項服務,我希望連接到我的筆記型電腦的交換器另一端的主機可以使用該服務。
en8
192.168.57.0 192.168.57.200 192.168.57.100 /---|VM1| 192.168.56.3
|------------| /--------------\ |--------------| /
| Host1 |--| switch |--| Host2 |------|VM2| 192.168.56.4
|------------| \--------------/ |--------------| \
192.168.56.1 \---|VM3| 192.168.56.5
vboxnet0
主機位於子網路上192.168.57.0\24
。筆記型電腦透過介面連接到交換機en8
,IP位址為192.168.57.100
。筆記型電腦和交換器可以互相ping通。
192.168.56.1
Mac OS透過介面上的閘道連接到VM vboxnet0
。虛擬機器可以互相 ping 通對方及其主機。主機可以與每個VM通訊。
我希望虛擬機能夠控制交換機,因此我需要設定路由規則來將流量從交換器連接到虛擬機並返回。我想像路由器一樣使用我的 mac 來執行此操作。
我嘗試按照傑夫沃倫的例子在這裡:Virtualbox:連接不同主機上的 Host-Only 網絡,但它不適用於我的情況。
具體來說,我嘗試...
sudo route -n add -net 192.168.56.0/24 192.168.57.100
但這沒有用。我收到一條訊息說文件已存在。
非常感謝任何有關如何從虛擬機器配置交換器的想法。謝謝。
我嘗試過其他方法,例如將虛擬機器與交換器放在同一邏輯子網路上。然而,當我這樣做時,虛擬機器與其主機之間的通訊丟失了。我也嘗試過使用橋接網路而不是僅使用主機,但這也不起作用。
答案1
假設虛擬機器上的 192.168.56.0/24 介面僅用於主機(即不是 NAT)。
您的 MAC (host2) 上不需要路由,因為這是唯一可以直接連接到 /24 的路由。您確實需要虛擬機透過這種方式到達交換機,而交換器也透過這種方式到達虛擬機。
在虛擬機器上,「ip route add 192.168.57.0/24 via 192.168.56.1」應該可以解決問題。
在交換器上...需要任何語法,可能是為了使 host2 成為預設閘道(@192.168.57.100)