vSwitch

Last change on 2023-07-25 • Created on 2020-03-25 • ID: RO-E8779

Einführung

Hetzner Online hat mit dem vSwitch ein Feature für Ihre Dedicated Root Server implementiert, welches Ihnen ermöglicht, Ihre Server standortübergreifend über virtuelle Layer-2 Netzwerke miteinander zu verbinden. Sie haben in Ihrer Administrationsoberfläche Robot über den Button vSwitches in der Serverübersicht die Möglichkeit, vSwitches anzulegen und zu konfigurieren.

Der vSwitch nutzt den Uplink Ihres Servers. Daher ist eine weitere NIC nicht nötig.

alt text

Wie erstelle ich einen vSwitch?

Sie können einen vSwitch im Robot unter Hauptfunktionen-> Server -> vSwitches anlegen. Dabei vergeben Sie einen Namen und eine VLAN-ID. Die VLAN-ID kann im Bereich von 4000 bis 4091 liegen.

alt text

Nachdem der vSwitch angelegt ist, können Sie Ihre Dedicated Root Server über den Button Server hinzufügen dem vSwitch zuordnen. Die zugeordneten Server können nun über die eingestellte VLAN-ID miteinander kommunizieren.

Die Haupt-IP-Adresse und die zusätzlichen IP-Adressen / Subnetze eines Servers sind weiterhin ohne VLAN-Tagging erreichbar.

Pro Switchport gibt es eine Limitierung von 32 MAC Adressen.

Einem vSwitch können bis zu 100 Server zugeordnet werden.

Ein Server kann bis zu 5 vSwitchen zugeordnet sein.

alt text

IP-Adressen

Sie können innerhalb des VLANs beliebige private IP-Adressen kostenfrei nutzen. Optional haben Sie die Möglichkeit, über den Reiter IPs zusätzlich öffentliche Subnetze (IPv4 und IPv6) zu bestellen. Diese Subnetze können an allen dem vSwitch zugeordneten Servern genutzt werden.

Die Preise dazu finden Sie hier.

Preise inkl. 19 % USt

Traffic

Der interne Traffic (standortübergreifend) ist kostenlos. Für die öffentlichen Subnetze gilt: Die vSwitches haben einen Inklusiv-Traffic von 1TB pro Monat, jedes weitere angefangene TB wird mit 1,19 €/Monat (inkl. 19 % USt) berechnet. Als Verrechnungsbasis wird hier der hetzner-ausgehende Traffic herangezogen.

Achtung: Der Traffic des vSwitches erfolgt über die Haupt-NIC. Eine weitere NIC ist daher nicht nötig.

Firewall

Die Firewall der Server wird auch auf die Pakete der vSwitches angewandt. Bitte beachten Sie, dass Sie bei aktivierter Firewall auch interne IP-Adressen in der Firewall freigeben müssen.

Server-Konfiguration (Linux)

Für den vSwitch muss ein Interface mit der im Robot eingestellen VLAN-ID konfiguriert werden. Zusätzlich sollte die MTU des Interface auf 1400 herabgesetzt werden.

Beispielkonfiguration für die Netzwerkkarte "enp0s31f6", mit VLAN-ID 4000

VLAN-Device erstellen:

ip link add link enp0s31f6 name enp0s31f6.4000 type vlan id 4000
ip link set enp0s31f6.4000 mtu 1400
ip link set dev enp0s31f6.4000 up

IP-Adresse <192.168.100.1> aus dem privaten Subnetz <192.168.100.0/24> konfigurieren:

ip addr add 192.168.100.1/24 brd 192.168.100.255 dev enp0s31f6.4000

Öffentliches Subnetz

Für das öffentliche Subnetz muss eine weitere Routing-Tabelle angelegt werden, um ein weiteres Default-Gateway konfigurieren zu können.

Beispielkonfiguration für die IP <213.239.252.50> aus dem öffentlichen Subnetz <213.239.252.48/29>, Interface enp0s31f6.4000

echo "1 vswitch" >> /etc/iproute2/rt_tables
ip addr add 213.239.252.50/29 dev enp0s31f6.4000
ip rule add from 213.239.252.50 lookup vswitch
ip rule add to 213.239.252.50 lookup vswitch
ip route add default via 213.239.252.49 dev enp0s31f6.4000 table vswitch

Beispielkonfiguration Debian

Interface enp0s31f6, VLAN 4000, privates Netzwerk

# /etc/network/interfaces
auto enp0s31f6.4000
iface enp0s31f6.4000 inet static
  address 192.168.100.1
  netmask 255.255.255.0
  vlan-raw-device enp0s31f6
  mtu 1400

Hinzufügen IP <213.239.252.50> aus öffentlichem Subnetz <213.239.252.48/29> und IPv6 <2001:db8:61:20e1::2> aus öffentlichem Subnet <2001:db8:61:20e1::/64> auf dem Hostsystem.

Zusätzliche Routingtabelle anlegen

echo "1 vswitch" >> /etc/iproute2/rt_tables
# /etc/network/interfaces
auto enp0s31f6.4000
iface enp0s31f6.4000 inet static
  address 192.168.100.1
  netmask 255.255.255.0
  vlan-raw-device enp0s31f6
  mtu 1400
  # ipv4 subnet
  up ip addr add 213.239.252.50/29 dev enp0s31f6.4000
  up ip rule add from 213.239.252.50 lookup vswitch
  up ip rule add to 213.239.252.50 lookup vswitch
  up ip route add default via 213.239.252.49 dev enp0s31f6.4000 table vswitch
  down ip addr del 213.239.252.50/29 dev enp0s31f6.4000
  down ip route del default via 213.239.252.49 dev enp0s31f6.4000 table vswitch
  down ip rule del to 213.239.252.50 lookup vswitch
  down ip rule del from 213.239.252.50 lookup vswitch
  # ipv6 subnet
  up ip -6 addr add 2001:db8:61:20e1::2/64 dev enp0s31f6.4000
  up ip -6 rule add from 2001:db8:61:20e1::2 lookup vswitch
  up ip -6 rule add to 2001:db8:61:20e1::2 lookup vswitch
  up ip -6 route add default via 2001:db8:61:20e1::1 dev enp0s31f6.4000 table vswitch
  down ip -6 addr del 2001:db8:61:20e1::2/125 dev enp0s31f6.4000
  down ip -6 route del default via 2001:db8:61:20e1::1 dev enp0s31f6.4000 table vswitch
  down ip -6 rule del to 2001:db8:61:20e1::2 lookup vswitch
  down ip -6 rule del from 2001:db8:61:20e1::2 lookup vswitch

Beispielkonfiguration für systemd

Interface enp0s31f6 (wird in aller Regel eno0, eth0, enp6s0 oder enp0s31f6 heißen), VLAN 4000, privates Netzwerk. Wenn das Netzwerk nicht enp0s31f6, dann entsprechend unten ersetzen.

Zwei neue Dateien für systemd-networkd einrichten:

#/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=192.168.100.2/24

Bestehende Netzwerkdatei um eine Zeile erweitern:

#/etc/systemd/network/10-enp0s31f6.network
....
[Network]
...
VLAN=enp0s31f6.4000
sudo systemctl restart systemd-networkd

Beispielkonfiguration für systemd und netplan (z.B. Ubuntu 18.04)

Neuere Instanzen von installimage erzeugen bei Ubuntu 18.04 netplan-basierte Netzwerk-Konfigurationen. Das Verzeichnis /etc/systemd/network/ ist dann leer. Um das VLAN einzurichten, muss man die Netplan-Datei ändern:

#/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:
        - 192.168.100.2/24

Danach muss man folgende Befehle ausführen und das Netzwerk sollte verfügbar sein:

sudo /lib/netplan/generate
sudo systemctl restart systemd-networkd

Es gibt in netplan offenbar noch einen Glitch (s. hier auch https://askubuntu.com/questions/1191365/netplan-not-applying-correct-mtu-to-vlan) bei den MTUs. Diese müssen manuell per ip-Befehl gesetzt werden:

sudo /sbin/ip link set mtu 1400 dev enp0s31f6.4000

Will man das ganze über den Neustart retten, hilft ein Eintrag ins crontab (z.B. das von root, also sudo crontab -e ausführen):

@reboot sleep 10 && /sbin/ip link set mtu 1400 dev enp0s31f6.4000

Server-Konfiguration (Windows)

siehe vSwitch für Windows Server

API

Die vSwitches können auch über den Robot-Webservice (API) konfiguriert werden.

Fehlersuche bei vSwitch-Verbindungsproblemen

Bei Verbindungsproblemen mit dem vSwitch besteht der erste Schritt der Fehlerbehebung darin, den vSwitch neu zu starten (zu aktualisieren). Dies geschieht durch die folgenden Schritte:

1: Melden Sie sich bei Robot an und wählen Sie auf der linken Seite Server und dann den Menüpumkt vSwitch aus. 2: Wählen Sie den betreffenden vSwitch aus, zum Beispiel #99999. 3: Drücken Sie die Schaltfläche "Alle auswählen" am unteren Rand und klicken Sie auf die Schaltfläche "Aktualisieren".

Wenn dies das Problem nicht behebt, entfernen Sie bitte alle Server aus dem vSwitch und fügen Sie sie wieder hinzu. Wenn das Problem weiterhin besteht, muss es eskaliert werden. Bitte erstellen Sie ein Support-Ticket und führen Sie die Schritte auf, die Sie zur Behebung des Problems unternommen haben.

Table of Contents