9.2. Configuration générale du réseau

Cette section s'applique seulement si une carte réseau doit être configurée.

9.2.1. Fichier de configuration d'interface réseau

À partir de la version 209, systemd contient un démon de configuration réseau nommé systemd-networkd qui peut être utilisé pour la configuration basique du réseau. De plus, depuis la version 213, la résolution de nom DNS peut être prise en charge par systemd-resolved au lieu d'un fichier /etc/resolv.conf statique. Ces deux services sont activés par défaut.

Les fichiers de configuration pour systemd-networkd (et systemd-resolved) peuvent être placés dans /usr/lib/systemd/network ou /etc/systemd/network. Les fichiers dans /etc/systemd/network ont une priorité supérieure à ceux dans /usr/lib/systemd/network. Il existe trois types de fichiers de configuration : .link, .netdev et .network. Pour une description détaillée et des exemples de contenu de ces fichiers de configuration, consultez des pages de manuel systemd-link(5), systemd-netdev(5) et systemd-network(5).

9.2.1.1. Nommage des périphériques réseau

Udev assigne normalement des noms d'interface basés sur les caractéristiques physiques comme enp2s1. Si vous n'êtes pas sûr de votre nom d'interface, vous pouvez toujours lancer ip link après avoir lancé votre système.

Pour la plupart des systèmes, il n'y a qu'une interface réseau pour chaque type de connexion. Par exemple, le nom classique pour une connexion filaire est eth0. Une connexion sans fil aura souvant pour nom wifi0 ou wlan0.

Si vous préférez utiliser les noms d'interfaces réseau classiques ou personnalisés, il y a trois manières de procéder :

  • Masquez le fichier .link d'udev pour la politique par défaut :

    ln -s /dev/null /etc/systemd/network/99-default.link
  • Créez une convention de nommage manuelle, par exemple en nommant les interface comme « internet0 », « dmz0 » ou « lan0 ». Pour cela, créez des fichiers .link dans /etc/systemd/network/, qui choisissent un nom explicite ou une meilleure convention de nommage pour vos interfaces. Par exemple :

    cat > /etc/systemd/network/10-ether0.link << "EOF"
    [Match]
    # Changez l'adresse MAC comme il faut pour votre périphérique réseau
    MACAddress=12:34:45:78:90:AB
    
    [Link]
    Name=ether0
    EOF

    Voir la page de manuel de systemd.link(5) pour plus d'informations.

  • Dans /boot/grub/grub.cfg, passez l'option net.ifnames=0 sur la ligne de commande du noyau.

9.2.1.2. Configuration en IP statique

La commande suivante crée un fichier de configuration basique pour la configuration d'une adresse ip statique (en utilisant systemd-networkd et systemd-resolved) :

cat > /etc/systemd/network/10-eth-static.network << "EOF"
[Match]
Name=<network-device-name>

[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=192.168.0.1
Domains=<Your Domain Name>
EOF

Vous pouvez ajouter plusieurs entrées DNS si vous avez plus d’un serveur DNS. Ne rajoutez pas d’entrée DNS ou Domains si vous voulez utiliser un fichier /etc/resolv.conf statique.

9.2.1.3. Configuration du DHCP

La commande suivante crée un fichier de configuration basique pour la configuration de DHCP en IPv4 :

cat > /etc/systemd/network/10-eth-dhcp.network << "EOF"
[Match]
Name=<network-device-name>

[Network]
DHCP=ipv4

[DHCP]
UseDomains=true
EOF

9.2.2. Créer le fichier /etc/resolv.conf

Si le système a besoin d'être connecté à Internet, il aura besoin d'un DNS pour résoudre les noms de domaines Internet en adresse IP, et vice-versa. Ceci se fait en plaçant les adresses IP des serveurs DNS, disponibles auprès du FAI ou de l'administrateur système, dans /etc/resolv.conf.

9.2.2.1. Configuration de systemd-resolved

[Note]

Note

Si vous utilisez un autre moyen pour configurer vos interfaces réseaux (par exemple ppp, etc), ou si vous utilisez un résolveur local (par exemple bind, dnsmasq, unbound, etc), ou tout autre logiciel générant un fichier /etc/resolv.conf (par exemple un programe resolvconf autre que celui fournit par systemd), le service systemd-resolved ne devrait pas être utilisé.

Lorsque vous utilisez systemd-resolved pour configurer le DNS, il crée le fichier /run/systemd/resolve/resolv.conf. Créez un lien symbolique dans /etc pour utiliser le fichier généré :

ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf

9.2.2.2. Configuration de resolv.conf statique

Si un fichier statique /etc/resolv.conf est désiré, créez-le en lançant la commande suivante :

cat > /etc/resolv.conf << "EOF"
# Début de /etc/resolv.conf

domain <Votre nom de domaine>
nameserver <Adresse IP du DNS primaire>
nameserver <Adresse IP du DNS secondaire>

# Fin de /etc/resolv.conf
EOF

Le paramètre domain peut être omis ou remplacé par un paramètre search. Voir la page de manuel de resolv.conf pour plus de détails.

Remplacez <Adresse IP du DNS> par l'adresse IP du DNS le plus approprié pour votre configuration. Il y aura souvent plus d'une entrée (les serveurs secondaires sont utiles en cas d'indisponibilité du premier). Si vous avez seulement besoin ou si vous voulez seulement un serveur DNS, supprimez la seconde ligne nameserver du fichier. L'adresse IP pourrait aussi être un routeur sur le réseau local. Une autre possibilité est d'utiliser le service DNS public de Google avec les adresse IP suivantes comme serveurs de noms.

[Note]

Note

Les adresses des DNS publiques de Google sont 8.8.8.8 et 8.8.4.4 en IPv4 et 2001:4860:4860::8888 et 2001:4860:4860::8844 en IPv6. Autrement, vous pouvez aussi utiliser les résolveurs de FDN: 80.67.169.12 et 80.67.169.40 en IPv4 et 2001:910:800::12 et 2001:910:800::40 en IPv6.

9.2.3. Configurer le nom d'hôte du système

Pendant le processus de démarrage, le fichier /etc/hostname est utilisé pour donner un nom d'hôte au système.

Créez le fichier /etc/network et saisissez le nom du système en lançant :

echo "<lfs>" > /etc/hostname

<lfs> doit être remplacé par le nom de l'ordinateur. Ne saisissez pas le FQDN ici. Cette information sera saisie dans le fichier /etc/hosts.

9.2.4. Personnaliser le fichier /etc/hosts

Choisissez un nom de domaine pleinement qualifié (fully-qualified domain name, ou FQDN) et les alias possibles à déclarer dans le fichier /etc/hosts. Si vous utilisez des adresses statiques, vous devrez aussi choisir une adresse IP. La syntaxe d’une entrée du fichier hosts est :

IP_address myhost.example.org aliases

Sauf si votre ordinateur doit être visible à partir d'Internet (c-à-d que c'est un domaine enregistré et un bloc d'adresses IP valide—la plupart des utilisateurs n'ont pas ceci), assurez-vous que l'adresse IP se trouve dans la plage d'adresses réservée aux réseaux privés. Les plages valides sont :

Plage d'adresses réseau privés      Préfixe normal
     10.0.0.1 - 10.255.255.254                    8
    172.x.0.1 - 172.x.255.254                    16
  192.168.y.1 - 192.168.y.254                    24

x peut être un nombre compris entre 16 et 31. y peut être un nombre compris entre 0 et 255.

Une adresse IP privée valide pourrait être 192.168.1.1. Un FQDN valide pour cette IP pourrait être lfs.example.org.

Même si vous ne possédez pas de carte réseau, un FQDN valide est toujours requis. Certains programmes, comme les MTA, en ont besoin pour fonctionner correctement.

Créez le fichier /etc/hosts avec la commande suivante :

cat > /etc/hosts << "EOF"
# Begin /etc/hosts

127.0.0.1 localhost.localdomain localhost
127.0.1.1 <FQDN> <HOSTNAME>
<192.168.0.2> <FQDN> <HOSTNAME> [alias1] [alias2] ...
::1       localhost ip6-localhost ip6-loopback
ff02::1   ip6-allnodes
ff02::2   ip6-allrouters

# End /etc/hosts
EOF

Les valeurs <192.168.0.2>, <FQDN> et <HOSTNAME> doivent être remplacées suivant les contraintes et les besoins spécifiques (si la machine se voit affecter une adresse IP par un administrateur réseau/système et que cette machine est connectée à un réseau existant). Vous pouvez omettre le ou les noms d'alias facultatifs, et la ligne <192.168.0.2 si vous utilisez une connexion configurée avec DHCP ou l'autoconfiguration IPv6.

L'adresse ::1 est l'équivalent en IPv6 à 127.0.0.1 et représente l'interface de rebouclage IPv6. 127.0.1.1 est une entrée de rebouclage réservée spécifiquement pour le FQDN.