我在路由器 192.168.1.1 後面有一個家庭網路 192.168.1.0。該網路上有一組現有的 Linux 和 Windows 主機,其中大部分透過有線乙太網路連接。我正在配置一台執行 KVM 虛擬機器管理程式和 3 個 Debian 用戶機的新伺服器。新伺服器使用 wifi 進行網路連線。
在虛擬機器管理程式上,我曾經virsh
這樣設定虛擬網路:
<network>
<name>virtual</name>
<forward mode='route'/>
<ip address='192.168.2.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.2.2' end='192.168.2.255'/>
<host mac='52:54:00:00:00:01' ip='192.168.2.2'/>
<host mac='52:54:00:00:00:02' ip='192.168.2.3'/>
<host mac='52:54:00:00:00:03' ip='192.168.2.4'/>
</dhcp>
</ip>
</network>
然後,我在路由器中建立了一條從 192.168.2.0/24 到虛擬機器管理程式的 IP 位址 192.168.1.41 的靜態路由。
當我建立 Debian 來賓時,我指定了虛擬網路名稱和虛擬網路的 MAC 位址virsh
,如下所示:
--network network=virtual,mac=52:54:00:00:00:01
/etc/network/interfaces
每位客人的結果如下:
iface eth0 inet static
address 192.168.2.2
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
有了這個配置,一切就基本上正常了。我可以:
- 從 192.168.1.0 上的主機連接到兩個虛擬機器管理程式 IP 位址(.2.1 和 .1.41)
- 從 192.168.1.0 上的主機連接到每個來賓
- 從虛擬機器管理程式連接到每個來賓
- 從每個來賓連接到虛擬機器管理程式 (.2.1) 以及每個其他來賓
- 從每位客人連接到公共互聯網
- 將外部(網際網路)連線從路由器轉送到各個訪客
但是,我不能從訪客連接到 192.168.1.0 網路上的任何主機。例如,我無法從 192.168.2.2 到 192.168.1.31。
Atraceroute
顯示類似這樣的內容:
traceroute to 192.168.1.31 (192.168.1.31), 30 hops max, 60 byte packets
1 sol (192.168.2.1) 0.295 ms 0.252 ms 0.243 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
我不確定我的配置是否不正確,或者無線接入點是否遇到問題。
我嘗試過添加ebtables
配置(如所討論的這裡)進行 MAC 轉換,但這沒有任何區別。我嘗試在 之外添加單獨的橋接網路設備virsh
,但現有的虛擬設備無法連接到任何其他橋接器。我考慮過其他選項,例如virsh
過濾器或一些 iptables 規則,但我正在抓住救命稻草。
有人可以提出解決這個問題的正確方法嗎?