fragen stichworte

KVM mit einer Host-IP und einem anderen Subnetz für Maschinen

Ich habe bereits einen KVM-Host mit korrekten IP-Konfigurationen eingerichtet, aber mein Host ließ mich DHCP erstellen und verwende das, um den Computern die IPs zuzuweisen. Ich möchte sehen, ob es einen einfacheren Weg gibt (oder besser). Bei meinem ersten Einsatz habe ich nichts gefunden, was mich in die richtige Richtung zeigte. Ich komme von einer Neuinstallation von Debian 6.0 x64, daher habe ich nichts installiert. Ich habe mich angemeldet, nach den folgenden Informationen gefragt und das Kennwort von meinem Hostsatz geändert.

Ich habe ein Debian 6.0 x64-System mit der folgenden anfänglichen Netzwerkkonfiguration (ersetzt 255 anstelle meiner echten ersten Oktave):

# 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

Ich habe ein/29-Subnetz, das die virtuellen Maschinen von meinem Host verwenden sollen:

IP: 255.46.187.152/29
Maske: 255.255.255.248
Sendung: 255.46.187.159

Nutzbare IP-Adressen: 255.46.187.153 bis 255.46.187.158

Ich mag die Benutzeroberfläche von Cloudmin. Daher möchte ich dies versuchen und nutzen, wenn ich meine Gäste verwalten kann.

Also meine Fragen:

Wie richte ich dies am besten auf dem Hostsystem ein, damit ich die zusätzlichen Subnetz-IPs auf den Gästen verwenden und vom Internet aus darauf zugreifen kann?

Ich muss auch einen DNS-Server hosten, was bedeutet, dass einer dieser VMs zwei IPs zugewiesen werden müssen, die von außen zugänglich sind. Wie kann ich das mit Cloudmin machen? Ich hatte hier eine Frage dazu: Mehrere IP-Adressen, die einer KVM-VM zugewiesen wurden Ich habe jedoch gerade den gesamten Server neu formatiert und versuche, einen besseren Weg zu finden.

Maschineninformationen:

# 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

Vielen Dank für jede Hilfe, die Sie mir geben können.

BEARBEITEN: Ich habe kvm und cloudmin installiert:

aptitude install qemu-kvm libvirt-bin
wget http://cloudmin.virtualmin.com/gpl/scripts/cloudmin-kvm-debian-install.sh
./cloudmin-kvm-debian-install.sh

Nach dem Neustart sieht meine Netzwerkkonfiguration folgendermaßen aus:

# 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

Ich habe in Cloudmin die Start-IP als 255.46.187.153 und die End-IP als 255.46.187.158 eingerichtet. Die CIDR ist 29 und das Gateway ist 255.46.187.152.

Ich habe einen Gast mit ubuntuserver 12.04 x64 installiert, der während der Installation Internet-Ressourcen abrufen und abrufen konnte, jetzt aber nichts erreichen kann oder von irgendetwas erreichbar ist. Die Netzwerkkonfiguration lautet:

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>

Es ist nicht möglich, google.com über DNS oder direkte IP-Adressen zu pingen. Ich kann die VM nicht von außen oder vom Host aus pingen. irgendwelche Ideen jetzt?

antworten

Das auf guest konfigurierte Gateway ist keine IP-Adresse des Host-Computers. Ich würde diese config auf guest versuchen:

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

Fügen Sie auch auf dem Host die Route zu guest hinzu, und fügen Sie diese zu/etc/network/interface

hinzu
iface eth0 inet static
       (...)
       up route add -host 255.46.187.153 dev br0
       up route add -host 255.46.187.154 dev br0

Auf diese Weise können Sie Netzwerk- und Broadcast-Adressen für Gäste (255.46.187.152 und 255.46.187.159)

verwenden

einige Ressourcen, leider nicht in Englisch:

http://www.ingent.net/ca/2012/03/server-virtualization-kvm-hetzner/ (katalanisch)

http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way (deutsch)

Wenn sich die VM nicht im selben Netzwerk wie der Host befindet, müssen Sie den Host möglicherweise als Router für die VMs einrichten:

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

Bearbeiten: Entschuldigung für die "MASQUERADE", ich habe einfach ein Skript kopiert, das ich herumliegen hatte. In Ihrem Fall brauchen Sie es nicht. Dies kann jedoch in einem anderen Fall nützlich sein, beispielsweise wenn Sie Ihren VMs IP-Adressen geben möchten.