8.2. Konfiguration von Hardware und Treibern#
8.2.1. Verfügbare Kernel-Varianten#
Der Standard-Kernel in UCS 5.0 basiert auf dem Linux-Kernel 4.19. Prinzipiell sind drei verschiedene Arten von Kernel-Paketen zu unterscheiden:
Ein Kernel-Image-Paket stellt einen lauffähigen Kernel bereit, der installiert und gestartet werden kann.
Ein Kernel-Source-Paket stellt den Quellcode für einen Kernel bereit. Aus diesem kann beispielsweise ein angepasster Kernel erstellt werden, indem Funktionen aktiviert oder deaktiviert werden können.
Ein Kernel-Header-Paket stellt Schnittstellen-Informationen bereit, die von externen Paketen benötigt werden, wenn diese auf Kernel-Funktionen zugreifen müssen. Sie werden typischerweise zum Übersetzen externer Kernel-Treiber benötigt.
Im Regelfall ist für den Betrieb eines UCS-Systems nur die Installation eines Kernel-Image-Paketes notwendig.
Mehrere Kernel-Varianten können parallel installiert sein. Dies stellt sicher, dass im Fehlerfall immer auf eine ältere Variante zurückgegriffen werden kann. Um ein System trotzdem immer auf dem jeweils aktuellen Stand halten zu können, werden sogenannte Meta-Pakete bereit gestellt, die immer auf die aktuell für UCS empfohlene Kernel-Version verweisen und diese im Update-Fall jeweils nachinstallieren.
8.2.2. Treiber-Management / Kernel-Module#
Der Boot-Prozess erfolgt zweistufig unter Verwendung einer Initial RAM Disk (kurz initrd). Diese besteht aus einem Archiv mit weiteren Treibern und Programmen.
Der Boot-Manager GRUB (siehe GRUB Boot-Manager) lädt den Kernel und die initrd in den Arbeitsspeicher, wo das initrd-Archiv entpackt und als temporäres Root-Dateisystem gemountet wird. Aus diesem wird dann das tatsächliche Root-Dateisystem eingebunden, woraufhin abschließend das temporäre Archiv wieder entfernt und der Systemstart eingeleitet wird.
Die zu verwendenden Treiber werden beim Systemstart automatisch erkannt und durch den Device Manager udev geladen. Dabei werden außerdem die notwendigen System-Verknüpfungen unter /dev/
angelegt. Wenn Treiber nicht erkannt werden (was vorkommen kann, wenn keine entsprechenden Hardware-IDs registriert sind oder Hardware verwendet wird, die nicht automatisch erkannt werden kann, etwa ISA-Steckkarten), so können zu ladende Kernel-Module durch die Univention Configuration Registry Variable kernel/modules
hinzugefügt werden. Soll mehr als ein Kernel-Modul geladen werden, so müssen diese durch ein Semikolon voneinander getrennt werden. Mit der Univention Configuration Registry Variable kernel/blacklist
kann eine Liste von einem oder mehreren Kernel-Modulen konfiguriert werden, für die das automatische Laden verhindert wird. Mehrere Einträge müssen ebenfalls durch ein Semikolon getrennt werden.
Im Gegensatz zu anderen Betriebssystemen liefert der Linux-Kernel (von wenigen Ausnahmen abgesehen) alle Treiber für Komponenten aus einer Hand. Im Regelfall ist es deshalb nicht notwendig Treiber aus externen Quellen nachzuinstallieren.
Wenn doch externe Treiber oder Kernelmodule benötigt werden, können diese über Dynamic Kernel Module Support (DKMS) eingebunden werden. Es stellt eine standardisierte Schnittstelle für Kernelquellen bereit und erlaubt es, Module automatisch für jeden installierten Kernel zu übersetzen. Dazu müssen neben dem Paket dkms auch die Kernel-Header-Pakete linux-headers-amd64 für die gewünschten Kernel installiert werden. Zu beachten ist, dass nicht alle externen Kernelmodule mit allen Kernel kompatibel sind.
8.2.3. GRUB Boot-Manager#
Als Boot-Manager wird in Univention Corporate Server GNU GRUB 2 verwendet. GRUB stellt ein Auswahlmenü bereit, aus dem eine zu bootende Linux-Kernel-Variante oder ein weiteres Betriebssystem ausgewählt werden kann. GRUB kann auch direkt auf Dateisysteme zugreifen, so dass im Fehlerfall etwa ein abweichender Kernel geladen werden kann.
GRUB wird in einem zweistufigen Verfahren geladen: in den Master Boot Record der Festplatte wird der Stage 1-Loader geschrieben, der auf die Daten der Stage 2 verweist, welche den Großteil des übrigen Boot-Vorgangs übernimmt.
Die Auswahl der zu startenden Kernel im Boot-Menü wird in der Datei /boot/grub/grub.cfg
abgelegt. Diese Datei wird automatisch generiert, es stehen alle installierten Kernel-Pakete zur Auswahl. Durch Auswahl der Option Memory test kann das Speicher-Testprogramm Memtest86+ gestartet werden, das Konsistenzprüfungen auf dem Arbeitsspeicher durchführt.
Standardmäßig wird fünf Sekunden auf die Auswahl des zu bootenden Kernels gewartet. Durch die Univention Configuration Registry Variable grub/timeout
kann ein abweichender Wert in Sekunden konfiguriert werden.
In der Grundeinstellung wird in einen 800x600
Pixel großen Bildschirm unter 16 Bit Farbtiefe gewechselt. Durch die Univention Configuration Registry Variable grub/gfxmode
kann ein anderer Modus ausgewählt werden. Es werden nur Auflösungen unterstützt, die über VESA BIOS Extentions gesetzt werden können. Eine Liste der verfügbaren Modi findet sich unter VESA BIOS Extensions. Die Eingabe erfolgt im Format HORIZONTALxVERTIKAL@FARBTIEFEBIT
, also z.B. 1024x768@16
.
Kernel-Optionen für die gestarteten Linux-Kernel können mit der Univention Configuration Registry Variable grub/append
übergeben werden. Mit der grub/xenhopt
können Optionen an den Xen-Hypervisor übergeben werden.
Die grafische Darstellung während des Bootvorgangs - der sogenannte Splash-Screen - kann durch Setzen der Univention Configuration Registry Variable grub/bootsplash
auf nosplash
deaktiviert werden.
8.2.4. Netzwerk Konfiguration#
Die Konfiguration von Netzwerk-Interfaces kann über das UMC-Modul Netzwerk-Einstellungen angepasst werden.
Die Konfiguration wird in Univention Configuration Registry-Variablen gespeichert, die auch direkt gesetzt werden können. Die Variablen sind in den einzelnen Abschnitten aufgeführt.
Unter IPv4-Netzwerkgeräte und IPv6-Netzwerkgeräte werden alle im System verfügbaren Netzwerkkarten aufgeführt (es werden nur Netzwerkinterfaces im Schema ethX
dargestellt).
Netzwerkschnittstellen können für IPv4 und/oder IPv6 konfiguriert werden. IPv4-Adressen haben 32 Bit Länge und werden in der Regel in vier Blöcken in Dezimalschreibweise dargestellt (z.B. 192.0.2.10
), während IPv6-Adressen vier Mal so lang sind und typischerweise hexadezimal dargestellt werden (z.B. 2001:0DB8:FE29:DE27:0000:0000:0000:0000
).
8.2.4.1. Konfiguration von IPv4-Adressen#
Wenn die Option Dynamisch (DHCP) nicht gewählt wurde, muss die IP-Adresse eingegeben werden, die an die Netzwerkkarte gebunden werden soll. Zusätzlich zur IPv4-Adresse muss die Netzmaske angegeben werden. Mit DHCP-Anfrage kann eine Adresse von einem DHCP-Server abgefragt werden. Sofern die Option Dynamisch (DHCP) nicht aktiviert wird, werden die aus der DHCP-Anfrage erhaltenen Werte dann statisch konfiguriert.
Auch Server-Systeme können per DHCP konfiguriert werden. Dies ist z.B. bei einigen Cloud-Anbietern notwendig. Schlägt die Vergabe einer IP-Adresse für einen Server fehl, wird ersatzweise eine zufällige Link-Local-Adresse (169.254.x.y
) konfiguriert.
Die über DHCP erhaltene Adresse wird für UCS-Serversysteme auch in das LDAP-Verzeichnis geschrieben.
Bemerkung
Nicht alle Dienste (z.B. DNS-Server) sind für eine Verwendung auf einem DHCP-basierten Server geeignet.
UCR Variablen:
Neben den physischen Interfaces können auch zusätzliche virtuelle Interfaces in der Form interfaces/ethX_Y/setting
definiert werden.
8.2.4.2. Konfiguration von IPv6-Adressen#
Die IPv6-Adresse kann auf zwei Arten konfiguriert werden: Bei der Automatischen Konfiguration (SLAAC) kommt Stateless Address Autoconfiguration (SLAAC) zum Einsatz. Dabei wird die IP-Adresse von den Routern des lokalen Netzsegmentes zugewiesen. Alternativ kann die Adresse auch durch Angabe von IPv6-Adresse und IPv6-Präfix statisch konfiguriert werden.
Im Gegensatz zu DHCP wird bei SLAAC keine Zuweisung von weitergehenden Daten wie dem zu verwendenden DNS-Server durchgeführt. Hierfür gibt es mit DHCPv6 ein Zusatzprotokoll, das bei der dynamischen Zuweisung aber nicht zum Einsatz kommt. Eine Netzwerkkarte kann verschiedene IPv6-Adressen bedienen. Der Bezeichner ist ein eindeutiger Name für einzelne Adressen. Die Haupt-Adresse verwendet immer den Bezeichner default, für alle anderen Adressen können funktionale Bezeichner vergeben werden, z.B. Interface-Mailserver
.
UCR Variablen:
interfaces/ethX/ipv6/acceptRA
aktiviert SLAAC
Unter Globale Netzwerk-Einstellungen können weitere netzwerkbezogene Einstellungen vorgenommen werden.
Unter Gateway (IPv4) und Gateway (IPv6) können die für die IP-Adresse im Subnetz eingesetzten Standard-Gateways für IPv4 und IPv6 eingegeben werden. Für IPv6 ist die Angabe eines Gateways nicht erforderlich, wird jedoch empfohlen. Ein hier konfiguriertes IPv6-Gateway hat Vorrang vor Router Advertisements, die ansonsten die Route ändern könnten.
UCR Variablen:
8.2.4.3. Konfiguration der Nameserver#
Zwei Typen von DNS-Servern werden unterschieden:
- Externer DNS Server
Ein externer DNS-Server wird für die Auflösung von Rechnernamen und Adressen außerhalb der UCS-Domäne verwendet, z.B.
univention.de
. Dies ist typischerweise ein Nameserver, der vom Internet Provider betrieben wird.- Domänen DNS Server
Ein Domänen-DNS-Server ist ein lokaler Nameserver der UCS-Domäne. Dort werden in der Regel die Rechnernamen und IP-Adressen der UCS-Domäne verwaltet. Wird eine Adresse im lokalen Datenbestand nicht aufgefunden, wird automatisch ein externer DNS-Server angefragt. Die DNS-Daten werden im LDAP-Verzeichnisdienst gespeichert, d.h. alle Domänen-DNS-Server liefern identische Daten aus.
Auf den Systemrollen Primary Directory Node, Backup Directory Node und Replica Directory Node läuft ein lokaler DNS-Server. Hier kann durch Angabe von Domänen-DNS-Server konfiguriert werden, welcher Server primär für die Namensauflösung verwendet wird.
UCR Variablen:
8.2.4.4. Bridges, Bonding, VLANs#
UCS unterstützt komplexe Netzwerk-Konfigurationen mit Bridges, Bonding und VLAN-Netzen:
Bridges werden oft von Virtualisierungslösungen verwendet, um virtualisierte Netzwerkkarten einer virtuellen Maschine mit der physischen Netzwerkkarte des Virtualisierungsservers zu verbinden.
Bonding erhöht die Ausfallsicherheit, in dem mehrere physikalische Netzwerkkarten für den Zugriff auf ein Netzwerk gebündelt werden.
VLANs können verwendet werden um den Netzwerkverkehr in einem physikalischen Netzwerk logisch auf ein oder mehrere virtuelle Unternetze aufzuteilen.
8.2.4.5. Konfiguration von Bridging#
Der häufigste Anwendungsfall für Bridging ist die gemeinsame Nutzung einer physischen Netzwerkkarte durch eine oder mehrere virtuelle Maschinen. Anstatt eine Netzwerkkarte für jede virtuelle Maschine und den Virtualisierungsserver selbst zu verwenden, werden alle System durch einen gemeinsamen Uplink angebunden. Eine Bridge kann mit einem in Software realisierten Switch verglichen werden, über den einzelne Hosts miteinander verbunden werden. Die verwendete Hardware-Netzwerkkarte wird als Bridge Port bezeichnet.
Um eine Bridge zu konfigurieren muss unter Hinzufügen als Netzwerkgerätetyp Bridge
ausgewählt werden. Der Name des neuen Bridge-Netzwerkgerätes kann beliebig gewählt werden. Anschließend muss auf Weiter geklickt werden.
Unter Bridge ports kann die physische Netzwerkkarte ausgewählt werden, die den Uplink darstellt. Im typischen Anwendungsfall der Anbindung virtueller Maschinen über nur eine Netzwerkkarte kann keine Schleife auftreten. Wird die Bridge zur Verbindung zweier Netzwerkkarten verwendet, wird das Spanning Tree Protocol (STP) zur Vermeidung von Netzwerkschleifen eingesetzt. Der Linux-Kernel implementiert lediglich STP, nicht die Varianten Rapid STP oder Multiple STP.
Die Einstellung Forwarding delay konfiguriert die Wartezeit in Sekunden, während der bei Aufbau einer Verbindung durch STP Informationen über die Netzwerktopologie gesammelt werden. Wird die Bridge zur Anbindung virtueller Maschinen über eine physische Netzwerkkarte verwendet, sollte STP dann deaktiviert werden, in dem der Wert auf 0
gesetzt wird. Ansonsten kann es zu Problemen bei der Verwendung von DHCP führen, da die während der Wartezeit versendeten Pakete nicht weitergeleitet werden.
Über das Eingabefeld Weitere Geräteoptionen können beliebige weitere Bridge-Parameter konfiguriert werden. Dies ist nur in Ausnahmefällen nötig, eine Übersicht der möglichen Einstellungen findet sich in der Manpage bridge-utils-interfaces(5).
Nach einem Klick auf Weiter kann der Bridge optional eine IP-Adresse zugewiesen werden. Diese kann dann auch als Netzwerkinterface auf dem Virtualisierungshost verwendet werden. Die Einstellungsmöglichkeiten sind dieselben wie in Konfiguration von IPv4-Adressen und Konfiguration von IPv6-Adressen beschrieben.
8.2.4.6. Konfiguration von Bonding#
Mit Bonding können zwei (oder mehr) physische Netzwerkkarten zur Erhöhung des Durchsatzes oder zur Verbesserung der Redundanz in Failoverszenarien gebündelt werden.
Um ein Bonding zu konfigurieren muss unter Hinzufügen als Netzwerkgerätetyp Kanalbündelung (Bonding)
ausgewählt werden. Der Name des neuen Bonding-Netzwerkgerätes kann beliebig gewählt werden. Anschließend muss auf Weiter geklickt werden.
Unter Bond slaves werden die Netzwerkkarten ausgewählt, die Teil des Bonding-Interfaces sind. Für das Failover-Szenarien (s.u.) können über Bond primary die Netzwerkkarten ausgewählt werden, die bevorzugt verwendet werden sollen.
Der Modus konfiguriert die Verteilung der Netzwerkkarten innerhalb des Bondings:
balance-rr (0)
verteilt die Pakete der Reihe nach gleichmässig auf die verfügbaren Netzwerkschnittstellen innerhalb des Bondings. Dies erhöht den Durchsatz und verbessert die Ausfallsicherheit. Zur Verwendung dieser Variante müssen die verwendeten Netzwerk-Switches Link Aggregation unterstützen.Bei Verwendung von
active-backup (1)
ist nur jeweils eine Netzwerkkarte des Bonding-Interfaces aktiv (in der Grundeinstellung die Netzwerkschnittstelle aus Bond primary). Fällt die primäre Netzwerkkarte aus, wird dies durch den Linux-Kernel erkannt und auf eine der weiteren Karten des Bondings umgeschaltet. Diese Variante erhöht die Ausfallsicherheit. Sie kann mit jedem Netzwerk-Switch verwendet werden.
Darüber hinaus existieren noch weitere Bonding-Methoden. Diese sind in der Regel nur für Sonderfälle relevant und sind unter Linux Ethernet Bonding Driver HOWTO beschrieben.
Zur Erkennung ausgefallener Netzwerkverbindungen wird das Media Independent Interface (MII) der Netzwerkkarten verwendet. Die Einstellung MII link monitoring frequency legt das Prüfintervall in Millisekunden fest.
Unter Weitere Bonding-Optionen können beliebige weitere Bonding-Parameter konfiguriert werden. Dies ist nur in Ausnahmefällen nötig, eine Übersicht der möglichen Einstellungen findet sich in Linux Ethernet Bonding Driver HOWTO.
Nach einem Klick auf Weiter kann dem Bonding-Interface eine IP-Adresse zugewiesen werden. Sollte eine der bestehenden Netzwerkkarten, die Bestandteil des Bonding-Interfaces sind, schon eine IP-Adresse zugewiesen haben, so wird diese Konfiguration entfernt. Die Einstellungsmöglichkeiten sind dieselben wie in Konfiguration von IPv4-Adressen und Konfiguration von IPv6-Adressen beschrieben.
8.2.4.7. Konfiguration VLAN#
VLANs können verwendet werden um den Netzwerkverkehr in einem physischen Netzwerk logisch auf ein oder mehrere virtuelle Unternetze aufzuteilen. Jedes dieser virtuellen Netze ist eine eigenständige Broadcast-Domäne. So kann etwa in einem Firmennetzwerk das Netz für die Mitarbeiter von einem Gastnetz für Besucher unterschieden werden, obwohl die selbe physikalische Verkabelung genutzt wird. Die Zuordnung der einzelnen Endgeräte zu den VLANs erfolgt durch Konfiguration auf den verwendeten Switches. Die Netzwerk-Switches müssen 802.1q VLANs unterstützen.
Es werden zwei Typen von Verbindungen zwischen Netzwerkkarten unterschieden:
Eine Verbindung transportiert nur Pakete eines spezifischen VLANs. In diesem Fall werden die Datenpakete ungetagged übertragen.
Dies ist typischerweise der Fall, wenn nur ein einzelnes Endgerät über diese Netzwerkverbindung angebunden wird.
Eine Verbindung transportiert Pakete aus mehreren VLANs. Dies wird auch als trunk link bezeichnet. In diesem Fall ist jedes Paket über eine VLAN-ID einem VLAN zugeordnet. Bei der Weiterleitung zwischen trunk links und spezifischen VLANs übernimmt der Netzwerk-Switch die Aufgabe, anhand der VLAN-IDs die Pakete zu filtern und die VLAN-IDs hinzuzufügen und zu entfernen.
Diese Verbindungsart wird vornehmlich zwischen Switches und Servern eingesetzt.
Einige Switches erlauben es auch Pakete mit und ohne VLAN-Tag über eine gemeinsame Verbindung zu schicken, darauf wird hier aber nicht weiter eingegangen.
Mit der Konfiguration eines VLANs im UMC-Modul Netzwerk-Einstellungen kann für einen Rechner konfiguriert werden, an welchen VLANs er teilnehmen möchte. Ein Beispiel wäre ein interner Firmen-Webserver, der sowohl für die Mitarbeiter, als auch für die Benutzer des Gastnetzes verfügbar sein soll.
Um ein VLAN zu konfigurieren muss unter Hinzufügen als Netzwerkgerätetyp Virtuelles LAN
ausgewählt werden. Die Netzwerkschnittstelle, für die das VLAN konfiguriert wird, wird mit Übergeordnetes Netzwerkgerät angegeben. Die VLAN ID ist der eindeutige Bezeichner für das VLAN. Gültige Werte sind 1 bis 4095. Anschließend muss auf Weiter geklickt werden.
Nach einem Klick auf Weiter kann dem VLAN-Interface eine IP-Adresse zugewiesen werden. Die Einstellungsmöglichkeiten sind dieselben wie in Konfiguration von IPv4-Adressen und Konfiguration von IPv6-Adressen beschrieben. Bei der Vergabe einer IP-Adresse muss darauf geachtet werden, dass die Adresse zum zugeordneten VLAN-Adressbereich passt.
8.2.5. Konfiguration des Proxyzugriffs#
Die meisten Kommandozeilen-Tools, die Zugriffe auf Webserver durchführen (z.B. wget, elinks oder curl), prüfen, ob die Umgebungsvariablen http_proxy
oder https_proxy
gesetzt sind. Ist dies der Fall, werden automatisch die in diesen Variablen eingestellte Proxy-Server verwendet.
Über die Univention Configuration Registry Variablen proxy/http
und proxy/https
kann das Setzen dieser Umgebungsvariablen durch einen Eintrag in /etc/profile
aktiviert werden.
Dabei muss die Proxy-URL angegeben werden, also z.B. http://192.0.2.100
. In Proxy-URL kann optional auch die Angabe eines Ports folgen, welcher durch einen Doppelpunkt abzutrennen ist, z.B. http://192.0.2.100:3128
. Erfordert der Proxy eine Authentifizierung, so können die Benutzerinformationen in der Form http://username:password@192.0.2.100
übergeben werden.
Die Umgebungsvariable wird nicht für aktuell geöffnete Sitzungen übernommen. Damit die Änderung aktiv wird, muss eine Neuanmeldung erfolgen.
Die UCS-Programme zur Paketverwaltung unterstützen ebenfalls den Betrieb über einen Proxy und lesen die Univention Configuration Registry-Variable direkt aus.
Einzelne Domänen können von der Verwendung des Proxys ausgenommen werden, in dem sie kommasepariert in die Univention Configuration Registry Variable proxy/no_proxy
aufgenommen werden. Unterdomänen werden dabei berücksichtigt; eine Ausnahme für software-univention.de
wirkt sich also auch auf updates.software-univention.de
aus.
8.2.7. Erfassung von unterstützter Hardware#
Univention erfasst Informationen über Hardware, die mit UCS kompatibel und bei Kunden im Einsatz ist. Die hierbei verarbeiteten Informationen werden über das UMC-Modul Hardwareinformationen erfasst.
Alle Daten werden dabei anonymisiert an Univention weitergeleitet und erst nach Benutzereinwilligung übermittelt.
Im Start-Dialog finden sich die Eingabefelder Hersteller und Modell, die mit aus den DMI-Informationen der Hardware ermittelten Werten vorausgefüllt sind. Die Felder können auch angepasst und ein zusätzlicher Kommentar angegeben werden.
Wenn die Übermittlung der Hardwareinformationen im Rahmen einer Support-Anfrage erfolgt, sollte die Option Dies bezieht sich auf einen Supportfall aktiviert werden. Im folgenden Feld kann dann eine Ticketnummer angegeben werden, die die Zuordnung vereinfacht und eine schnellere Bearbeitung ermöglicht.
Nach einem Klick auf Weiter wird eine Übersicht der ermittelten Hardwareinformationen ausgegeben. Außerdem wird ein komprimiertes Tar-Archiv erstellt, das eine Liste mit den im System verwendeten Hardware-Komponenten enthält und über Archiv mit den Hardwareinformationen heruntergeladen werden kann.
Nach einem erneuten Klick auf Weiter kann der Übermittlungsweg der Daten an Univention ausgewählt werden. Hochladen überträgt die Daten per HTTPS, Mail senden führt zu einem Dialog, der die für den Versand nötigen Schritte aufführt.