Suivant: , Précédent: , Monter: Services   [Table des matières][Index]


12.9.4 Configuration du réseau

Le module (gnu services networking) fournit des services pour configurer les interfaces réseau et paramétrer le réseau sur votre machine. Ces services fournissent différentes manière pour paramétrer votre machine : en déclarant une configuration réseau statique, en lançant un client DHCP (Dynamic Host Configuration Protocol) ou en lançant des démon comme NetworkManager et Connman qui automatisent le processus complet, en s’adaptant automatiquement aux changements de connectivité et en fournissant une interface utilisateur de haut niveau.

Sur un portable, NetworkManager et Connman sont de loin les options les plus pratiques, ce qui explique que les services de bureau par défaut incluent NetworkManager voir %desktop-services). Pour un serveur, une machine virtuelle ou un conteneur, la configuration réseau statique ou un simple client DHCP sont plus souvent mieux appropriés.

Cette section décrit les divers services de paramétrage réseau existants, en commençant par le configuration réseau statique.

Variable Scheme : static-networking-service-type

C’est le type pour les interfaces réseaux configurées statiquement. Sa valeur doit être une liste d’enregistrements static-networking. Chacun déclare un ensemble d’adresses, de routes et de liens, comme indiqué plus bas.

Voici la plus simple des configurations, avec un seul contrôleur d’interface réseau (NIC) et une seule connectivité IPv4 :

;; Réseau statique pour un NIC, IPv4 uniquement.
(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")))))

Le bout de code ci-dessus peut être ajouté au champ services de votre configuration du système d’exploitation (voir Utiliser le système de configuration). Il configurera votre machine pour avoir l’adresse IP 10.0.2.15, avec un masque de sous-réseau de 24 bits pour le réseau local — cela signifie que toutes les adresse 10.0.2.x sont sur le réseau local (LAN). Le trafic à destination d’adresses extérieures au réseau local est routé via 10.0.2.2. Les noms d’hôte sont résolus en envoyant des requêtes au système de nom de domaine (DNS) à 10.0.2.3.

Type de données : static-networking

C’est le type de données représentant la configuration d’un réseau statique.

Voici un exemple de la manière dont vous pouvez déclarer la configuration sur une machine avec un seul contrôleur d’interface réseau (NIC) disponible sous le nom eno1 et avec une adresse IPv4 et une adresse IPv6 :

;; Configuration réseau pour un NIC, 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")))

Si vous connaissez la commande ip du paquet iproute2 qui se trouve sur les systèmes Linux, la déclaration ci-dessus est équivalente à exécuter :

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

Exécutez man 8 ip pour plus d’informations. Les utilisateurs et utilisatrices vétérans de GNU/Linux sauront sans doute comment le faire avec ifconfig et route, mais nous vous épargnons cela.

Les champs disponibles pour ce type de données sont les suivants :

adresses
links (par défaut : '())
routes (par défaut : '())

La liste de enregistrements network-address, network-link et network-route pour ce réseau (voir plus bas).

name-servers (par défaut : '())

La liste des adresses IP (chaines) des serveurs de nom de domaine. Ces adresses IP vont dans /etc/resolv.conf.

provision (par défaut : '(networking))

Si la valeur est vraie, cela devrait être une liste de symboles pour le service Shepherd correspondant à cette configuration réseau.

requirement (par défaut : '())

La liste des services Shepherd dont celui-ci dépend.

Type de données : network-address

C’est le type de données représentant l’adresse IP d’une interface réseau.

device

Le nom de l’interface réseau pour cette adresse — p. ex. "eno1".

valeur

L’adresse IP effective et le masque de sous-réseau en notation CIDR (Classless Inter-Domain Routing), en tant que chaine de caractères.

Par exemple, "10.0.2.15/24" dénote l’adresse IPv4 10 0 2 15 sur un sous-réseau de 24 bits — toutes les adresses 10.0.2.x sont sur le même réseau local.

ipv6?

Indique si value dénote une adresse IPv6. Par défaut cela est déterminé automatiquement.

Type de données : network-route

C’est le type de donnée représentant une route réseau.

destination

La destination de la route (une chaine), soit une adresse IP et un masque de sous-réseau, soit "default" qui dénote la route par défaut.

source (par défaut : #f)

Le source de la route.

device (par défaut : #f)

Le périphérique utilisé pour la route — p. ex. "eno2".

ipv6? (par défaut : auto)

Indique si c’est une route IPv6. Par défaut cela est déterminé automatiquement en fonction de destination ou de gateway.

gateway (par défaut : #f)

Adresse IP (une chaine) à travers laquelle le trafic est routé.

Type de données pour un lien réseau (voir Link dans le manuel de Guile-Netlink).

name

Le nom du lien — p. ex. "v0p0".

type

Un symbole dénotant le type de lien — p. ex. 'veth.

arguments

La liste des arguments pour ce type de lien.

Variable Scheme : %loopback-static-networking

C’est l’enregistrement static-networking qui représente le « périphérique de rebouclage », lo, pour les adresses IP 127.0.0.1 et ::1, et qui fournit le service Shepherd loopback.

Variable Scheme : %qemu-static-networking

C’est l’enregistrement static-networking représentant la configuration réseau pour utiliser la pile réseau en mode utilisateur de QEMU sur eth0 (voir Using the user mode network stack dans la documentation de QEMU).

Variable Scheme : dhcp-client-service-type

C’est le type de services qui lance dhcp, un client DHCP (protocole de configuration d’hôte dynamique).

Type de données : dhcp-client-configuration

Le type de données représentant la configuration du service client DHCP.

package (par défaut : isc-dhcp)

Le paquet du client DHCP à utiliser.

interfaces (par défaut : 'all)

Soit 'all, soit la liste des noms d’interface sur lesquelles le client DHCP devrait écouter — p. ex. '("eno1").

Lorsque la valeur est 'all, le client DHCP écoute sur toutes les interfaces disponibles et activables en dehors des interfaces de rebouclage. Sinon le client DHCP écoute uniquement sur les interfaces spécifiées.

Variable Scheme : network-manager-service-type

C’est le type de service pour le service NetworkManager. La valeur pour ce type de service est un enregistrement network-manager-configuration.

Ce service fait partie de %desktop-services (voir Services de bureaux).

Type de données : network-manager-configuration

Type de données représentant la configuration de NetworkManager.

network-manager (par défaut : network-manager)

Le paquet NetworkManager à utiliser.

dns (par défaut : "default")

Mode de gestion pour le DNS, qui affecte la manière dont NetworkManager utilise le fichier de configuration resolv.conf.

default

NetworkManager mettra à jour resolv.conf pour refléter les serveurs de noms fournis par les connexions actives.

dnsmasq

NetworkManager exécutera dnsmasq comme un serveur de noms local en cache, en utilisant une configuration transfert conditionnel si vous êtes connecté à un VPN, puis mettra à jour resolv.conf pour pointer vers le serveur de noms local.

Avec ce paramètre, vous pouvez partager votre connexion réseau. Par exemple, lorsque vous souhaitez partager votre connexion réseau avec un autre ordinateur portable via un câble Ethernet, vous pouvez ouvrir nm-connection-editor et configurer la méthode de connexion câblée pour IPv4 et IPv6 de manière à ce qu’elle soit "partagée avec d’autres ordinateurs" et à ce que la connexion soit rétablie (ou redémarrée).

Vous pouvez également établir une connexion hôte-invité aux VM QEMU (voir Installer Guix dans une VM). Avec une connexion d’hôte à invité, vous pouvez par exemple  : accéder à un serveur Web fonctionnant sur la VM (voir Services web) à partir d’un navigateur Web sur votre système hôte, ou vous connecter à la VM via SSH (voir openssh-service-type). Pour établir une connexion entre hôtes, exécutez cette commande une fois :

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

Ensuite, chaque fois que vous lancez votre VM QEMU (voir Lancer Guix dans une VM), passez -nic tap,ifname=tap0,script=no,downscript=no à qemu-system-....

none

NetworkManager ne modifiera pas resolv.conf.

vpn-plugins (par défaut : '())

C’est la liste des greffons disponibles pour les VPN (réseaux privés virtuels). Un exemple est le paquet network-manager-openvpn, qui permet à NetworkManager de gérer des VPN via OpenVPN.

iwd? (par défaut : #f)

NetworkManagement utilisera iwd comme moteur pour les réseaux sans fil si cette option est indiquée à #t, sinon il utilisera wpa-supplicant.

Variable Scheme : connman-service-type

C’est le type de service pour lancer Connman, un gestionnaire de connexions réseaux.

Sa valeur doit être un enregistrement connman-configuration comme dans cet exemple :

Voir plus bas pour des détails sur connman-configuration.

Type de données : connman-configuration

Type de données représentant la configuration de connman.

connman (par défaut : connman)

Le paquet connman à utiliser.

disable-vpn? (par défaut : #f)

Lorsque la valeur est vraie, désactive le greffon vpn de connman.

Variable Scheme : wpa-supplicant-service-type

C’est le type du service qui lanceWPA supplicant, un démon d’authentification requis pour s’authentifier sur des WiFi chiffrés ou des réseaux ethernet.

Type de données : wpa-supplicant-configuration

Type données qui représente la configuration de WPA Supplicant.

Il prend les paramètres suivants :

wpa-supplicant (par défaut : wpa-supplicant)

Le paquet WPA Supplicant à utiliser.

requirement (par défaut : '(user-processes loopback syslogd)

Liste des services qui doivent être démarrés avant le début de WPA Supplicant.

dbus? (par défaut : #t)

Indique s’il faut écouter les requêtes sur D-Bus.

pid-file (par défaut : "/var/run/wpa_supplicant.pid")

Où stocker votre fichier de PID.

interface (par défaut : #f)

Si une valeur est indiquée, elle doit spécifier le nom d’une interface réseau que WPA supplicant contrôlera.

config-file (par défaut : #f)

Fichier de configuration facultatif à utiliser.

extra-options (par défaut : '())

Liste d’arguments de la ligne de commande supplémentaires à passer au démon.

Certains périphériques réseau comme les modems ont des besoins spécifiques et c’est ce dont s’occupe les services suivants.

Variable Scheme : modem-manager-service-type

C’est le type de service pour le service ModemManager. La valeur de ce type de service est un enregistrement modem-manager-configuration.

Ce service fait partie de %desktop-services (voir Services de bureaux).

Type de données : modem-manager-configuration

Type de donnée représentant la configuration de ModemManager.

modem-manager (par défaut : modem-manager)

Le paquet ModemManager à utiliser.

Variable Scheme : usb-modeswitch-service-type

C’est le type de service pour le service USB_ModeSwitch. La valeur pour ce type de service est un enregistrement usb-modeswitch-configuration.

Lorsqu’ils sont branchés, certains modems USB (et autres dispositifs USB) se présentent initialement comme un support de stockage en lecture seule et non comme un modem. Ils doivent être modeswitched avant d’être utilisables. Le service de type USB_ModeSwitch installe des règles udev pour commuter automatiquement les modes de ces dispositifs lorsqu’ils sont branchés.

Ce service fait partie de %desktop-services (voir Services de bureaux).

Type de donnée : openvswitch-configuration

Type de données représentant la configuration du USB_ModeSwitch.

usb-modeswitch (par défaut : usb-modeswitch)

Le paquet USB_ModeSwitch fournit les binaires pour la commutation de modes.

usb-modeswitch-data (par défaut : usb-modeswitch-data)

Le paquet fournissant les données du dispositif et le fichier de règles udev utilisé par USB_ModeSwitch.

config-file (par défaut : #~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf"))

Le fichier de configuration à utiliser pour le répartiteur USB_ModeSwitch. Par défaut, le fichier de configuration livré avec USB_ModeSwitch est utilisé, ce qui désactive la connexion au /var/log parmi d’autres paramètres par défaut. S’il est défini sur #f, aucun fichier de configuration n’est utilisé.


Suivant: , Précédent: , Monter: Services   [Table des matières][Index]