systemd-networkd (Français) - ArchWiki

# systemd-networkd (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

- systemd
- systemd-resolved
- systemd-nspawn
- Network bridge
- Network configuration
- Wireless network configuration
- Category:Network configuration

Systemd offre maintenant la possibilité de gérer le réseau par lui-même sans outils supplémentaires tels que Netctl ou NetworkManager.

Note: Cette page ne fait pas l'état complet de ce que peut faire systemd-networkd, veuillez vous référer à la page systemd-networkd(8). Il est ici seulement question d'une utilisation simple dans des conditions usuelles.

## Configuration

La configuration se fait dans `/etc/systemd/network` dans des fichiers en .network.

### Ethernet

Pour une connexion simple en DHCP sur l'interface `eth0` :

    /etc/systemd/network/eth0.network

    [Match]
    Name=eth0

    [Network]
    DHCP=yes

Pour l'utiliser, il suffit d'activer les services :

    systemctl enable systemd-networkd.service
    systemctl start systemd-networkd.service

Et puis c'est tout.

### WiFi

#### Interfaces

Bon, bah c'est pas franchement plus dur (étrangement) ! Pour une interface `IF0` :

    /etc/systemd/network/IF0.network

    [Match]
    Name=IF0

    [Network]
    DHCP=yes

Et ensuite il vous faut wpa_supplicant et le fichier `/etc/wpa_supplicant/wpa_supplicant-IF0.conf` (que vous pouvez compléter à partir de `/etc/wpa_supplicant/wpa_supplicant.conf`). Cf. Network configuration (Français)/Wireless (Français).

    /etc/wpa_supplicant/wpa_supplicant-IF0.conf

    # Minimum vital, lisez le man et les commentaires de /etc/wpa_supplicant/wpa_supplicant.conf
    ctrl_interface=/var/run/wpa_supplicant
    eapol_version=1
    ap_scan=1
    fast_reauth=1

Puis pour ajouter un réseau, devient facile:

    wpa_passphrase ESSID >> /etc/wpa_supplicant/wpa_supplicant-IF0.conf

Non, vous ne révez pas, il n'y a bien qu'une unique ligne.

    wpa_passphrase ESSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant-IF0.conf

Note: Cette commande ne fonctionne pas avec certains caractères spéciaux - si besoin se servir, pour générer une clef, de la commande pwgen Ex : pwgen -1 63

Et pour finir, on démarre les bons services :

    systemctl enable systemd-networkd.service
    systemctl enable wpa_supplicant@IF0.service
    systemctl start systemd-networkd.service
    systemctl start wpa_supplicant@IF0.service

Et... c'est tout. Voilà. Fini. Je vous laisse lire le manuel de `wpa_supplicant` pour gérer la priorité des réseaux et les réseaux plus compliqués, genre eduroam.

Note: `IF0` est à remplacer (partout) par le nom de votre interface wifi, listée dans `ip a` : ce peut être `wlan0`, `wlp2s0` ou encore `wls1`. Par conséquent, les fichiers seront par exemple `/etc/wpa_supplicant/wpa_supplicant-wlan0.conf` et `/etc/systemd/network/wlan0.network` et le service, `wpa_supplicant@wlan0.service`.

#### Scanner les réseaux

Comme nous n'avons pas Netctl, point de `wifi-menu` ! On utilise donc au choix iw ou `iwlist` qui est dans wireless_tools.

    iw dev IF0 scan # | grep SSID

    iwlist IF0 scanning # | grep ESSID

Note: Supprimez le '#' pour n'obtenir que le nom des différents réseaux disponibles.
Note: `wifi-radar -` par gksu ou kdesu - permet un scan en interface graphique

### resolv.conf

Maintenant, on a `systemd-networkd` qui s'occupe de nous attribuer une adresse IP, mais quid du `/etc/resolv.conf` ? Il faut utiliser celui généré par `systemd-resolved` et créer un lien symbolique :

    systemctl enable systemd-resolved.service
    systemctl start systemd-resolved.service
    rm /etc/resolv.conf
    ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

### Ethernet et Wifi en même temps

Si vous utilisez à la fois une connexion filaire et une connexion wifi, il est possible de donner la priorité à l'une ou l'autre en utilisant l'option `RouteMetric`.

L’intérêt est que si l'une des deux connections s'arrête, l'autre prendra automatiquement le relais. Pour chaque connexion, il faut ajouter dans le fichier .network correspondant (et décrit ci-dessus) les instructions suivantes:

    [DHCP]
    RouteMetric=10

et mettre la valeur de `RouteMetric` la plus faible pour la connexion prioritaire. Par exemple, 10 pour le filaire ; 20 pour le wifi.

(voir sur le wiki anglais.)

Categories:

- Network managers (Français)
- Virtualization (Français)