# Network configuration (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Related articles

- Network Debugging
- Firewalls
- Internet sharing
- Router

Cet article ou section a besoin d'être traduit(e).

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 supportent 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 :

- dhcpcd présent dans base.
- dhclient.

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

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

Category:

- Network configuration (Français)

Hidden categories:

- Pages or sections flagged with Template:Translateme
- Pages with broken package links