Ich habe bereits einen KVM-Host mit den richtigen IP-Konfigurationen eingerichtet, aber mein Host ließ mich DHCP erstellen und damit die IPs den Maschinen zuweisen. Ich möchte sehen, ob es dafür einen einfacheren (oder besseren) Weg gibt. Als ich das zum ersten Mal ausprobierte, fand ich nichts, was mich in die richtige Richtung wies. Ich habe gerade eine Neuinstallation von Debian 6.0 x64 hinter mir, also habe ich nichts installiert. Ich habe mich angemeldet, die folgenden Informationen abgefragt und das Passwort meines Hosts geändert.
Ich habe ein Debian 6.0 x64-System mit der folgenden anfänglichen Netzwerkkonfiguration (ich habe 255 anstelle meiner tatsächlichen ersten Oktave ersetzt):
# 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 aus verwenden sollen:
IP: 255.46.187.152 /29
Maske: 255.255.255.248
Übertragung: 255.46.187.159
Nutzbare IP-Adressen: 255.46.187.153 bis 255.46.187.158
Mir gefällt die Benutzeroberfläche von Cloudmin und ich möchte versuchen, diese, wenn möglich, zur Verwaltung meiner Gäste zu verwenden.
Also, meine Fragen:
Wie richte ich dies auf dem Hostsystem am besten ein, damit ich die zusätzlichen Subnetz-IPs auf den Gästen nutzen und vom Internet aus erreichbar machen kann?
Ich muss auch einen DNS-Server hosten, was bedeutet, dass einer dieser VMs zwei IPs zugewiesen werden müssen und sie von außen zugänglich sein muss. Wie kann ich das mit Cloudmin machen? Ich hatte dazu hier eine Frage:Einer KVM-VM sind mehrere IP-Adressen zugewiesenAber ich habe gerade den gesamten Server neu formatiert und versuche, einen besseren Weg dafür 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.
EDIT: 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
Neustart und jetzt sieht meine Netzwerkkonfiguration so 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 auf 255.46.187.153 und die End-IP auf 255.46.187.158 eingestellt. Die CIDR ist 29 und das Gateway ist 255.46.187.152.
Ich habe einen Gast mit Ubuntu Server 12.04 x64 installiert, der während der Installation Internetressourcen abrufen konnte, jetzt aber nichts mehr erreichen kann und auch von nirgendwo mehr erreichbar ist. Seine Netzwerkkonfiguration ist:
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>
Und ich kann google.com nicht über DNS oder direkte IP anpingen, ich kann die VM oder den Host nicht von außen anpingen. Irgendwelche Ideen jetzt?
Antwort1
Das auf dem Gast konfigurierte Gateway ist keine IP des Hostcomputers. Ich würde diese Konfiguration auf dem Gast 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
Stellen Sie außerdem sicher, dass auf dem Host die Route zum Gast hinzugefügt wird. Fügen Sie diese zu /etc/network/interfaces 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 verwenden (255.46.187.152 und 255.46.187.159).
einige Ressourcen, leider nicht auf Englisch:
http://www.ingent.net/ca/2012/03/server-virtualization-kvm-hetzner/(katalanisch)
http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_der_einfache_Weg(Deutsch)
Antwort2
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
Edit: Entschuldigung für die „MASQUERADE“, ich habe einfach ein Skript kopiert und eingefügt, das ich noch herumliegen hatte. In deinem Fall brauchst du es nicht. Aber es kann in einem anderen Fall nützlich sein, zum Beispiel, wenn du deinen VMs private IPs geben willst.