Privates Netzwerk für Cloud Server einrichten (Ubuntu 22.04)

Mit einem privaten Netzwerk können Sie Ihr bestehendes Netzwerk in mehrere logische Netzwerke unterteilen. Durch diese Unterteilung erhalten Sie eine größere Flexibilität, wenn Sie Ihre Server einzelnen Netzwerksegmenten zuordnen möchten. 

In einem privaten Netzwerk kommunizieren die Server über lokale IPs, die nicht im Internet geroutet werden. 

Cloud Server mit Ubuntu 22.04-Image von IONOS, die Sie neu erstellen

Wenn Sie einen Cloud Server mit einem Ubuntu 22.04-Image von IONOS erstellen und hierbei ein bestehendes oder ein neues privates Netzwerk auswählen, wird der neue Server automatisch zum ausgewählten, privaten Netzwerk hinzugefügt. Sobald der neu erstellte Server dem gewünschten privaten Netzwerk zugewiesen ist, ist auf diesem ein zusätzliches Netzwerkinterface vorhanden, das bereits automatisch für die Nutzung des privaten Netzwerks konfiguriert ist.

Cloud Server mit Ubuntu 22.04-ISO-Image und bereits existierende Cloud Server mit Ubuntu 22.04-Image

Wenn Sie einen bereits existierenden Server zu einem privaten Netzwerk hinzufügen, müssen Sie anschließend das Netzwerkinterface manuell konfigurieren, um auf das private Netzwerk zugreifen zu können. Sobald der Server dem privaten Netzwerk zugewiesen wurde, ist auf dem zugewiesenen Server ein zusätzliches, nicht konfiguriertes Netzwerkinterface vorhanden. Dies gilt auch für neu erstellte Cloud Server mit einem Ubuntu 22.04-ISO-Image.

So konfigurieren Sie das Netzwerkinterface für das private Netzwerk:

Voraussetzungen
  • Sie haben ein privates Netzwerk erstellt.

  • Sie haben im Cloud Panel den gewünschten Server dem privaten Netzwerk zugewiesen.

Prüfen, ob netplan für die Netzwerkkonfiguration verwendet wird

Um zu prüfen, ob Ihr Server bereits netplan für die Netzwerkkonfiguration verwendet, gehen Sie wie folgt vor:

  • Wechseln Sie in das Verzeichnis /etc/netplan.
    [root@localhost ~]# cd /etc/netplan

  • Prüfen Sie, ob sich in diesem Verzeichnis nicht bereits eine Konfigurationsdatei befindet. Geben Sie hierzu den folgenden Befehl ein:
    [root@localhost ~]# ls

Hinweis

Wenn das Verzeichnis /etc/netplan nicht existiert, wurde netplan nicht installiert. Installieren Sie in diesem Fall nicht Netplan, sondern folgen Sie in diesem Fall den Schritten, die im folgenden Artikel beschrieben werden:

Privates Netzwerk für Cloud Server einrichten (Debian/Ubuntu)

Netzwerkinterface ermitteln

  • Ermitteln Sie die Dateinamen der Netzwerkinterfaces und die verwendeten IP-Adressen. Geben Sie hierzu den folgenden Befehl ein:
    [root@localhost ~]# ip addr
    Beispiel:
    [root@localhost ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:50:56:2b:2c:68 brd ff:ff:ff:ff:ff:ff
        inet 82.165.76.161/32 brd 212.227.209.26 scope global dynamic ens192
           valid_lft 33737sec preferred_lft 33737sec
        inet6 fe80::250:56ff:fe2b:2c68/64 scope link
           valid_lft forever preferred_lft forever
    3: ens224: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 00:50:56:20:cf:11 brd ff:ff:ff:ff:ff:ff

    In diesem Beispiel lautet der Name des Netzwerkinterfaces ens192. Der Name des nicht konfigurierten Netzwerkinterfaces für das private Netzwerk lautet ens224.

  • Notieren Sie sich die Namen der Netzwerkinterfaces.

Standard-DNS-Server anzeigen

  • Um die verwendeten DNS-Server anzuzeigen, geben Sie die folgenden Befehle ein:
    [root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv
    [root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers6 -Lv

  • Anschließend werden die verwendeten DNS-Server am Ende der Ausgabe angezeigt. Beispiel:
    [root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv
    *   Trying 169.254.169.254...
    * TCP_NODELAY set
    * Connected to 169.254.169.254 (169.254.169.254) port 80 (#0)
    > GET /latest/meta_data/dns/nameservers HTTP/1.1
    > Host: 169.254.169.254
    > User-Agent: curl/7.61.1
    > Accept: */*

    < HTTP/1.1 200 OK
    < Date: Thu, 08 Sep 2022 12:19:36 GMT
    < Server: Apache
    < Strict-Transport-Security: max-age=63072000; includeSubDomains
    < Vary: Accept-Encoding
    < Access-Control-Allow-Origin: *
    < Access-Control-Allow-Headers: X-TOKEN, X-HASH, X-MICROTIME, X-USER, Content-Type, X-API-TOKEN, Authorization
    < Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
    < Access-Control-Expose-Headers: Error-Msg
    < Cache-control: no-cache, no-store, max-age=0
    < Access-Control-Allow-Origin: *
    < Access-Control-Allow-Headers: X-TOKEN, X-HASH, X-MICROTIME, Content-Type, X-API-TOKEN, Authorization
    < Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
    < Access-Control-Expose-Headers: Error-Msg
    < Transfer-Encoding: chunked
    < Content-Type: text/plain;charset=UTF-8

    212.227.123.16,212.227.123.17
    * Connection #0 to host 169.254.169.254 left intact

  • Notieren Sie die DNS-Server. Im oben genannten Beispiel werden die DNS-Server oberhalb von der Zeile * Connection #0 to host 169.254.169.254 left intact angezeigt.

Gateway für IPv4 und IPv6 anzeigen

  • Um das Standard-Gateway der aktiven Schnittstelle anzuzeigen, geben Sie die folgenden Befehle ein:

    IPv4:
    [root@localhost ~]# ip route show | grep 'default'
    IPv6:
    [root@localhost ~]# ip -6 route show | grep 'default'

  • Notieren Sie die IP-Adressen der Gateways. Diese sind direkt hinter dem Teil default via aufgeführt. Beispiele:

    IPv4 Gateway
    root@localhost:~# ip route show | grep 'default'
    default via 10.255.255.1 dev ens192 proto static onlink
    default via 10.255.255.1 dev ens192 proto dhcp src 217.160.141.60 metric 100

    IPv6 Gateway
    root@localhost:~# ip -6 route show | grep 'default'
    default via fe80::1 dev ens192 proto ra metric 100 expires 3sec pref high
    default via fe80::1 dev ens192 proto static metric 1024 pref medium

Statische Konfiguration der IPv4- und IPv6-Adressen sowie des privaten Netzwerks

  • Prüfen Sie, ob sich im unten stehenden Verzeichnis nicht bereits eine Konfigurationsdatei befindet. Geben Sie hierzu den folgenden Befehl ein:
    [root@localhost ~]# ls /etc/netplan

  • Wenn sich in diesem Verzeichnis die Datei 00-Public_network.yaml befindet befindet, öffnen Sie diese mit dem Edito vi. Wenn diese Datei nicht existiert, können Sie diese mit dem gleichen Befehl erstellen. Geben Sie hierzu den folgenden Befehl ein:
    [root@localhost ~]# sudo vi etc/netplan/00-Public_network.yaml
    Wenn sich in diesem Verzeichnis die Datei 01-netcfg.yaml befindet, benennen Sie diese um. Geben Sie hierzu den folgenden Befehl ein und ersetzen Sie die Platzhalter.
    [root@localhost ~]# mv ALTE_KONFIGURATIONSDATEI.yaml 00-Public_network.yaml

Hinweise
  • Der Editor vi verfügt über einen Einfügemodus und einen Befehls- oder Kommandomodus. Den Einfügemodus können Sie mit der Taste [i] aufrufen. In diesem Modus werden die eingegebenen Zeichen sofort in den Text eingefügt. Um den Befehlsmodus aufzurufen, drücken Sie anschließend [ESC]. Wenn Sie den Befehlsmodus nutzen, werden Ihre Tastatureingaben als Befehl interpretiert.

  • Um vi zu beenden und die Datei zu speichern, geben Sie den Befehl :wq ein und drücken Sie anschließend Enter.

  • Fügen Sie die folgenden Informationen ein:
    network:
      ethernets:
        NETZWERKINTERFACE:
          addresses:
            - HAUPT-IPv4-ADRESSE/32
            - ZUSÄTZLICHE IPv4-ADRESSE 1/32
            - HAUPT-IPv6-ADRESSE/64
            - ZUSÄTZLICHE IPv6-ADRESSE 1/64 
          gateway6: GATEWAY FÜR IPv6
          nameservers:
            addresses:
              - IP-ADRESSE VON NAMESERVER 1
              - IP-ADRESSE VON NAMESERVER 2 
          routes:
            - on-link: true
              to: default
              via: STANDARD-GATEWAY DER AKTIVEN SCHNITTSTELLE
        NAME_DES_PRIVATEN_NETZWERKINTERFACES:
          addresses:
          - IP-ADRESSE_DES_SERVERS_IM_PRIVATEN_NETZWERK/32
          dhcp4: false
      version: 2


    Beispiel:
    network:
      ethernets:
        ens192:
          addresses:
          - 82.165.76.161/32
          - 217.160.212.178/32
          - 2001:8d8:1801:853c::1/64
          - 2001:8d8:1801:853c::2/64
          gateway6: fe80::1
          nameservers:
            addresses:
            - 212.227.123.16
          routes:
          - on-link: true
            to: default
            via: 10.255.255.1
        ens224:
          addresses:
           - 192.168.2.7/24
          dhcp4: false
      version: 2

  • Ersetzen Sie den Platzhalter NETZWERKINTERFACE durch das Interface Device ens192. Tragen Sie anschließend die Haupt-IPv4-Adresse und die zusätzliche IPv4-Adressen sowie die Haupt-IPv6-Adresse und die zusätzlichen IPv6-Adressen ein. Ersetzen Sie hierzu die Platzhalter.

Achtung
  • Die Einrückung gehört zu Syntax des YAML-Formats. Stellen Sie daher sicher, dass diese korrekt eingehalten werden. Anderenfalls kann die Konfiguration nicht korrekt übernommen werden und der Server ist ggf. nicht mehr erreichbar.

  • Verwenden Sie für die Einrückungen stets die Leertaste.

  • Ersetzen Sie den Platzhalter GATEWAY FÜR IPv6 mit dem ermittelten IPv6-Gateway.

  • Ersetzen Sie den Platzhalter IP-ADRESSE VON NAMESERVER 1 und IP-ADRESSE VON NAMESERVER 2 mit den ermittelten Nameservern.

  • Ersetzen Sie den Platzhalter STANDARD-GATEWAY DER AKTIVEN SCHNITTSTELLE mit dem  ermittelten IPv4-Gateway.

  • Ersetzen Sie den Platzhalter NAME_DES_PRIVATEN_NETZWERKINTERFACES mit dem Namen des privaten Netzwerkinterfaces.

  • Ersetzen Sie den Platzhalter IP-ADRESSE_DES_SERVERS_IM_PRIVATEN_NETZWERK.

  • Um die Konfigurationsdatei zu prüfen, geben Sie den folgenden Befehl ein:
    root@localhost:~# netplan --debug apply

Achtung

Die von Ihnen vorgenommenen Änderungen in der Konfigurationsdatei bleiben bestehen und müssen von Ihnen geändert werden, wenn  diese nicht korrekt sind. Anderenfalls wird das Betriebssystem nach einem Neustart versuchen, diese zu laden.

  • Führen Sie einen Neustart des Servers durch, damit die Änderungen übernommen werden. Geben Sie hierzu den folgenden Befehl ein:
    systemctl reboot