1 Debian 6.x

1 Debian 6.x

我想在單一主機 (Fedora 19) 上設定一個簡單的 KVM/QEMU 來賓虛擬機器子網路以進行測試。此子網路將包含 3 台伺服器:

1 Debian 6.x

eth0 ip: 10.0.0.7 eth1 ip: 10.0.2.1

2 Debian 7.x

eth0 ip: 10.0.2.2

2 CentOS 6.x

eth0 ip: 10.0.2.3

和(可能)多個客戶端。

這個想法是模擬一個子網,其中只有一個虛擬機器(上面的#1)連接到 WAN 網路並充當其餘虛擬機器的網關/路由器。

我目前正在嘗試基於此處描述的設定:

http://csortu.blogspot.com/2009/12/building-virtual-network-with-qemu.html

但是,目前似乎無法為除 #1 之外的其他虛擬機器提供 WAN 連線。

我有兩個問題: 1. 有更簡單的解決方案嗎? 2.(如果沒有)如何使用 VM #1 作為網關使其他 VM 與外界連接。

PS 我可能應該提到,所有虛擬機器都相互連接,但 WAN 存取僅在 #1 上可用。

編輯:根據要求,這裡是完整的網路配置。

HOST:Fedora 19 x86-64 直接連接到 10.0.0/24 網路上的我的家庭路由器(10.0.0.1)(僅列印相關介面)

3: wlp12s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 0c:60:76:64:c5:9d brd ff:ff:ff:ff:ff:ff
inet 10.0.0.3/28 brd 10.0.0.15 scope global wlp12s0
   valid_lft forever preferred_lft forever
inet6 fe80::e60:76ff:fe64:c59d/64 scope link 
   valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
link/ether 2e:47:f7:fc:f2:fb brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
   valid_lft forever preferred_lft forever

虛擬機器:

1 - 配置了兩個 NIC 的 Debian 6 amd64(一個用於透過 HOST 存取我的家庭網絡,第二個用於內部、僅限虛擬機的 10.0.2/24 子網)

這是啟動命令(我更改了預設的 QEMU 用戶網路配置以反映我的家庭網絡,並將主機連接埠 2222 重定向到訪客上的連接埠 22-ssh)

qemu-system-x86_64 -cpu host -enable-kvm --name Debian6-amd64 -hda VMs/Debian6/sda.img -hdb VMs/Debian6/sdb.img -net nic,vlan=1 -net user,vlan=1,hostfwd=tcp::2222-:22,net=10.0.0.0/24,dhcpstart=10.0.0.7 -net nic,vlan=2,macaddr=52:54:00:00:02:01 -net socket,vlan=2,listen=localhost:1234 -m 512 -boot c -nographic

這是介面配置:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.7/24 brd 10.0.0.255 scope global eth0
inet6 fe80::5054:ff:fe12:3456/64 scope link 
   valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:00:02:01 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.1/24 brd 10.0.2.255 scope global eth1
inet6 fe80::5054:ff:fe00:201/64 scope link 
   valid_lft forever preferred_lft forever

2 - 配置了 1 個 NIC 的 Debian 7 amd64(內部 10.0.2/24 子網路)

啟動命令:

qemu-system-x86_64 -cpu host -enable-kvm --name Debian7-amd64 -hda VMs/Debian7/sda.img -hdb VMs/Debian7/sdb.img -net nic,vlan=2,macaddr=52:54:00:00:02:02 -net socket,vlan=2,connect=localhost:1234 -m 512 -boot c -nographic

以及介面配置

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:00:02:02 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.2/24 brd 10.0.2.255 scope global eth0
inet6 fe80::5054:ff:fe00:202/64 scope link 
   valid_lft forever preferred_lft forever

3 - 配置了 1 個 NIC 的 CentOS 6 x86-64(內部 10.0.2/24 子網路)

啟動命令:

qemu-system-x86_64 -cpu host -enable-kvm --name CentOS6-x86_64 -hda VMs/CentOS6/sda.img -hdb VMs/CentOS6/sdb.img -net nic,vlan=2,macaddr=52:54:00:00:02:03 -net socket,vlan=2,connect=localhost:1234 -m 512 -boot c -nographic

以及介面配置

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:00:02:03 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.3/24 brd 10.0.2.255 scope global eth0
inet6 fe80::5054:ff:fe00:203/64 scope link 
   valid_lft forever preferred_lft forever

答案1

Debian6 VM 是否配置為轉送 IP 封包?

您是否在其他 2 個虛擬機器上設定了指向虛擬機器 Debian 6 的預設路由?

如果是,您可以嘗試將內部 LAN 變更為 10.xxx 以外的另一個主要子網,即 192.168.1.x/24 嗎?

使用新的內部子網路後,您需要在指向 Debian6 VM 的網際網路路由器上設定到內部子網路 192.168.1.x 的路由。

相關內容