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é.
Data type for a network link (voir Link dans Guile-Netlink Manual). During startup, network links are employed to construct or modify existing or virtual ethernet links. These ethernet links can be identified by their name or mac-address. If there is a need to create virtual interface, name and type fields are required.
name
The name of the link—e.g., "v0p0"
(default: #f
).
type
A symbol denoting the type of the link—e.g., 'veth
(default:
#f
).
mac-address
The mac-address of the link—e.g., "98:11:22:33:44:55"
(default:
#f
).
arguments
La liste des arguments pour ce type de lien.
Consider a scenario where a server equipped with a network interface which has multiple ports. These ports are connected to a switch, which supports link aggregation (also known as bonding or NIC teaming). The switch uses port channels to consolidate multiple physical interfaces into one logical interface to provide higher bandwidth, load balancing, and link redundancy. When a port is added to a LAG (or link aggregation group), it inherits the properties of the port-channel. Some of these properties are VLAN membership, trunk status, and so on.
VLAN (or virtual local area network) is a logical network that is isolated from other VLANs on the same physical network. This can be used to segregate traffic, improve security, and simplify network management.
With all that in mind let’s configure our static network for the server. We will bond two existing interfaces together using 802.3ad schema and on top of it, build a VLAN interface with id 1055. We assign a static ip to our new VLAN interface.
(static-networking
(links (list (network-link
(name "bond0")
(type 'bond)
(arguments '((mode . "802.3ad")
(miimon . 100)
(lacp-active . "on")
(lacp-rate . "fast"))))
(network-link
(mac-address "98:11:22:33:44:55")
(arguments '((master . "bond0"))))
(network-link
(mac-address "98:11:22:33:44:56")
(arguments '((master . "bond0"))))
(network-link
(name "bond0.1055")
(type 'vlan)
(arguments '((id . 1055)
(link . "bond0"))))))
(addresses (list (network-address
(value "192.168.1.4/24")
(device "bond0.1055")))))
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
.
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).
This is the type of services that run dhclient, the ISC Dynamic Host Configuration Protocol (DHCP) client.
Data type representing the configuration of the ISC DHCP client service.
package
(par défaut : isc-dhcp
)The ISC DHCP client package to use.
interfaces
(par défaut : 'all
)Either 'all
or the list of interface names that the ISC DHCP client
should listen on—e.g., '("eno1")
.
When set to 'all
, the ISC DHCP client listens on all the available
non-loopback interfaces that can be activated. Otherwise the ISC DHCP
client listens only on the specified interfaces.
config-file
(par défaut : #f
)The configuration file for the ISC DHCP client.
version
(par défaut : "4"
)The DHCP protocol version to use, as a string. Accepted values are
"4"
or "6"
for DHCPv4 or DHCPv6, respectively, as well as
"4o6"
, for DHCPv4 over DHCPv6 (as specified by RFC 7341).
rshepherd-equirement
(par défaut : '()
)shepherd-provision
(default: '(networking)
)This option can be used to provide a list of symbols naming Shepherd
services that this service will depend on, such as 'wpa-supplicant
or
'iwd
if you require authenticated access for encrypted WiFi or
Ethernet networks.
Likewise, shepherd-provision
is a list of Shepherd service names
(symbols) provided by this service. You might want to change the default
value if you intend to run several ISC DHCP clients, only one of which
provides the networking
Shepherd service.
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.
shepherd-requirement
(default: '(wpa-supplicant)
)This option can be used to provide a list of symbols naming Shepherd
services that this service will depend on, such as 'wpa-supplicant
or
'iwd
if you require authenticated access for encrypted WiFi or
Ethernet networks.
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.
rshepherd-equirement
(par défaut : '()
)This option can be used to provide a list of symbols naming Shepherd
services that this service will depend on, such as 'wpa-supplicant
or
'iwd
if you require authenticated access for encrypted WiFi or
Ethernet networks.
disable-vpn?
(par défaut : #f
)Lorsque la valeur est vraie, désactive le greffon vpn de connman.
general-configuration
(default: (connman-general-configuration)
)Configuration serialized to main.conf and passed as --config
to connmand
.
Available connman-general-configuration
fields are:
input-request-timeout
(type: maybe-number)Set input request timeout. Default is 120 seconds. The request for inputs like passphrase will timeout after certain amount of time. Use this setting to increase the value in case of different user interface designs.
browser-launch-timeout
(type: maybe-number)Set browser launch timeout. Default is 300 seconds. The request for launching a browser for portal pages will timeout after certain amount of time. Use this setting to increase the value in case of different user interface designs.
background-scanning?
(type: maybe-boolean)Enable background scanning. Default is true. If wifi is disconnected, the
background scanning will follow a simple back off mechanism from 3s up to 5
minutes. Then, it will stay in 5 minutes unless user specifically asks for
scanning through a D-Bus call. If so, the mechanism will start again from
3s. This feature activates also the background scanning while being
connected, which is required for roaming on wifi. When
background-scanning?
is false, ConnMan will not perform any scan
regardless of wifi is connected or not, unless it is requested by the user
through a D-Bus call.
use-gateways-as-timeservers?
(type: maybe-boolean)Assume that service gateways also function as timeservers. Default is false.
fallback-timeservers
(type: maybe-list)List of Fallback timeservers. These timeservers are used for NTP sync when
there are no timeservers set by the user or by the service, and when
use-gateways-as-timeservers?
is #f
. These can contain a mixed
combination of fully qualified domain names, IPv4 and IPv6 addresses.
fallback-nameservers
(type: maybe-list)List of fallback nameservers appended to the list of nameservers given by the service. The nameserver entries must be in numeric format, host names are ignored.
default-auto-connect-technologies
(type: maybe-list)List of technologies that are marked autoconnectable by default. The
default value for this entry when empty is "ethernet"
, "wifi"
,
"cellular"
. Services that are automatically connected must have been
set up and saved to storage beforehand.
default-favourite-technologies
(type: maybe-list)List of technologies that are marked favorite by default. The default value
for this entry when empty is "ethernet"
. Connects to services from
this technology even if not setup and saved to storage.
always-connected-technologies
(type: maybe-list)List of technologies which are always connected regardless of
preferred-technologies setting (auto-connect?
#t
). The
default value is empty and this feature is disabled unless explicitly
enabled.
preferred-technologies
(type: maybe-list)List of preferred technologies from the most preferred one to the least preferred one. Services of the listed technology type will be tried one by one in the order given, until one of them gets connected or they are all tried. A service of a preferred technology type in state ’ready’ will get the default route when compared to another preferred type further down the list with state ’ready’ or with a non-preferred type; a service of a preferred technology type in state ’online’ will get the default route when compared to either a non-preferred type or a preferred type further down in the list.
network-interface-blacklist
(type: maybe-list)List of blacklisted network interfaces. Found interfaces will be compared
to the list and will not be handled by ConnMan, if their first characters
match any of the list entries. Default value is "vmnet"
,
"vboxnet"
, "virbr"
, "ifb"
.
allow-hostname-updates?
(type: maybe-boolean)Allow ConnMan to change the system hostname. This can happen for example if
we receive DHCP hostname option. Default value is #t
.
allow-domainname-updates?
(type: maybe-boolean)Allow connman to change the system domainname. This can happen for example
if we receive DHCP domainname option. Default value is #t
.
single-connected-technology?
(type: maybe-boolean)Keep only a single connected technology at any time. When a new service is
connected by the user or a better one is found according to
preferred-technologies, the new service is kept connected and all the other
previously connected services are disconnected. With this setting it does
not matter whether the previously connected services are in ’online’ or
’ready’ states, the newly connected service is the only one that will be
kept connected. A service connected by the user will be used until going
out of network coverage. With this setting enabled applications will notice
more network breaks than normal. Note this options can’t be used with
VPNs. Default value is #f
.
tethering-technologies
(type: maybe-list)List of technologies that are allowed to enable tethering. The default
value is "wifi"
, "bluetooth"
, "gadget"
. Only those
technologies listed here are used for tethering. If one wants to tether
ethernet, then add "ethernet"
in the list. Note that if ethernet
tethering is enabled, then a DHCP server is started on all ethernet
interfaces. Tethered ethernet should never be connected to corporate or
home network as it will disrupt normal operation of these networks. Due to
this ethernet is not tethered by default. Do not activate ethernet
tethering unless you really know what you are doing.
persistent-tethering-mode?
(type: maybe-boolean)Restore earlier tethering status when returning from offline mode,
re-enabling a technology, and after restarts and reboots. Default value is
#f
.
enable-6to4?
(type: maybe-boolean)Automatically enable anycast 6to4 if possible. This is not recommended, as
the use of 6to4 will generally lead to a severe degradation of connection
quality. See RFC6343. Default value is #f
(as recommended by
RFC6343 section 4.1).
vendor-class-id
(type: maybe-string)Set DHCP option 60 (Vendor Class ID) to the given string. This option can be used by DHCP servers to identify specific clients without having to rely on MAC address ranges, etc.
enable-online-check?
(type: maybe-boolean)Enable or disable use of HTTP GET as an online status check. When a service
is in a READY state, and is selected as default, ConnMan will issue an HTTP
GET request to verify that end-to-end connectivity is successful. Only then
the service will be transitioned to ONLINE state. If this setting is false,
the default service will remain in READY state. Default value is #t
.
online-check-ipv4-url
(type: maybe-string)IPv4 URL used during the online status check. Please refer to the README for more detailed information. Default value is http://ipv4.connman.net/online/status.html.
online-check-ipv6-url
(type: maybe-string)IPv6 URL used during the online status check. Please refer to the README for more detailed information. Default value is http://ipv6.connman.net/online/status.html.
online-check-initial-interval
(type: maybe-number)Range of intervals between two online check requests. Please refer to the README for more detailed information. Default value is ‘1’.
online-check-max-interval
(type: maybe-number)Range of intervals between two online check requests. Please refer to the README for more detailed information. Default value is ‘1’.
enable-online-to-ready-transition?
(type: maybe-boolean)WARNING: This is an experimental feature. In addition to
enable-online-check
setting, enable or disable use of HTTP GET to
detect the loss of end-to-end connectivity. If this setting is #f
,
when the default service transitions to ONLINE state, the HTTP GET request
is no more called until next cycle, initiated by a transition of the default
service to DISCONNECT state. If this setting is #t
, the HTTP GET
request keeps being called to guarantee that end-to-end connectivity is
still successful. If not, the default service will transition to READY
state, enabling another service to become the default one, in replacement.
Default value is #f
.
auto-connect-roaming-services?
(type: maybe-boolean)Automatically connect roaming services. This is not recommended unless you
know you won’t have any billing problem. Default value is #f
.
address-conflict-detection?
(type: maybe-boolean)Enable or disable the implementation of IPv4 address conflict detection
according to RFC5227. ConnMan will send probe ARP packets to see if an IPv4
address is already in use before assigning the address to an interface. If
an address conflict occurs for a statically configured address, an IPv4LL
address will be chosen instead (according to RFC3927). If an address
conflict occurs for an address offered via DHCP, ConnMan sends a DHCP
DECLINE once and for the second conflict resorts to finding an IPv4LL
address. Default value is #f
.
localtime
(type: maybe-string)Path to localtime file. Defaults to /etc/localtime.
regulatory-domain-follows-timezone?
(type: maybe-boolean)Enable regulatory domain to be changed along timezone changes. With this
option set to true each time the timezone changes the first present ISO3166
country code is read from /usr/share/zoneinfo/zone1970.tab and set as
regulatory domain value. Default value is #f
.
resolv-conf
(type: maybe-string)Path to resolv.conf file. If the file does not exist, but intermediate directories exist, it will be created. If this option is not set, it tries to write into /var/run/connman/resolv.conf if it fails (/var/run/connman does not exist or is not writeable). If you do not want to update resolv.conf, you can set /dev/null.
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]