我已經使用正確的 IP 配置設定了 KVM 主機,但我的主機讓我建立 DHCP 並使用它將 IP 指派給電腦。我想看看是否有更簡單的方法(或更好的方法)。當我第一次著手解決這個問題時,我沒有找到任何能指引我正確方向的東西。我剛剛安裝了 Debian 6.0 x64,所以我沒有安裝任何東西。我已登錄,查詢以下資訊並從我的主機設定一更改密碼。
我有一個 Debian 6.0 x64 系統,具有以下初始網路配置(用 255 代替我真正的第一個八度音程):
# tail /etc/network/interfaces
auto eth0
iface eth0 inet static
address 255.9.24.80
broadcast 255.9.24.95
netmask 255.255.255.224
gateway 255.9.24.65
# default route to access subnet
up route add -net 255.9.24.64 netmask 255.255.255.224 gw 255.9.24.65 eth0
我希望虛擬機器從我的主機使用一個 /29 子網路:
IP:255.46.187.152 /29
遮罩:255.255.255.248
廣播:255.46.187.159
可用的 IP 位址:255.46.187.153 至 255.46.187.158
我喜歡 Cloudmin 的介面,所以如果可以的話我想嘗試使用它來管理我的訪客。
所以,我的問題是:
如何在主機系統上進行最佳設置,以便我可以在訪客上使用額外的子網路 IP 並透過網路存取它們?
我還需要託管一台 DNS 伺服器,這意味著其中一個虛擬機器必須分配兩個 IP,並且可以從外部世界存取。我該如何使用 Cloudmin 做到這一點?我在這裡有一個關於這個的問題:為一台 KVM 虛擬機器指派多個 IP 位址但我只是重新格式化了整個伺服器,並試圖找出更好的方法來做到這一點。
機器資訊:
# ip route show
255.9.24.64/27 via 255.9.24.65 dev eth0
255.9.24.64/27 dev eth0 proto kernel scope link src 255.9.24.80
default via 255.9.24.65 dev eth0
brctl is empty
# ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether c8:60:00:54:b5:d8 brd ff:ff:ff:ff:ff:ff
inet 255.9.24.80/27 brd 255.9.24.95 scope global eth0
inet6 fe80::ca60:ff:fe54:b5d8/64 scope link
valid_lft forever preferred_lft forever
感謝您為我提供的任何幫助。
編輯:我已經安裝了 kvm 和 cloudmin:
aptitude install qemu-kvm libvirt-bin
wget http://cloudmin.virtualmin.com/gpl/scripts/cloudmin-kvm-debian-install.sh
./cloudmin-kvm-debian-install.sh
重新啟動,現在我的網路配置如下所示:
# device: eth0
iface eth0 inet manual
# default route to access subnet
iface br0 inet static
address 255.9.24.80
netmask 255.255.255.224
broadcast 255.9.24.95
network 255.9.24.64
bridge_ports eth0
gateway 255.9.24.65
我在 Cloudmin 中將起始 IP 設定為 255.46.187.153,將結束 IP 設定為 255.46.187.158。 CIDR 為 29,閘道為 255.46.187.152。
我已經安裝了帶有 ubuntuserver 12.04 x64 的來賓,它能夠在安裝過程中獲取和檢索互聯網資源,但現在無法訪問任何內容,也無法從任何內容訪問它。其網路配置為:
iface eth0 inet static
address 255.46.187.153
netmask 255.255.255.224
broadcast 255.46.187.159
gateway 255.46.187.152
dns-nameservers <host provided nameservers>
且無法透過 DNS 或直接 IP ping google.com,我無法從外部或主機 ping 虛擬機器。現在有什麼想法嗎?
答案1
來賓上設定的網關不是主機的IP,我會在來賓上嘗試以下設定:
auto eth0
iface eth0 inet static
address 255.46.187.153
netmask 255.255.255.255
gateway 255.9.24.80
pointopoint 255.9.24.80
dns-nameservers <host provided nameservers>
up ip addr add 255.46.187.154 dev eth0
同樣在主機上,確保將路由新增到來賓,將其新增至 /etc/network/interfaces
iface eth0 inet static
(...)
up route add -host 255.46.187.153 dev br0
up route add -host 255.46.187.154 dev br0
這樣您就可以為訪客使用網路和廣播位址(255.46.187.152 和 255.46.187.159)
一些資源,抱歉不是英文的:
http://www.ingent.net/ca/2012/03/server-virtualization-kvm-hetzner/(加泰隆尼亞語)
http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way(德文)
答案2
如果虛擬機器與主機不在同一網路上,您可能需要將主機設定為虛擬機器的路由器:
iptables --table nat --append POSTROUTING --out-interface br0 -j MASQUERADE
iptables --append FORWARD --in-interface br0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
編輯:對“假面舞會”感到抱歉,我只是複製並貼上了我周圍的腳本。就您而言,您不需要它。但它在不同的情況下可能很有用,例如當您想要為虛擬機器提供私人 IP 時。