Dedizierte Server verbinden (vSwitch)

Last change on 2023-06-21 • Created on 2020-11-03 • ID: CL-EE905

Überblick

Dedizierte Server können mit Cloud Privaten Netzen verbunden werden. Dies versetzt Cloud und dedizierte Server in die Lage sich gegenseitig über den privaten Netzwerklink zu erreichen. Wenn Sie zum Beispiel Web Frontends auf Cloud Servern betreiben, diese jedoch auf eine SQL Datenbank auf einem dedizierten Server zugreifen sollen so können Sie den privaten Link verwenden um beide zu verbinden.

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 Sie dort ein "Network" anlegen und Ihre Cloud Server mit diesem verbinden
  • den privaten Netzwerk Mechanismus von dedizierten Servern indem Sie dort einen "vSwitch" anlegen und Ihre dedizierten Server mit diesem verbinden

Beide Systeme werden dann gekoppelt, indem Sie ein Cloud Network Subnet vom Typ "vSwitch" anlegen. 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 Ihrem 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:

  • Ihr Cloud Network ist 10.0.0.0/16 mit Subnets:
    • 10.0.0.0/24 für Cloud Server. 10.0.0.2 ist Ihrem Cloud Server zugewiesen
    • 10.0.1.0/24 für Ihre vSwitch Verbindung. Die IP 10.0.1.2 wird für Ihren dedizierten Server genutzt
  • Sie haben einen vSwitch mit VLAN ID 4000
  • Ihr dedizierter Server hat das Netzwerk Interface enp0s31f6 als sein öffentliches Interface.

Im Folgenden müssen Sie die Werte oben durch die tatsächlichen Werte Ihres Setups ersetzen.

Dedizierte Server mit Cloud Networks verbinden

Voraussetzungen

Auf der Cloud Seite

Sie müssen ein existierendes Cloud Network haben, mit dem bereits Cloud Server verbunden sind. Diese Cloud Server müssen sich gegenseitig auf Ihren 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 Cloud 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. Beachten Sie 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. Folgen Sie diesem tutorial um einen vSwitch anzulegen aber überspringen Sie den Teil für die Netzwerkkonfiguration in Ihrem 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 Cloud Console: Klicken Sie auf Networks, dann auf Ihr existierendes Netzwerk und wählen Sie den Tab "Subnets" aus.

Tab "Subnets"

Klicken Sie Subnet hinzufügen:

Subnet hinzufuegen

Haken Sie "Enable dedicated server vSwitch connection" an und wählen sie den existierenden vSwitch aus, mit welchem Sie Ihr privates Netzwerk verbinden möchten. Sie können entweder die vorgeschlagene IP-Range nutzen oder selbst eine eingeben.

enable connection

Danach klicken Sie auf "Subnet hinzufügen". Sie werden Anweisungen zum Konfigurieren des Netzwerks auf Ihrem dedizierten Server erhalten:

Konfigurationsanweisungen

Sie können entweder den Anweisungen folgen. Bitte stellen Sie dabei sicher, dass sie den Namen des Netzwerkinterfaces, die vSwitch vlan id sowie die IP Ihres dedizierten Servers mit den korrekten Werten ersetzen. Oder aber Sie können die Netzwerkkonfiguration dauerhaft vornehmen wie Schritt 2 beschrieben.

Das Cloud Network und der vSwitch sind nun gekoppelt.

gekoppelt

Schritt 2: Netzwerkkonfiguration auf Ihren dedizierten Servern

Bei Cloud Servern wird die Netzwerkkonfiguration im Betriebssystem automatisch durchgeführt. Bei dedizierten Servern müssen Sie 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). Stellen Sie 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 Ihren 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 für systemd und netplan (z.B. Ubuntu 18.04)

Neuere Installationen mittels installimage erstellen netplan-basierte Konfigurationen auf Ubuntu 18.04. Das /etc/systemd/network/ Verzeichnis wird leer sein. Um das vlan zu konfigurieren ändern Sie 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 /lib/netplan/generate
sudo systemctl restart systemd-networkd
Beispielkonfiguration für systemd

Erstellen sie 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+) müssen Sie die Option (GatewayOnLink, grosses L!) in der letzten Zeile setzen.

Fügen Sie 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 Ihres Cloud Servers

Um die Routen anzuzeigen führen Sie 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 Ihres dedizierten Servers

Um die Routen anzuzeigen führen Sie 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 pingen Sie 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