systemd-networkd (Français)

From ArchWiki
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.

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:Systemd-networkd (Français)#)

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

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