Nächste: Netzwerkdienste, Vorige: Log-Rotation, Nach oben: Dienste [Inhalt][Index]
Durch das Modul (gnu services networking)
werden Dienste zum
Konfigurieren der Netzwerkschnittstellen und zum Einrichten der
Netzwerkverbindung Ihrer Maschine bereitgestellt. Die Dienste decken
unterschiedliche Arten ab, wie Sie Ihre Maschine einrichten können: Sie
können eine statische Netzwerkkonfiguration einrichten, einen Client für das
Dynamic Host Configuration Protocol (DHCP) benutzen oder Daemons wie
NetworkManager oder Connman einsetzen, mit denen der gesamte Vorgang
automatisch abläuft, automatisch auf Änderungen an der Verbindung reagiert
wird und eine abstrahierte Benutzerschnittstelle bereitgestellt wird.
Auf einem Laptop sind NetworkManager und Connman bei weitem die
komfortabelsten Optionen, darum enthalten die vorgegebenen Dienste für
Desktop-Arbeitsumgebungen NetworkManager (siehe %desktop-services
). Für einen Server, eine virtuelle Maschine oder
einen Container sind eine statische Netzwerkkonfiguration oder ein
schlichter DHCP-Client meist angemessener.
Dieser Abschnitt beschreibt die verschiedenen Dienste zur Netzwerkeinrichtung, die Ihnen zur Verfügung stehen, angefangen bei der statischen Netzwerkkonfiguration.
Dies ist der Diensttyp für statisch konfigurierte
Netzwerkschnittstellen. Sein Wert muss eine Liste von
static-networking
-Verbundsobjekten sein. Jedes deklariert eine Menge
von Adressen, Routen und Links, wie im Folgenden gezeigt.
Hier sehen Sie die einfachst mögliche Konfiguration, die nur über eine einzelne Netzwerkkarte („Network Interface Controller“, NIC) eine Verbindung nur für IPv4 herstellt.
;; Statische Netzwerkkonfiguration mit einer Netzwerkkarte, nur IPv4. (service static-networking-service-type (list (static-networking (addresses (list (network-address (device "eno1") (value "10.0.2.15/24")))) (routes (list (network-route (destination "default") (gateway "10.0.2.2")))) (name-servers '("10.0.2.3")))))
Obiges Code-Schnipsel kann ins services
-Feld Ihrer
Betriebssystemkonfiguration eingetragen werden (siehe Das Konfigurationssystem nutzen), um Ihre Maschine mit 10.0.2.15 als ihre IP-Adresse
zu versorgen mit einer 24-Bit-Netzmaske für das lokale Netzwerk – also
dass jede 10.0.2.x-Adresse im lokalen Netzwerk (LAN)
ist. Kommunikation mit Adressen außerhalb des lokalen Netzwerks wird über
10.0.2.2 geleitet. Rechnernamen werden über Anfragen ans Domain Name System
(DNS) an 10.0.2.3 aufgelöst.
Dieser Datentyp repräsentiert eine statische Netzwerkkonfiguration.
Folgendes Beispiel zeigt, wie Sie die Konfiguration einer Maschine
deklarieren, die nur über eine einzelne Netzwerkkarte („Network Interface
Controller“, NIC), die als eno1
verfügbar ist, über eine IPv4-Adresse
und eine IPv6-Adresse verbunden ist:
;; Netzwerkkonfiguration mit einer Netzwerkkarte, IPv4 + IPv6. (static-networking (addresses (list (network-address (device "eno1") (value "10.0.2.15/24")) (network-address (device "eno1") (value "2001:123:4567:101::1/64")))) (routes (list (network-route (destination "default") (gateway "10.0.2.2")) (network-route (destination "default") (gateway "2020:321:4567:42::1")))) (name-servers '("10.0.2.3")))
Wenn Sie mit dem Befehl ip
aus dem
iproute2
-Paket von Linux-basierten Systemen vertraut sind, sei
erwähnt, dass obige Deklaration gleichbedeutend damit ist, wenn Sie dies
eingeben:
ip address add 10.0.2.15/24 dev eno1 ip address add 2001:123:4567:101::1/64 dev eno1 ip route add default via inet 10.0.2.2 ip route add default via inet6 2020:321:4567:42::1
Führen Sie für mehr Informationen man 8 ip
aus. Alteingesessene
GNU/Linux-Nutzer werden sicherlich wissen, wie sie das mit
ifconfig
und route
machen, aber wir ersparen es Ihnen.
Für den Datentyp stehen folgende Felder zur Verfügung:
addresses
links
(Vorgabe: '()
)routes
(Vorgabe: '()
)Die Liste der network-address
-, network-link
- und
network-route
-Verbundsobjekte für dieses Netzwerk (siehe unten).
name-servers
(Vorgabe: '()
)Die Liste der IP-Adressen (als Zeichenketten) der DNS-Server. Diese IP-Adressen werden in /etc/resolv.conf geschrieben.
provision
(Vorgabe: '(networking)
)Wenn dies ein wahrer Wert ist, bezeichnet dies die Liste von Symbolen für den Shepherd-Dienst, der dieser Netzwerkkonfiguration entspricht.
requirement
(Vorgabe: '()
)Die Liste der Shepherd-Dienste, von denen dieser abhängt.
Dieser Datentyp repräsentiert die IP-Adresse einer Netzwerkschnittstelle.
device
Der Name der Netzwerkschnittstelle, die für diese Adresse benutzt
wird – z.B. "eno1"
.
value
Die eigentliche IP-Adresse und Netzwerkmaske in CIDR-Notation als Zeichenkette.
Zum Beispiel bezeichnet "10.0.2.15/24"
die IPv4-Adresse 10.0.2.15 auf
einem Subnetzwerk, dessen erste 24 Bit gleich sind – alle
10.0.2.x-Adressen befinden sich im selben lokalen Netzwerk
ipv6?
Ob mit value
eine IPv6-Adresse angegeben wird. Vorgegeben ist, dies
automatisch festzustellen.
Dieser Datentyp steht für eine Netzwerkroute.
destination
Das Ziel der Route (als Zeichenkette) entweder mit einer IP-Adresse und
Netzwerkmaske oder "default"
zum Einstellen der Vorgaberoute.
source
(Vorgabe: #f
)Die Quelle der Route.
device
(Vorgabe: #f
)Welches Gerät für diese Route benutzt wird – z.B. "eno2"
.
ipv6?
(Vorgabe: automatisch)Ob es sich um eine IPv6-Route handelt. Das vorgegebene Verhalten ist, dies
automatisch anhand des Eintrags in destination
oder gateway
zu
bestimmen.
gateway
(Vorgabe: #f
)Die IP-Adresse des Netzwerkzugangs (als Zeichenkette), über die der Netzwerkverkehr geleitet wird.
Der Datentyp für einen Netzwerk-Link (siehe Link in Guile-Netlink-Handbuch).
name
Der Name des Links – z.B. "v0p0"
.
type
Eine Zeichenkette, die für den Typ des Links steht – z.B.
'veth
.
arguments
Eine Liste der Argumente für diesen Link-Typ.
Dies ist das static-networking
-Verbundsobjekt, das für das
„Loopback-Gerät“ lo
steht, mit IP-Adressen 127.0.0.1 und ::1, was den
Shepherd-Dienst loopback
zur Verfügung stellt.
Dies ist das static-networking
-Verbundsobjekt, das für eine
Netzwerkeinrichtung mit QEMUs als Nutzer ausgeführtem Netzwerkstapel
(„User-Mode Network Stack“) auf dem Gerät eth0
steht (siehe
Using the user mode network stack in QEMU Documentation).
Dies ist der Diensttyp für den Dienst, der dhcp ausführt, einen Client für das „Dynamic Host Configuration Protocol“ (DHCP).
Der Datentyp, der die Konfiguration des DHCP-Client-Dienstes repräsentiert.
package
(Vorgabe: isc-dhcp
)Das DHCP-Client-Paket, was benutzt werden soll.
interfaces
(Vorgabe: 'all
)Geben Sie entweder 'all
an oder die Liste der Namen der
Schnittstellen, auf denen der DHCP-Client lauschen soll – z.B.
'("eno1")
.
Wenn es auf 'all
gesetzt ist, wird der DHCP-Client auf allen
verfügbaren Netzwerkschnittstellen außer „loopback“, die aktiviert werden
können, lauschen. Andernfalls lauscht der DHCP-Client nur auf den
angegebenen Schnittstellen.
Dies ist der Diensttyp für den
NetworkManager-Dienst. Der Wert dieses Diensttyps ist ein
network-manager-configuration
-Verbundsobjekt.
Dieser Dienst gehört zu den %desktop-services
(siehe Desktop-Dienste).
Datentyp, der die Konfiguration von NetworkManager repräsentiert.
network-manager
(Vorgabe: network-manager
)Das zu verwendende NetworkManager-Paket.
dns
(Vorgabe: "default"
)Der Verarbeitungsmodus für DNS-Anfragen. Er hat Einfluss darauf, wie
NetworkManager mit der Konfigurationsdatei resolv.conf
verfährt.
NetworkManager aktualisiert resolv.conf
, damit sie die Nameserver
enthält, die von zurzeit aktiven Verbindungen benutzt werden.
NetworkManager führt dnsmasq
als lokal zwischenspeichernden
Nameserver aus und aktualisiert resolv.conf
so, dass es auf den
lokalen Nameserver verweist. Falls Sie mit einem VPN verbunden sind, wird
dafür eine getrennte DNS-Auflösung verwendet („Conditional Forwarding“).
Mit dieser Einstellung können Sie Ihre Netzwerkverbindung teilen. Wenn Sie
sie zum Beispiel mit einem anderen Laptop über ein Ethernet-Kabel teilen
möchten, können Sie nm-connection-editor
öffnen und die Methode
der Ethernet-Verbindung für IPv4 und IPv6 auf „Gemeinsam mit anderen
Rechnern“ stellen und daraufhin die Verbindung neu herstellen (oder Ihren
Rechner neu starten).
Sie können so auch eine Verbindung vom Wirts- zum Gastsystem in virtuellen
Maschinen mit QEMU (siehe Guix in einer virtuellen Maschine installieren) herstellen, d.h.
eine „Host-to-Guest Connection“). Mit einer solchen
Wirt-nach-Gast-Verbindung können Sie z.B. von einem Webbrowser auf Ihrem
Wirtssystem auf einen Web-Server zugreifen, der auf der VM läuft (siehe
Web-Dienste). Sie können sich damit auch über SSH mit der virtuellen
Maschine verbinden (siehe openssh-service-type
). Um eine Wirt-nach-Gast-Verbindung
einzurichten, führen Sie einmal diesen Befehl aus:
nmcli connection add type tun \ connection.interface-name tap0 \ tun.mode tap tun.owner $(id -u) \ ipv4.method shared \ ipv4.addresses 172.28.112.1/24
Danach geben Sie bei jedem Start Ihrer virtuellen QEMU-Maschine (siehe
Guix in einer virtuellen Maschine betreiben) die Befehlszeilenoption -nic
tap,ifname=tap0,script=no,downscript=no an qemu-system-…
mit.
NetworkManager verändert resolv.conf
nicht.
vpn-plugins
(Vorgabe: '()
)Dies ist die Liste der verfügbaren Plugins für virtuelle private Netzwerke
(VPN). Zum Beispiel kann das Paket network-manager-openvpn
angegeben
werden, womit NetworkManager virtuelle private Netzwerke mit OpenVPN
verwalten kann.
Mit diesem Diensttyp wird Connman ausgeführt, ein Programm zum Verwalten von Netzwerkverbindungen.
Sein Wert muss ein connman-configuration
-Verbundsobjekt wie im
folgenden Beispiel sein:
(service connman-service-type
(connman-configuration
(disable-vpn? #t)))
Weiter unten werden Details der connman-configuration
erklärt.
Datentyp, der die Konfiguration von Connman repräsentiert.
connman
(Vorgabe: connman)Das zu verwendende Connman-Paket.
disable-vpn?
(Vorgabe: #f
)Falls dies auf wahr gesetzt ist, wird Connmans VPN-Plugin deaktiviert.
Dies ist der Diensttyp, um WPA Supplicant auszuführen. Dabei handelt es sich um einen Authentisierungsdaemon, der notwendig ist, um sich gegenüber verschlüsselten WLAN- oder Ethernet-Netzwerken zu authentisieren.
Repräsentiert die Konfiguration des WPA-Supplikanten.
Sie hat folgende Parameter:
wpa-supplicant
(Vorgabe: wpa-supplicant
)Das WPA-Supplicant-Paket, was benutzt werden soll.
requirement
(Vorgabe: '(user-processes loopback syslogd)
Die Liste der Dienste, die vor dem WPA-Supplikanten bereits gestartet sein sollen.
dbus?
(Vorgabe: #t
)Ob auf Anfragen auf D-Bus gelauscht werden soll.
pid-file
(Vorgabe: "/var/run/wpa_supplicant.pid"
)Wo die PID-Datei abgelegt wird.
interface
(Vorgabe: #f
)Wenn dieses Feld gesetzt ist, muss es den Namen einer Netzwerkschnittstelle angeben, die von WPA Supplicant verwaltet werden soll.
config-file
(Vorgabe: #f
)Optionale Konfigurationsdatei.
extra-options
(Vorgabe: '()
)Liste zusätzlicher Befehlszeilenoptionen, die an den Daemon übergeben werden.
Manche Netzwerkgeräte wie Modems brauchen eine besondere Behandlung, worauf die folgenden Dienste abzielen.
Dies ist der Diensttyp für den
ModemManager-Dienst. Der Wert dieses Diensttyps ist ein
modem-manager-configuration
-Verbundsobjekt.
Dieser Dienst gehört zu den %desktop-services
(siehe Desktop-Dienste).
Repräsentiert die Konfiguration vom ModemManager.
modem-manager
(Vorgabe: modem-manager
)Das ModemManager-Paket, was benutzt werden soll.
Dies ist der Diensttyp für den
USB_ModeSwitch-Dienst. Der Wert dieses Diensttyps ist ein
usb-modeswitch-configuration
-Verbundsobjekt.
Wenn sie eingesteckt werden, geben sich manche USB-Modems (und andere USB-Geräte) zunächst als Nur-Lese-Speichermedien und nicht als Modem aus. Sie müssen erst einem Moduswechsel („Modeswitching“) unterzogen werden, bevor sie benutzt werden können. Der USB_ModeSwitch-Diensttyp installiert udev-Regeln, um bei diesen Geräten automatisch ein Modeswitching durchzuführen, wenn sie eingesteckt werden.
Dieser Dienst gehört zu den %desktop-services
(siehe Desktop-Dienste).
Der Datentyp, der die Konfiguration von USB_ModeSwitch repräsentiert.
usb-modeswitch
(Vorgabe: usb-modeswitch
)Das USB_ModeSwitch-Paket, das die Programmdateien für das Modeswitching enthält.
usb-modeswitch-data
(Vorgabe: usb-modeswitch-data
)Das Paket, in dem die Gerätedaten und die udev-Regeldatei stehen, die USB_ModeSwitch benutzt.
config-file
(Vorgabe: #~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf")
)Welche Konfigurationsdatei das USB_ModeSwitch-Aufrufprogramm („Dispatcher“)
benutzt. Nach Vorgabe wird die mit USB_ModeSwitch ausgelieferte
Konfigurationsdatei benutzt, die neben anderen Voreinstellungen die
Protokollierung nach /var/log abschaltet. Wenn #f
festgelegt
wird, wird keine Konfigurationsdatei benutzt.
Nächste: Netzwerkdienste, Vorige: Log-Rotation, Nach oben: Dienste [Inhalt][Index]