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


10.9.4 Configuration du réseau

The (gnu services networking) module provides services to configure network interfaces and set up networking on your machine. Those services provide different ways for you to set up your machine: by declaring a static network configuration, by running a Dynamic Host Configuration Protocol (DHCP) client, or by running daemons such as NetworkManager and Connman that automate the whole process, automatically adapt to connectivity changes, and provide a high-level user interface.

On a laptop, NetworkManager and Connman are by far the most convenient options, which is why the default desktop services include NetworkManager (voir %desktop-services). For a server, or for a virtual machine or a container, static network configuration or a simple DHCP client are often more appropriate.

This section describes the various network setup services available, starting with static network configuration.

Variable Scheme : static-networking-service-type

This is the type for statically-configured network interfaces. Its value must be a list of static-networking records. Each of them declares a set of addresses, routes, and links, as show below.

Here is the simplest configuration, with only one network interface controller (NIC) and only IPv4 connectivity:

;; Static networking for one NIC, IPv4-only.
(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")))))

The snippet above can be added to the services field of your operating system configuration (voir Utiliser le système de configuration). It will configure your machine to have 10.0.2.15 as its IP address, with a 24-bit netmask for the local network—meaning that any 10.0.2.x address is on the local area network (LAN). Traffic to addresses outside the local network is routed via 10.0.2.2. Host names are resolved by sending domain name system (DNS) queries to 10.0.2.3.

Data Type : static-networking

This is the data type representing a static network configuration.

As an example, here is how you would declare the configuration of a machine with a single network interface controller (NIC) available as eno1, and with one IPv4 and one IPv6 address:

;; Network configuration for one 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")))

If you are familiar with the ip command of the iproute2 package found on Linux-based systems, the declaration above is equivalent to typing:

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

Run man 8 ip for more info. Venerable GNU/Linux users will certainly know how to do it with ifconfig and route, but we’ll spare you that.

The available fields of this data type are as follows:

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

The list of network-address, network-link, and network-route records for this network (see below).

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

The list of IP addresses (strings) of domain name servers. These IP addresses go to /etc/resolv.conf.

provision (default: '(networking))

If true, this should be a list of symbols for the Shepherd service corresponding to this network configuration.

requirement (par défaut : '())

The list of Shepherd services depended on.

Data Type : network-address

This is the data type representing the IP address of a network interface.

device

The name of the network interface for this address—e.g., "eno1".

valeur

The actual IP address and network mask, in CIDR (Classless Inter-Domain Routing) notation, as a string.

For example, "10.0.2.15/24" denotes IPv4 address 10.0.2.15 on a 24-bit sub-network—all 10.0.2.x addresses are on the same local network.

ipv6?

Whether value denotes an IPv6 address. By default this is automatically determined.

Data Type : network-route

This is the data type representing a network route.

destination

The route destination (a string), either an IP address or "default" to denote the default route.

source (par défaut : #f)

The route source.

device (par défaut : #f)

The device used for this route—e.g., "eno2".

ipv6? (default: auto)

Whether this is an IPv6 route. By default this is automatically determined based on destination or gateway.

gateway (par défaut : #f)

IP address (a string) through which traffic is routed.

Data type for a network link (voir Link dans Guile-Netlink Manual).

name

The name of the link—e.g., "v0p0".

type

A symbol denoting the type of the link—e.g., 'veth.

arguments

List of arguments for this type of link.

Scheme Variable : %loopback-static-networking

This is the static-networking record representing the “loopback device”, lo, for IP addresses 127.0.0.1 and ::1, and providing the loopback Shepherd service.

Scheme Variable : %qemu-static-networking

This is the static-networking record representing network setup when using QEMU’s user-mode network stack on eth0 (voir Using the user mode network stack dans QEMU Documentation).

Variable Scheme : dhcp-client-service-type

C’est le type de services qui lance dhcp, un client DHC (protocole de configuration d’hôte dynamique) sur toutes les interfaces réseau non-loopback. Sa valeur est le paquet du client DHCP à utiliser, isc-dhcp par défaut.

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.

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.

Procédure Scheme : wicd-service [#:wicd wicd]

Renvoie un service qui lance Wicd, un démon de gestion réseau qui cherche à simplifier la configuration des réseaux filaires et sans fil.

Ce service ajoute le paquet wicd au profil global, pour fournir des commandes pour interagir avec le démon et configurer le réseau : wicd-client, une interface graphique et les interfaces utilisateurs wicd-cli et wicd-curses.

Some networking devices such as modems require special care, and this is what the services below focus on.

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]