Network configuration (Français)

From ArchWiki

Tango-preferences-desktop-locale.pngCet article ou section a besoin d'être traduit(e).Tango-preferences-desktop-locale.png

Notes: Cet article ne respecte pas la structure de sa version anglophone, merci de le réécrire en conséquence. Vous pouvez aussi ajouter à la version anglophone les informations à-jour et dignes d’intérêt qui ne seraient portées que par la version francophone. Voir ArchWiki:Translation Team (Français) (Discuss in Talk:Network configuration (Français)#)

Il existe plusieurs méthodes pour se connecter à un réseau ip existant. Les unes manuelles, les autres automatiques, persistantes ou provisoires.

Attention: Si c'est une connexion wifi, n'oubliez pas de la configurer auparavant : wifi

Nom de la machine

Avant toute chose, il vous faut indiquer le nom de l'ordinateur dans le fichier /etc/hostname :

/etc/hostname
archtest

Ou encore en utilisant la commande hostnamectl :

hostnamectl set-hostname archtest

Vérification du matériel

Chargement du module

Si votre matériel n'est pas reconnu, il vous faut éventuellement installer et charger le module correspondant à votre matériel manuellement.

Interfaces

Avec l’arrivée de la version 197 de systemd le nom des interfaces réseau change. Le but étant de ne pas avoir un nom d’interface (pour ceux qui en ont plusieurs) qui change à chaque démarrage.

Les interfaces sont maintenant préfixées de en (ethernet), wl (WLAN) ou ww (WWAN), suivi par un identifiant généré automatiquement et prévisible, pour finalement donner comme nom enp5s0 par exemple.

Attention: Par commodité (... fainéantise :P ), les pages wikis traitant des interfaces réseaux comme la suite de la présente page continuent de parler eth0, wlan0, etc.. Car du point de vue de l'utilisation, la nouvelle nomenclature ne change rien.

Nombre d'outils vous permettront de connaître le nom de vos interfaces réseau, par exemple:

ip link show

ou, si net-tools est installé:

ifconfig -a

voire pour le wifi:

iwconfig
Note: Ce comportement peut être désactivé par l'ajout d'un lien symbolique:
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

On retrouvera alors les classiques eth0, eth1, wlan0, etc.. mais vous devrez dès lors figer le nom des interfaces afin d'éviter leur changement entre chaque démarrage (du fait que les modules se chargent en parallèle) au moyen de règles udev ou de ifrename.

  • udev: Créez un fichier de règles udev :
/etc/udev/rules.d/10-network.rules
SUBSYSTEM=="net", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="lan1"
SUBSYSTEM=="net", ATTRS{address}=="yy:yy:yy:yy:yy:yy", NAME="lan2"

Attention: L'adresse MAC est à noter en minuscules
  • ifrename: ifrename est fourni par le paquet wireless_tools. Il permet de configurer le nom des interfaces :
/etc/iftab
lan1		mac xx:xx:xx:xx:xx:xx
lan2		mac yy:yy:yy:yy:yy:yy

Il faut lancer :

ifrename -c /etc/iftab

pour que le renommage soit effectif.

Plus d'infos (en): Predictable Network Interface Names

Configuration IP

IP statiques

Note: Les exemples sont ici donnés en IPv4, mais les outils présentés gèrent aussi l'IPv6.
Note: Si vous préférez utiliser ifconfig, route, il vous faut installer net-tools.

Il vous faut connaître quelques informations sur votre réseau : le masque de sous réseau (netmask), la plage d'adresse utilisée (normalement liée), et idéalement l'adresse de diffusion (broadcast). Vous devez aussi connaître l'interface réseau, qui va vous permettre de vous connecter.

Pour lister les interfaces :

ip link show
# ou
ifconfig -a

Supposons que nous voulions nous connecter au réseau suivant :

172.16.0.0/12 netmask 255.255.0.0 broadcast 172.16.255.255

avec l'ip 172.16.0.4 en passant par l'interface eth0.

On active l'interface (au cas où) :

ip link set dev eth0 up
# ou
ifconfig eth0 up

Puis :

ip addr add dev eth0 broadcast 172.16.255.255 local 172.16.0.4
# ou
ifconfig eth0 172.16.0.4 netmask 255.255.0.0 broadcast 172.16.255.255

Maintenant que vous êtes connecté au réseau, vous avez peut-être envie d’accéder à un réseau plus général auquel il est connecté grâce au NAT.

Il faut connaître l'adresse IP de la passerelle. Nous prendrons 172.16.0.1. Il ne reste qu'à ajouter la route par défaut, qui sera utilisée si aucune autre ne correspond :

ip route add default via 172.16.0.1 dev eth0
# ou
route add default gw 172.16.0.1 dev eth0

Vous êtes maintenant connecté au réseau (et potentiellement, à internet).

DHCP

DHCP est un protocole réseau permettant de configurer automatiquement les paramètres IPs. Il faut que ce protocole soit installé sur votre réseau.

Il existe différents clients, entre autre :

Si vous désirez utiliser ce dernier, installez-le. Pour se connecter il suffit de lancer :

dhcpcd eth0

dhcpcd se configure dans le fichier /etc/dhcpcd.conf. Par exemple, pour que dhcpcd ne configure pas les DNS et laisse /etc/resolv.conf en l'état, ajoutez :

/etc/dhcpcd.conf
nohook resolv.conf

.

Configuration du client DNS

Si vous utilisez une IP statique ou si vous avez désactivé cette fonctionnalité du client DHCP, il faut configurer les serveurs DNS, dans le cas contraire, DHCP le fait tout seul.

Vous devez ajouter les adresses des serveurs dns sous la forme

nameserver <adresse ip>

dans le fichier /etc/resolv.conf.

Par exemple, pour le DNS de google (8.8.8.8):

/etc/resolv.conf
search domaine.local 

Tester la connexion

Pour tester la connexion, vous pouvez utiliser :

ping www.google.fr
# ou en ipv6
ping6 www.google.fr

La commande dig du paquet dnsutils[broken link: replaced by bind] et la commande nslookup permettent de résoudre les noms de domaines pour tester la configuration des DNS.

Connexions permanentes

Il existe plusieurs méthodes pour gérer les connexions et faire en sorte qu'Arch Linux se connecte automatiquement. Vous en trouverez quelques uns dans la catégorie Connexion au réseau.

Si vous n'avez pas l'utilité d'un gestionnaire, voici comment procéder:

Réseau statique

L'utilisation d'une configuration réseau statique passe par les étapes suivantes :

  • Création du service /etc/systemd/system/network.service
/etc/systemd/system/network.service

[Unit]
Description=Network Connectivity
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%interface%.device
After=sys-subsystem-net-devices-%interface%.device
  
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ip link set dev %interface% up
ExecStart=/sbin/ip addr add %address%/%netmask% broadcast %broadcast% dev %interface%
ExecStart=/sbin/ip route add default via %gateway%
ExecStop=/sbin/ip addr flush dev %interface%
ExecStop=/sbin/ip link set dev %interface% down
  
[Install]
WantedBy=multi-user.target

  • Remplacer les "variables" entre % par leurs bonnes valeurs, par exemple:
sed -i "s|%interface%|eth0|" /etc/systemd/system/network.service
sed -i "s|%address%|192.168.1.2|" /etc/systemd/system/network.service
sed -i "s|%netmask%|255.255.255.0|" /etc/systemd/system/network.service
sed -i "s|%broadcast%|192.168.1.255|" /etc/systemd/system/network.service
sed -i "s|%gateway%|192.168.1.1|" /etc/systemd/system/network.service
  • Activation du service
 systemctl enable network

DHCP

Le paquet dhcpcd fournit les services dhcpcd.service et [email protected].

Pour activer DHCP sur toutes les interfaces réseaux:

systemctl start dhcpcd

Et l'établir au démarrage du système:

systemctl enable dhcpcd

Pour activer DHCP sur une interface donnée, par exemple eth0, il suffit de faire :

systemctl start dhcpcd@eth0

Le service peut être activé automatiquement au démarrage du système avec :

systemctl enable dhcpcd@eth0
Note: Si le service dhcp démarre avant que le module de la carte réseau ne soit chargé, il faut ajouter le module dans un fichier /etc/modules-load.d/*.conf. Par exemple dans le cas du module r8169, il suffit de créer :
/etc/modules-load.d/realtek.conf
r8169
Astuce: Pour trouver le module utilisé par votre carte réseau, faire lspci -k.

Compatibilité avec Windows

Résolution de noms de machine sous Windows

Afin que les commandes comme ping puissent résoudre les noms de machines sous Windows, il est nécessaire de modifier /etc/nsswitch.conf en ajoutant wins à la ligne commençant par hosts

par exemple:

hosts: files dns myhostname wins

Rendre visible une machine pour Windows

Le paquet samba peut être installé afin de rendre votre machine accessible sous Windows par son nom.

Installation minimale:

pacman -S samba
cp /etc/samba/smb.conf.default /etc/samba/smb.conf

Il suffit ensuite d'activer le service nmbd.service avec

systemctl start nmbd

Et pour l'activer à chaque démarrage de la machine:

systemctl enable nmbd