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. Fichiers 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.

[Note]

Note

Si vous n'utiliserez pas systemd-networkd pour la configuration du réseau (par exemple si le système n'est pas connecté à un réseau ou que vous voulez utiliser un autre utilitaire comme NetworkManager pour la configuration du réseau), désactivez un service pour éviter un message d'erreur au démarrage :

systemctl disable systemd-networkd-wait-online

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 du système comme enp2s1. Si vous n'êtes pas sûr de votre nom d'interface, vous pouvez toujours lancer ip link après avoir démarré votre système.

[Note]

Note

Les noms d'interface dépendent de l'implémentation et de la configuration du démon udev exécuté sur le système. Le démon udev de LFS (systemd-udevd, installé au Section 8.75, « Systemd-255 ») ne sera pas exécuté à moins de démarrer le système LFS. Il n'est donc pas fiable de déterminer les noms d'interface utilisés dans le système LFS en exécutant ces commandes sur la distribution hôte, même dans l'environnement chroot.

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 ce faire, 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 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 d'une 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

[DHCPv4]
UseDomains=true
EOF

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

Si le système doit se connecter à Internet, il devra résoudre les noms de domaines Internet (DNS) 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 moyen incompatible 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 resolvconf), le service systemd-resolved ne devrait pas être utilisé.

Pour désactiver systemd-resolved, exécutez la commande suivante :

systemctl disable systemd-resolved

Lorsque vous utilisez systemd-resolved pour la configuration DNS, il créera le fichier /run/systemd/resolve/stub-resolve.conf. Et, si /etc/resolv.conf n'existe pas, il sera créé par systemd-resolved en tant que lien symbolique vers /run/systemd/resolve/stub-resolv.conf. Il est donc inutile de créer un fichier /etc/resolv.conf manuellement.

9.2.2.2. Configuration de resolv.conf statique

Si un fichier statique /etc/resolv.conf est désiré, créez-le en exécutant 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 (Fully Qualified Domain Name) 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 une adresse IP statique, vous devrez décider de celle-ci. La syntaxe 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—ce que la plupart des utilisateurs n'ont pas), 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.

Si l'ordinateur doit être visible sur Internet, un FQDN valide peut être le nom de domaine lui-même ou une chaine composée d'un préfixe (souvent le nom d'hôte) et du nom de domaine séparés du charactère « . ». Ensuite, vous devez contacter votre fournisseur de nom de domaine pour pouvoir résoudre le FQDN vers votre adresse IP publique.

Même si l'ordinateur n'est pas visible sur Internet, un FQDN est toujours requis par certains programmes, comme les MTA, pour fonctionner correctement. Un FQDN spécial, localhost.localdomain, peut être utilisé pour cela.

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

cat > /etc/hosts << "EOF"
# Début de /etc/hosts

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

# Fin de /etc/hosts
EOF

Les valeurs <192.168.0.2> et <FQDN> 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 qu'elle est connectée à un réseau existant). Vous pouvez omettre le ou les noms d'alias facultatifs, ainsi que la ligne <192.168.0.2 si vous utilisez une connexion configurée avec DHCP ou l'autoconfiguration IPv6, ou si vous utilisez le FQDN localhost.localdomain.

Le fichier /etc/hostname ne contient pas d'entrées pour localhost, localhost.localdomain ou le nom d'hôte (sans domain) car ils sont gérés par le modules NSS myhostname. Consultez la page de manuel nss-myhostname(8) pour plus de détails.

L'adresse ::1 est l'équivalent en IPv6 de 127.0.0.1 et représente l'interface de rebouclage IPv6.