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.
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.
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
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"
-
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
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 dhcpcd@.service
.
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
/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
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