我試圖讓 Xen 在 domU 具有與 dom0 完全不同的 IP(不在同一網路範圍內)的設定中運行。這個答案讓一切都在相同的 /24 範圍內工作,但不能使用完全不相關的 IP。
dom0 的 /etc/network/interfaces:
# The primary interface.
# The configuration is done in the bridge.
auto eth0
# The bridge for Xen to use.
auto xenbr0
iface eth0 inet static
bridge_ports eth0
address 188.165.X.Y
netmask 255.255.255.0
network 188.165.X.0
broadcast 188.165.X.255
gateway 188.165.X.254
dom0 的橋 ( brctl show
):
bridge name bridge id STP enabled interfaces
eth0 8000.00259022aab2 no peth0
vif1.0
domU 的 /etc/network/interfaces:
# The primary network interface
auto eth0
iface eth0 inet static
address 91.121.A.B
gateway 188.165.X.254
netmask 255.255.255.0
我也在 domU 的配置中嘗試了不同的網路遮罩。我應該如何配置以允許 domU 以工作方式連接到網路?
答案1
我假設 91.121.xx 透過網際網路路由到網關 188.165.X.254
然後,網關需要 91.121.xx 的路由才能轉到位於 188.165.XY 的 VM 主機
這意味著任何嘗試存取 91.121.xx 的流量最終都會到達您的 Xen 伺服器。
在上一個問題中,所有介面都位於同一網路上,因此所有內容都可以橋接到主介面 - 這是第 2 層連線。
但是,在這種情況下,來賓與主機位於不同的網路上。我們需要一個第 3 層路由連接。
主機上需要發生兩件事
1) 它需要 91.121.xx 網路中的介面 2) 它需要成為路由器
對於 (1),我們有與以前類似的網路設置,但是實體介面位於網橋之外。我們建立一個橋接介面供虛擬機器連接,但給它一個獨立於 eth0 介面的位址:
auto lo br0 eth0
iface lo inet loopback
iface br0 inet static
bridge_ports none
address 91.121.x.1
netmask 255.255.255.0
iface eth0 inet static
address 188.165.X.Y
netmask 255.255.255.0
network 188.165.X.0
broadcast 188.165.X.255
gateway 188.165.X.254
一旦出現這種情況,伺服器將有兩個接口,並且可以充當路由器。預設此功能處於關閉狀態。更改/etc/sysctl.conf
並確保以下行未被註解:
net.ipv4.ip_forward=1
您可以使用以下命令在命令列中暫時啟用此功能,但需要進行上述變更才能在重新啟動後繼續存在:
sysctl -w net.ipv4.ip_forward=1
現在,伺服器會將到達 eth0、目的地為 91.121.xx 的封包路由出 br0 介面。所以現在我們需要將虛擬機器橋接到這個介面。這與您通常所做的完全一樣,只是為了完整起見將其放在這裡:
在.cfg 中:
vif = ['bridge=br0, mac=00:16:3E:12:16:19']
在 domU 介面檔案中:
auto eth0
iface eth0 inet static
address 91.121.A.B
gateway 91.121.x.x (this is the dom0 br0 interface address)
netmask 255.255.255.0
91.121.x.x
您可以透過從 domU ping 到 ping dom0 以及91.121.x.254
從 dom0 ping 到 ping domU 來測試橋上的所有內容是否正常運作。然後從 domu ping dom0 外部介面:188.165.X.Y
第一個 ping 證明網橋正在工作,第二個 ping 證明路由正在工作。