Host-Konfiguration
Der Server unter Ubuntu 18.04 wird vom Hetzner-Script installimage mit netplan installiert (vorher mit systemd-network).
Netzwerk-Konfiguration
Für Zusatz-IPs, Subnetze oder Fail-Over-IP-Adressen ist keine Konfiguration des Hosts-System nötig, wenn diese Adressen von den Xen-Gästen verwendet werden sollen.
Routed Network
Bei Hetzner muss xen als routed network betrieben werden. Die entsprechenden Konfigurations-Dateien /etc/xen/xl.conf sind dahingehend anzupassen:
vif.default.script="vif-route" vif.default.gatewaydev="eth0"
Statt eth0 muss die Bezeichnung der Netzwerkkarte verwendet werden.
Anschließend muss das Routing im System in der Datei /etc/sysctl.d/99-hetzner.conf aktiviert werden:
net.ipv4.ip_forward=1
Anschließend laden der Konfigurationen:
sysctl -p /etc/sysctl.conf
Konfiguration virtueller Maschinen
Nach der Einrichtung mit xen-tools existiert keine funktionierende Netzwerk-Konfiguration. Über die xen-Konsole muss das Netzwerk eingerichtet werden.
Netzwerk
Netzwerk-Einstellungen in /etc/systemd/network/10-eth0.network:
[Match] Name=eth0 [Address] Address=aaa.bbb.ccc.ddd Peer=AAA.BBB.CCC.DDD/32 [Route] Gateway=AAA.BBB.CCC.DDD
- aaa.bbb.ccc.ddd IP-Adresse der VM
- AAA.BBB.CCC.DDD IP-Adresse des Host-Systems
Durch die Verwendung von Peer (was PointToPoint) entspricht, können alle IP-Adressen eines Subnetzes verwendet werden, da kein Routing im Subnetz benötigt wird.
Konfiguration laden
systemctl enable systemd-networkd service systemd-networkd start ip route add default via AAA.BBB.CCC.DDD
- AAA.BBB.CCC.DDD IP-Adresse des Host-Systems
Nameserver ohne systemd
systemctl disable systemd-resolved.service systemctl stop systemd-resolved rm /etc/resolv.conf cat << EOF > /etc/resolv.conf nameserver 213.133.98.98 nameserver 213.133.100.100 nameserver 213.133.99.99 EOF service postfix restart
Nameserver mit systemd
In Datei /etc/systemd/resolved.conf ergänzen:
DNS=213.133.98.98 213.133.100.100 213.133.99.99
Konfiguration laden
service systemd-resolved restart
Resolver-Status kontrollieren
systemd-resolve --status
Löschen /etc/network/interfaces
Die alte Konfiguration muss noch gelöscht werden, damit diese nicht später genutzt wird.
rm /etc/network/interfaces
Weitere IP-Adressen konfigurieren
Werden weitere IP-Adressen benötigt (z.B. eine zusätzliche Failover-IP), wird diese als weitere IP-Adresse in der Xen-Gast-Konfiguration hinterlegt:
vif = [ 'ip=aaa.bbb.ccc.ddd/32 eee.fff.ggg.hhh/32 iii.jjj.kkk.lll/32,mac=AA:AA:AA:AA:AA:AA', ]
Es empfiehlt sich, eine MAC-Adresse zu vergeben, um nach dem Neustart eines Gastes nicht mit dem arp-cache des Hosts in Konflikt zu geraten.
Die IP-Adressen werden alle auf eth0 im Gast zur Verfügung gestellt.
Die Konfiguration von eth0 muss entsprchend in /etc/systemd/network/10-eth0.network angepasst werden:
[Match] Name=eth0 [Address] Address=aaa.bbb.ccc.ddd Peer=AAA.BBB.CCC.DDD/32 [Address] Address=eee.fff.ggg.hhh Peer=AAA.BBB.CCC.DDD/32 [Address] Address=iii.jjj.kkk.lll Peer=AAA.BBB.CCC.DDD/32 [Route] Gateway=AAA.BBB.CCC.DDD
- aaa.bbb.ccc.ddd IP-Adresse der ursprünglichen IP-Adresse
- eee.fff.ggg.hhh IP-Adresse der zusätzlichen IP-Adresse
- iii.hhh.jjj.lll IP-Adresse der weiteren zusätzlichen IP-Adresse
- AAA.BBB.CCC.DDD IP-Adresse des Host-Systems
Nicht immer funktioniert der Neustart von systemd-networkd sauber. Ein reboot des Systems liefert verlässlichere Ergebnisse.
Aktualisiert am 2018-12-17. Die vorherige Lösung mit verschiedenen Netzwerk-Adaptern im Gast hat sich nicht bewährt.