Dedizierte Server verbinden (vSwitch)

Last change on 2024-06-12 • Created on 2020-11-03 • ID: NE-5A964

Überblick

Dedizierte Server können mit Cloud Privaten Netzwerken verbunden werden. Dies versetzt Cloud und dedizierte Server in die Lage sich gegenseitig über den privaten Netzwerklink zu erreichen. Wenn du zum Beispiel Web Frontends auf Cloud Servern betreibst, diese jedoch auf eine SQL Datenbank auf einem dedizierten Server zugreifen sollst, kannst du den privaten Link verwenden, um beide zu verbinden. Beachte allerdings, dass ein Dedicated Server aktuell nicht als Router für das Private Netzwerk eingerichtet werden kann (siehe diesen FAQ-Eintrag).

Beachte das Limit von 1 vSwitch pro Netzwerk.

Grober Überblick:

Grober Ueberblick

Dies funktioniert durch Nutzung der bestehenden Mechanismen für private Netzwerke auf beiden Systemen:

  • den privaten Netzwerk Mechanismus von Cloud, indem du dort ein "Network" anlegst und deine Cloud Server mit diesem verbindest
  • den privaten Netzwerk Mechanismus von dedizierten Servern, indem du dort einen "vSwitch" anlegst und deine dedizierten Server mit diesem verbindest

Beide Systeme werden dann gekoppelt, indem du ein Cloud Network Subnet vom Typ "vSwitch" anlegst. Diese verbindet das existierende Cloud "Network" mit dem existierenden "vSwitch". Die notwendige Netzwerkkonfiguration auf den Cloud Servern erfolgt automatisch. Die dedizierten Server erfordern jedoch eine spezielle Netzwerkkonfiguration in deinem Betriebssystem, damit die Kopplung funktioniert.

Details

Beispiel einer gekoppelten Konfiguration:

gekoppelte Konfiguration

Annahmen in diesem Dokument

Für den Rest des Dokumentes nehmen wir die folgende Konfiguration an:

  • dein Cloud Network ist 10.0.0.0/16 mit Subnets:
    • 10.0.0.0/24 für Cloud Server. 10.0.0.2 ist deinem Cloud Server zugewiesen
    • 10.0.1.0/24 für deine vSwitch Verbindung. Die IP 10.0.1.2 wird für deinen dedizierten Server genutzt
  • du hast einen vSwitch mit VLAN ID 4000
  • dein dedizierter Server hat das Netzwerk Interface enp0s31f6 als sein öffentliches Interface.

Im Folgenden musst du die Werte oben durch die tatsächlichen Werte deines Setups ersetzen.

Dedizierte Server mit Cloud Networks verbinden

Voraussetzungen

Auf der Cloud Seite

Du musst ein existierendes Cloud Network haben, mit dem bereits Cloud Server verbunden sind. Diese Cloud Server müssen sich gegenseitig auf deinen privaten IP-Adressen pingen können.

Ein Cloud Server cloudserver01 angehängt an ein Cloud Netzwerk sieht so aus:

Cloud Netzwerk

Auf der Seite der Dedicated Server sind standardmäßig nur die IP-Adressen der Cloud-Produkte sichtbar. Wenn auch die Netzwerk-Routen (Cloud Netzwerk ➔ "Routen"-Tab) verfügbar sein sollen, muss in der Hetzner Console im Aktionsmenü des entsprechenden Netzwerks die Option "Routen für vSwitch sichtbar machen" ausgewählt werden. Bis die Änderung verfügbar ist, können einige Minuten vergehen. Beachte bitte, dass die entsprechenden Routen auch auf den Cloud-Produkten konfiguriert werden müssen.

Cloud Netzwerk

Auf der Seite der dedizierten Server

Ein vSwitch muss bereits im Hetzner Robot existieren und die relevanten Server müssen mit ihm schon verbunden sein. Allerdings sollte noch keine Netzwerkkonfiguration auf den dedizierten Servern erfolgt sein. Folge diesem tutorial um einen vSwitch anzulegen, aber überspringe den Teil für die Netzwerkkonfiguration in deinem Betriebssystem.

Ein vSwitch mit VLAN ID 4000 und ein dedizierter Server sehen so aus:

vLAN mit dedicated

Schritt 1: Cloud: Subnetz vom Typ vSwitch anlegen

In der Hetzner Console: Klicke auf Networks, dann auf dein existierendes Netzwerk und wähle den Tab "Subnets" aus.

Tab "Subnets"

Klicke Subnet hinzufügen:

Subnet hinzufuegen

Hake "Enable dedicated server vSwitch connection" an und wähle den existierenden vSwitch aus, mit welchem du dein privates Netzwerk verbinden möchtest. Du kannst entweder die vorgeschlagene IP-Range nutzen oder selbst eine eingeben. Stell sicher, dass die IP-Range nicht die erste IP-Adresse des Netzwerks enthält, da diese reserviert ist (siehe Sind irgendwelche IP-Adressen reserviert?).

enable connection

Danach klickst du auf "Subnet hinzufügen". Du wirst Anweisungen zum Konfigurieren des Netzwerks auf deinem dedizierten Server erhalten:

Konfigurationsanweisungen

Du kannst entweder den Anweisungen folgen. Bitte stell dabei sicher, dass du den Namen des Netzwerkinterfaces, die vSwitch vlan id sowie die IP deines dedizierten Servers mit den korrekten Werten ersetzt. Oder du kannst die Netzwerkkonfiguration dauerhaft vornehmen wie Schritt 2 beschrieben.

Das Cloud Network und der vSwitch sind nun gekoppelt.

gekoppelt

Schritt 2: Netzwerkkonfiguration auf deinen dedizierten Servern

Bei Cloud Servern wird die Netzwerkkonfiguration im Betriebssystem automatisch durchgeführt. Bei dedizierten Servern musst du diese Konfiguration selbst vornehmen. Die notwendigen Schritte für eine nicht reboot feste Konfiguration sind detailliert im Dialog "Configuration of your dedicated Server" aus Schritt 1 beschrieben. Die Gründe für diese Konfiguration werden in diesem Schritt beschrieben.

Das Ziel der Konfiguration

  • Ein Netzwerk interface für das vSwitch vlan (getaggte vlan Pakete) erstellen und mtu auf 1400 konfigurieren.

  • Auf diesem interface: Eine IP-Adresse aus der IP-Range des Subnets vom typ vSwitch erstellen - im Beispiel oben 10.0.1.2. Die erste IP-Adresse dieses Subnet als gateway einstellen (10.0.1.1 im Beispiel). Stell sicher, dass jeder dedizierte Server seine eigene, einzigartige private IP-Adresse nutzt.

  • Eine Route für die Network IP-Range konfigurieren: 10.0.0.0/16 gw 10.0.1.1 im Beispiel oben.

Persistente Beispielkonfigurationen

Interface enp0s31f6 (normalerweise eth0, enp6s0 oder enp0s31f6 genannt), VLAN 4000
Cloud Network: 10.0.0.0/16
Cloud Server Subnet: 10.0.0.0/24
vSwitch Server Subnet: 10.0.1.0/24 und IP 10.0.1.2 für deinen dedizierten Server vSwitch vlan: 4000

Beispielkonfiguration für Debian
# /etc/network/interfaces
auto enp0s31f6.4000
iface enp0s31f6.4000 inet static
  address 10.0.1.2
  netmask 255.255.255.0
  vlan-raw-device enp0s31f6
  mtu 1400
  up ip route add 10.0.0.0/16 via 10.0.1.1 dev enp0s31f6.4000
  down ip route del 10.0.0.0/16 via 10.0.1.1 dev enp0s31f6.4000
Beispielkonfiguration mit netplan für Ubuntu 20.04 oder neuer

Installationen mittels installimage erstellen eine netplan-basierte Konfigurationen auf Ubuntu 20.04 oder neuer. Um das VLAN zu konfigurierst du die netplan Datei:

#/etc/netplan/01-netcfg.yaml
### Hetzner Online GmbH installimage
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s31f6:
      addresses:
...
  vlans:
    enp0s31f6.4000:
      id: 4000
      link: enp0s31f6
      mtu: 1400
      addresses:
        - 10.0.1.2/24
      routes:
        - to: "10.0.0.0/16"
          via: "10.0.1.1"

Nach dem Ausführen der folgenden Kommandos sollte das Netzwerk verfügbar sein:

sudo netplan generate
sudo netplan apply
Beispielkonfiguration für systemd-networkd

Erstelle zwei Dateien für systemd-networkd:

#/etc/systemd/network/10-enp0s31f6.4000.netdev
[NetDev]
Name=enp0s31f6.4000
Kind=vlan
MTUBytes=1400
[VLAN]
Id=4000
#/etc/systemd/network/10-enp0s31f6.4000.network
[Match]
Name=enp0s31f6.4000
[Network]
Description="VLAN 4000"
Address=10.0.1.2/24
[Route]
Gateway=10.0.1.1
Destination=10.0.0.0/16
GatewayOnlink=yes

Bei neueren systemd Versionen (v242+) musst du die Option (GatewayOnLink, grosses L!) in der letzten Zeile setzen.

Füge die folgende Zeile zur Datei hinzu:

#/etc/systemd/network/10-enp0s31f6.network
....
[Network]
...
VLAN=enp0s31f6.4000

Service neu starten:

sudo systemctl restart systemd-networkd

Schritt 3: Testen

Die Beispielwerte in dieser Sektion entsprechen denen im Kapital Annahmen oben.

3.1: Prüfen der korrekten Netzwerkkonfiguration deines Cloud Servers

Um die Routen anzuzeigen, führst du aus:

ip route show

Die Ausgabe sollte nun diese Zeilen enthalten:

10.0.0.0/16 via 10.0.0.1 dev ensXX
10.0.0.1 dev ensXX scope link

3.2: Prüfen der korrekten Netzwerkkonfiguration deines dedizierten Servers

Um die Routen anzuzeigen führst du aus:

ip route show

Die Ausgabe sollte nun diese Zeilen enthalten:

10.0.0.0/16 via 10.0.1.1 dev enp0s31f6.4000
10.0.1.0/24 dev enp0s31f6.4000 proto kernel  scope link  src 10.0.1.2

3.3: Cloud Server sollten von dedizierten Servern aus pingbar sein

Vom dedizierten Server pingst du die Cloud Server IP-Adresse:

$ ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=62 time=26.6 ms
...
Table of Contents