Skip to content

Netzwerkinterfaces des LD-Server

Zwischen dem Host ldhost und virtuellen Maschinen, sowie den modulspezifischen LXC's fungiert ein virtueller Switch auf Basis von Open vSwitch, kurz OvS. Dabei handelt es sich um einen virtuellen Multilayer Software Switch, der unter der Open-Source Apache 2.0 Lizenz steht.

Selbstverständlich lassen sich Netzbereiche, IP-Adressen und Zuordnungen der Schnittstellen auch nach der Grundinstallation anpassen. Bitte bedenken Sie jedoch, dass die Standardkonfiguration hinsichtlich der IP-Bereiche gut durchdacht ist und sich bewährt hat.

Physische Interfaces

Die physischen Netzwerkschnittstellen des LD-Servers sind mit einem vorangegangenen p_ gekennzeichnet, wie beispielweise p_extern oder p_intern.

Über systemd (Ubuntu 16.04 oder höher) findet sich die Netzwerkkonfiguration auf dem ldhost unter /etc/systemd/network. Für jedes physische Interface liegt dort eine entsprechende .link-Datei vor, in der im Wesentlichen die MAC-Adresse des Adapters und der Name der Schnittstelle gespeichert sind.

systemd interfaces

Die Netzwerkschnittstellen können mit diversen Tools angezeigt werden. Angefangen mit dem bordeigenen Tool ip oder dem nachinstallierbaren Tool inxi.

Auszug der Schnittstellenkonfiguration eines LD-Servers mittels inxi:

inxi ausgabe

Eine Umkonfiguration einer physischen Schnittstelle auf eine andere physische Schnittstelle erfordert nun die MAC-Adresse des neuen Interfaces.

Am Beispiel von p_extern muss in der Datei 80-p_extern.link eine Anpassung des Felds MACAddress erfolgen:

cd /etc/systemd/network
vi 80-p_extern.link
1
2
3
4
[Match]
MACAddress=00:62:0b:9d:c3:b6
[Link]
Name=p_extern

Info

Eine MAC-Adresse darf immer nur an eine physische Schnittstelle gebunden sein.

Zur Übernahme der Anpassung muss dies der initramfs-Datei mitgeteilt werden, sowie im Anschluss ein Server-Neustart erfolgen.

update-initramfs -u
reboot

Durch den Neustart lädt der Kernel die geänderte Scnhnittstellenkonfiguration.

Externen Netzwerkbereich ändern

An der physischen Schnittstelle p_extern des LD-Servers wird im Normalfall per Kabel zum vorangeschalteten Router (Gateway) eine Verbindung ins Internet ermöglicht. Damit erhält der LD-Server eine IP-Adresskonfiguration im Netzwerkbereich des Routers. In vielen Fällen ist das ein Standard 192.168.1.X Netzwerk mit einer /24 Subnetzmaske.

Die Zuweisung kann sowohl automatisch über DHCP vom Router erfolgen als auch manuell über eine statische IP-Adresskonfiguration. In beiden Fällen wird die Konfiguration auf dem ldhost in der Datei /etc/network/interfacesvorgenommen.

ldhost
1
2
3
4
5
6
# Statische IP-Konfiguration
auto p_extern
iface p_extern inet static
address 192.168.1.254
netmask 255.255.255.0
gateway 192.168.1.1
ldhost
1
2
3
# Automatische IP-Konfiguration über DHCP
auto p_extern
iface p_extern inet dhcp

Danach muss zur Übernahme der geänderten Netzwerkkonfiguration der LD-Server neu gestartet werden.

Internen Netzwerkbereich anpassen

Bis auf das externe Interface p_extern, werden alle anderen Interfaces über Puppet gemanaged und von OvS (Open vSwitch) verwaltet. Die Einstellungen landen zwar letztendlich im ldhost in /etc/network/interfaces.d/ovs werden aber im Container puppeteer-g3 konfiguriert.

Zu den internen Netzwerkbereichen zählen das Schulnetzwerk intern, dass auch über das p_intern Interface an die Clients ausgegeben wird, als auch das sog. servernet, welches vornehmlich für die Kommunikation der auf dem ldhost befindlichen LXC's Verwendung findet.

Achtung

Die Änderung des Netzwerkbereichs bzw. der Bereiche hat gravierende Auswirkungen auf das gesamte System und sollte nur von erfahrenen Netzwerkadimistratoren vorgenommen werden.

Eine Anpassung der Netzwerkbereiche ist in der Regel nicht notwendig. In Ausnahmesituationen beispielweise wenn der Bereich schon vom externen Netzwerk aufgespannt wird oder ein Verwaltungszugang über das KISS-Netz besteht bedarf es einer Änderung der Netzwerkbereiche.

  1. IP-Adresse der Schnittstelle intern am ldhost setzen

    root@puppeteer-g3:~ # vi /etc/logodidact/hiera/custom.d/ldhost.yaml

    ldhost.yaml
    profile::network:
      interface:
        p_intern:
          ovs_type: OVSPort
          vlan-mode: access
          vlan-untagged: ld-intern
          type: manual
        intern:
          type: static
          suffix: 1
    

    Wie unschwer zu erkennen ist, taucht für das Interface intern keine IP-Adresse auf. Diese wird dynamisch aus dem gewählten Netzwerkbereich und dem Parameter suffix gebildet. Der Wert suffix 1 bedeutet, dass sich der ldhost automatisch die erste freie IP aus seinem Netzwerkbereich (Standard 10.16.0.0) holt, was in der Praxis der IP-Adresse 10.16.0.1 enspricht. Die dynamische Zuordnung der IP-Adresse hat den Vorteil, dass sie bei einer Änderung des Netzwerkbereichs automatisch korrekt angepasst wird.

    Wenn man die IP des ldhost statisch festlegen möchte oder muss, ersetzt man suffix 1 durch Angabe von IP und Subnetzmaske des Servers. Hierbei kann man die Netzmaske komplett ausschreiben 255.240.0.0 oder die Kurznotation verwenden, wie sie im unten stehenden Beispiel verwendet wird:

    ldhost.yaml
    profile::network:
      interface:
        p_intern:
          ovs_type: OVSPort
          vlan-mode: access
          vlan-untagged: ld-intern
          type: manual
        intern:
          type: static
          ip:
            - 10.16.0.1/12
    
  2. Netzwerkbereich für intern definieren

    Der eigentliche Netzwerkbereich wird ebenfalls im puppeteer-g3 in der sog. custom.yaml definiert. In dieser Datei sind vom Standard abweichende Konfigurationen festgehalten. Um den Bereich anzupassen, ersetzen Sie nun im Block internal den Standardbereich durch den gewünschten neuen Bereich.

    root@puppeteer-g3:~ # vi /etc/logodidact/hiera/custom.yaml

    custom.yaml
    global::network:
      scopes:
        servernet:
          [...]
        dmz:
          ld-dmz:
            [...]
        internal:
          ld-intern:
            guestinterface: intern
            net:
            - 10.16.0.0/255.240.0.0
    

    Die Änderungen wie gewohnt speichern und ins GIT commiten, sowie prun im ldhost durchführen.

    git add .
    git commit -am "NAME: Netzwerkbereich für intern angepasst"
    
  3. IP-Adresse des logosrv anpassen

    Der logosrv bildet die Brücke zwischen den physischen Geräten im Schulnetzwerk und den Modulen und Diensten, die auf dem LD-Server bereitgestellt werden. Deshalb muss eine Änderung der IP-Adresskonfiguration ebenfalls für die interne Schnittstelle des logosrv erfolgen. Passen Sie nun im Block [Internal] für IPAddress und Netmask die Werte an.

    root@logosrv:~ # vi /etc/logodidact/network.conf

    network.conf
    1
    2
    3
    4
    5
    6
    [Internal]
    IPAddress 10.16.1.1
    Netmask 255.240.0.0
    Device intern
    Scope internal
    Comment internes Interface (Verbindung zum LAN)
    

    Zum Schluss muss zur Übernahme der Befehl do_netconf --all abgesetzt werden.

  4. LD-Server neu starten

    Da eine Re-Inititalisierung aller virtuellen und pysischen Netzwerkschnittstellen erforderlich ist, den LD-Server einmal neu starten.

Zusätzliches physisches Interface definieren

Nachfolgend wird eine physische Schnittstelle mit der Bezeichnung p_wlan hinzugefügt

  1. Im ldhost unter /etc/systemd/network das physische Interface für p_wlan hinzufügen mit der Bezeichnung und der MAC-Adresse.

  2. Anschließend im Container puppeteer-g3 in der custom.yaml die Schnittstelle definieren

    custom.yaml
    global::network:
      scopes:
        [...]
        internal:
          ld-intern:
            [...]
          ld-wlan:
            guestinterface: wlan
            net:
            - 10.32.0.0/255.255.0.0
    
  3. Nun muss noch die Interface-Konfiguration für den ldhost getätigt werden. Das wird in der ldhost.yaml eingetragen

    ldhost.yaml
    profile::network:
      interface:
        p_wlan:
          ovs_type: OVSPort
          vlan-mode: access
          vlan-untagged: ld-wlan
          type: manual
        intern:
          type: static
          suffix: 1
    
  4. Die Änderungen wie gewohnt ins GIT commiten

  5. Dem logosrv das Interface ebenfalls bekannt machen

    network.conf
    1
    2
    3
    4
    5
    6
    [WLAN]
    IPAddress 10.32.1.2
    Netmask 255.255.0.0
    Device wlan
    Scope internal
    Comment WLAN Clients #1
    
  6. Zur Übernahme der Konfiguration im ldhost 2-3 prun durchlaufen.