Suivant: Services réseau, Précédent: Rotation des journaux, Monter: Services [Table des matières][Index]
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.
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.
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.
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.
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.
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.
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).
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.
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 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
.
NetworkManager mettra à jour resolv.conf
pour refléter les serveurs
de noms fournis par les connexions actives.
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-...
.
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.
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 :
(service connman-service-type
(connman-configuration
(disable-vpn? #t)))
Voir plus bas pour des détails sur 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.
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 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.
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.
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ée représentant la configuration de ModemManager.
modem-manager
(par défaut : modem-manager
)Le paquet ModemManager à utiliser.
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é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: Services réseau, Précédent: Rotation des journaux, Monter: Services [Table des matières][Index]