Suivant: Services réseau, Précédent: Rotation des journaux, Monter: Services [Table des matières][Index]
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.
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.
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.
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.
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.
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
.
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).
C’est le type de services qui lance dhcp, un client DHCP (protocole de configuration d’hôte dynamique).
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.
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 sur une machine virtuelle). 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 Exécuter Guix sur une machine virtuelle), 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.
Certains périphériques réseau comme les modems ont des besoins spécifiques et c’est ce dont s’occupe les services suivants.
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]