Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Xen 虛擬化 NAT 網路多 IP 網段完整配置實戰

編輯:Windows Server 常見問題解答

環境與目標

  • 宿主機 (Dom0):Debian 6 on VirtualBox,無線網卡 eth1 (172.16.0.0/24) 接入網際網路。
  • 目標:建立兩個隔離子網段
    • 子網段 A:10.1.1.0/24 (Gateway: 10.1.1.1),VM 可直接上網。
    • 子網段 B:10.20.40.0/24 (Gateway: 10.20.40.254),VM 僅能透過子網段 A VM 轉發上網。

Dom0 核心配置

1. 切換至 NAT 模式

# /etc/xen/xend-config.sxp
#(vif-script vif-bridge)  # 註釋橋接
(vif-script vif-nat)       # 啟用 NAT

2. 網路介面配置 (/etc/network/interfaces)

# 無線網卡 - 上游連線
auto eth1
allow-hotplug eth1
iface eth1 inet dhcp
    gateway 172.16.0.254
    dns-nameservers 8.8.4.4

# 子網段 A Gateway - 使用 dummy0
auto dummy0
iface dummy0 inet static
    address 10.1.1.1
    netmask 255.255.255.0

# 子網段 B Gateway - 使用 dummy0:0 別名 (關鍵技巧)
auto dummy0:0
iface dummy0:0 inet static
    address 10.20.40.254
    netmask 255.255.255.0

注意:嘗試建立 dummy1 會導致網路重啟失敗,使用 dummy0:0 別名介面是可行方案。

3. 啟用 NAT 轉發

# 子網段 A 上網
iptables -A POSTROUTING -s 10.1.1.0/24 -o eth1 -j MASQUERADE

# 子網段 B 需透過子網段 A 轉發,確保 IP 轉發已開啟
echo 1 > /proc/sys/net/ipv4/ip_forward

VM 端配置

子網段 A VM (/etc/xen/vm-a.cfg)

vif = [ 'ip=10.1.1.11', 'ip=10.20.40.2' ]  # 雙網卡:一張連子網A,一張作為子網B Gateway

VM 內部需配置靜態 IP、啟用 IP 轉發、設定 iptables 為子網段 B 做 SNAT。

子網段 B VM (/etc/xen/vm-b.cfg)

vif = [ 'ip=10.20.40.10' ]  # 單網卡,Gateway 指向 10.20.40.254 (Dom0 dummy0:0)

常見坑點與除錯

  • VIF IP 不一致:/etc/xen/*.cfg 中 vif 宣告的 IP 必須與 VM 內部 /etc/network/interfaces 設定完全一致,否則封包會被丟棄 (現象:Dom0 收到回應封包但 VM 收不到)。
  • 防火牆阻擋:檢查 Dom0 與 VM 內部 iptables FORWARD 鏈結政策。
  • 觀察工具:Dom0 執行 ifconfig -a 檢視 vifX.Y 虛擬介面狀態與計數器。
Copyright © Windows教程網 All Rights Reserved