Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:systemd:network [26/01/2016 10:46] milou [Introduction] |
doc:reseau:systemd:network [26/12/2017 09:23] smolski [Introduction] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Configurer un réseau filaire via systemd-networkd ====== | + | ====== systemd-networkd reseau filaire ====== |
* Objet : Configurer un réseau filaire en utilisant systemd-networkd (/etc/systemd/network/*) | * Objet : Configurer un réseau filaire en utilisant systemd-networkd (/etc/systemd/network/*) | ||
* Niveau requis : {{tag>avisé}} | * Niveau requis : {{tag>avisé}} | ||
* Commentaires : Écrire la configuration de connexion de votre réseau. | * Commentaires : Écrire la configuration de connexion de votre réseau. | ||
- | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | + | * Suivi : {{tag>à-tester}} |
- | * Suivi : {{tag>en-chantier}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. | + | |
* Création par [[user>Severian]] 08/11/2015 | * Création par [[user>Severian]] 08/11/2015 | ||
- | * Testé par <...> le <...> FIXME | + | * Testé par <...> le <...> |
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=12584 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=12584 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | ||
Ligne 15: | Ligne 14: | ||
===== Introduction ===== | ===== Introduction ===== | ||
+ | <note warning>les configurations fonctionnent pour Jessie, à éviter d'utiliser pour l'instant avec Stretch</note> | ||
Avec GNU/Linux Debian Jessie et l'arrivée de Systemd, il existe une nouvelle façon de configurer l'interface réseau sans passer par des "démons" ([[doc:reseau:network-manager|NetworkManager]] ou Wicd) et sans utiliser la modification du fichier ''/etc/network/interfaces''. | Avec GNU/Linux Debian Jessie et l'arrivée de Systemd, il existe une nouvelle façon de configurer l'interface réseau sans passer par des "démons" ([[doc:reseau:network-manager|NetworkManager]] ou Wicd) et sans utiliser la modification du fichier ''/etc/network/interfaces''. | ||
Ligne 22: | Ligne 22: | ||
<note important> | <note important> | ||
- | Afin d'éviter tout conflit, les outils graphiques ou la configuration par le fichier **/etc/network/interfaces** doivent être désactivées | + | Afin d'éviter tout conflit, les outils graphiques ou la configuration par le fichier **/etc/network/interfaces** doivent être désactivés |
</note> | </note> | ||
- | <code root>systemctl disable network | + | <code root>systemctl disable network</code> |
- | systemctl disable NetworkManager</code> | + | <code root>systemctl disable NetworkManager</code> |
==== Les fichiers de configuration /etc/systemd/network/ ==== | ==== Les fichiers de configuration /etc/systemd/network/ ==== | ||
Ligne 43: | Ligne 43: | ||
* les fichiers ''.network'' . Ils vont appliquer une configuration réseau à l'interface correspondante | * les fichiers ''.network'' . Ils vont appliquer une configuration réseau à l'interface correspondante | ||
* les fichiers ''.netdev''. Ils vont créer un dispositif de réseau virtuel pour l'environnement donné | * les fichiers ''.netdev''. Ils vont créer un dispositif de réseau virtuel pour l'environnement donné | ||
- | * les fichiers ''.link''. Quand un dispositif de réseau apparaît, **udev** va chercher le premier fichier ''.link'' correspondant | + | * les fichiers ''.link''. quand un dispositif de réseau apparaît, **udev** va chercher le premier fichier ''.link'' correspondant |
Ils suivent tous les mêmes règles : | Ils suivent tous les mêmes règles : | ||
Ligne 49: | Ligne 49: | ||
* Si une section [Match] est vide, le profil sera applicable dans tous les cas (peut être comparé à * joker) | * Si une section [Match] est vide, le profil sera applicable dans tous les cas (peut être comparé à * joker) | ||
* Chaque entrée est une clé avec la syntaxe **NOM=VALEUR** | * Chaque entrée est une clé avec la syntaxe **NOM=VALEUR** | ||
- | * Tous les fichiers de configuration sont collectivement triés et traités par ordre alphanumérique, quels que soient les répertoires dans lesquel ils se trouvent. | + | * Tous les fichiers de configuration sont collectivement triés et traités par ordre alphanumérique, quels que soient les répertoires dans lesquels ils se trouvent. |
* les fichiers avec des noms identiques se remplacent les uns les autres. | * les fichiers avec des noms identiques se remplacent les uns les autres. | ||
- | == Création des fichiers de configurations == | + | [[doc:reseau:systemd:network:fichier-.network|Configuration des fichiers .network]]\\ |
- | + | [[doc:reseau:systemd:network:fichier-.link|Configuration des fichiers .link]]\\ | |
- | <code root>nano /etc/systemd/network/*nom-du-fichier*</code> | + | [[doc:reseau:systemd:network:fichier-.netdev|Configuration des fichiers .netdev]]\\ |
- | + | ||
- | voir [[doc:editeurs:nano:nano-tp-par-l-exemple|TP : nano par l'exemple]] | + | |
- | * /etc/systemd/network/50-eth0.network | + | |
- | * /etc/systemd/network/50-eth0.link | + | |
- | + | ||
- | ===/etc/systemd/network/50-eth0.network=== | + | |
- | + | ||
- | <code root>nano /etc/systemd/network/50-eth0.network</code> | + | |
- | <code batch 50-eth0.network>[Match] | + | |
- | Name=eth0 | + | |
- | + | ||
- | [Network] | + | |
- | DHCP=no | + | |
- | Address=xxx.xxx.xxx.xxx/24 | + | |
- | Gateway=xxx.xxx.xxx.xxx</code> | + | |
- | + | ||
- | == Section [Match] == | + | |
- | + | ||
- | La section [Match] détermine si un fichier de configuration donné peut être appliqué à une interface donnée. | + | |
- | + | ||
- | Le premier fichier (dans l'ordre lexical) qui correspond à une interface donnée est appliqué. Tous les fichiers suivants seront ignorés, même s'ils correspondent également à l'interface. | + | |
- | * MACAddress → adresse Mac de la carte (correspond à ATTR{address} dans [[configurer-un-reseau-filaire-via-systemd#persistent-netrule-du-repertoire-etc-udev-rulesd|70-persistent-net.rules]]) | + | |
- | * Path : correspond à ID_PATH des [[configurer-un-reseau-filaire-via-systemd#proprietes-udev|proprietes UDEV]] | + | |
- | * Driver : correspond à DRIVER des [[configurer-un-reseau-filaire-via-systemd#proprietes-udev|proprietes UDEV]], ou **driver** de la commande [[configurer-un-reseau-filaire-via-systemd#ethtool|ethtool]] | + | |
- | * Type : DEVTYPE des [[configurer-un-reseau-filaire-via-systemd#proprietes-udev|proprietes UDEV]] FIXME //-> pas trouvé d'info sur DEVTYPE// | + | |
- | * Name : INTERFACE des [[configurer-un-reseau-filaire-via-systemd#proprietes-udev|proprietes UDEV]] ou NAME de [[configurer-un-reseau-filaire-via-systemd#persistent-netrule-du-repertoire-etc-udev-rulesd|70-persistent-net.rules]] | + | |
- | * Host : correspond à //hostname// ou à l'ID de la machine (voir [[configurer-un-reseau-filaire-via-systemd#ConditionHost|ConditionHost]]) | + | |
- | * Virtualization : teste si la session est exécute sur machine virtuelle ou non (Virtualization=no / Virtualization=yes) | + | |
- | * KernelCommandLine : teste si une commande spécifique est passée au noyau. | + | |
- | * Architecture : teste sous quelle architecture (x86, x86-64, ppc, ppc-le, ppc64, ppc64-le, ia64, parisc, parisc64, s390, s390x, sparc, sparc64, mips, mips-le, mips64, mips64-le, alpha, arm, arm-be, arm64, arm64-be, sh, sh64, m86k, tilegx, cris) se trouve le pc. | + | |
- | * | + | |
- | == Section [Network] == | + | |
- | + | ||
- | La section [Network] précise la configuration de l'interface. | + | |
- | * Description : Description de l'interface, utilisé uniquement à des fins de présentation. | + | |
- | * DHCP : DHCPv4 et / ou DHCPv6 support client. Accepte **yes** **no** **ipv4** ou **ipv6**. | + | |
- | * Address : une adresse fixe IPv4 or IPv6 et son préfixe séparé par "/". Spécifiez cette clé plus d'une fois pour configurer plusieurs adresses. | + | |
- | * Gateway : l'adresse de la passerelle, cette option peut être spécifiée plus d'une fois. | + | |
- | * DNS : l'adresse du serveur DNS, cette option peut être spécifiée plus d'une fois. | + | |
- | * Domains : Les domaines utilisés pour la résolution DNS. | + | |
- | * NTP : L'adresse du serveur NTP. Cette option peut être spécifiée plus d'une fois. | + | |
- | + | ||
- | <note> | + | |
- | Un certain nombre d'options de configuration dépassant mon niveau de connaissance, je préfère ne pas en parler.\\ | + | |
- | Vous pourrez trouver de plus amples informations sur : | + | |
- | * [[http://www.freedesktop.org/software/systemd/man/systemd.network.html|systemd.network — Network configuration]] | + | |
- | </note> | + | |
- | + | ||
- | == DNS via le client DHCP == | + | |
- | + | ||
- | Concernant le systemd-resolved il est utilisé uniquement dans le cas ou on spécifie des entrés DNS dans les fichiers de conf(.network). \\ | + | |
- | Or si l'on veut obtenir les DNS via le client DHCP de systemd-networkd on tape : | + | |
- | <code root>nano /etc/systemd/network/eth0.network</code> | + | |
- | Et on rédige par exemple : | + | |
- | <code>[Match] | + | |
- | Name=eth0 | + | |
- | [Network] | + | |
- | DNS=192.168.1.1 | + | |
- | Address=192.168.1.40/24 | + | |
- | Gateway=192.168.1.1 | + | |
- | </code> | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | === /etc/systemd/network/50-eth0.link === | + | |
- | + | ||
- | <code root>nano /etc/systemd/network/50-eth0.link</code> | + | |
- | <code batch 50-eth0.link>[Match] | + | |
- | MACAddress=xx:xx:xx:xx:xx:xx | + | |
- | Path=pci-xxxx:xx:xx.x | + | |
- | Virtualization=no | + | |
- | + | ||
- | [Link] | + | |
- | Name=eth0 | + | |
- | MTUBytes=1464 | + | |
- | MACAddressPolicy=persistent | + | |
- | WakeOnLan=off</code> | + | |
- | + | ||
- | == Section [Match] == | + | |
- | + | ||
- | La section [Match] détermine si un fichier de configuration donné peut être appliqué à une interface donnée. \\ | + | |
- | Le premier fichier (dans l'ordre lexical) qui correspond à une interface donnée est appliquée. Tous les fichiers suivants seront ignorés, même s'ils correspondent également à l'interface. | + | |
- | * MACAddress → adresse Mac de la carte (correspond à ATTR{address} dans [[configurer-un-reseau-filaire-via-systemd#persistent-netrule-du-repertoire-etc-udev-rulesd|70-persistent-net.rules]]) | + | |
- | * Path : correspond à ID_PATH des [[configurer-un-reseau-filaire-via-systemd#proprietes-udev|proprietes UDEV]] | + | |
- | * Driver : correspond à DRIVER des [[configurer-un-reseau-filaire-via-systemd#proprietes-udev|proprietes UDEV]], ou **driver** de la commande [[configurer-un-reseau-filaire-via-systemd#ethtool|ethtool]] | + | |
- | * Type : DEVTYPE des [[configurer-un-reseau-filaire-via-systemd#proprietes-udev|proprietes UDEV]] FIXME //-> pas trouvé d'info sur DEVTYPE// | + | |
- | * OriginalName : INTERFACE des [[configurer-un-reseau-filaire-via-systemd#proprietes-udev|proprietes UDEV]] ou NAME de [[configurer-un-reseau-filaire-via-systemd#persistent-netrule-du-repertoire-etc-udev-rulesd|70-persistent-net.rules]] | + | |
- | * Host : correspond à //hostname// ou à l'ID de la machine (voir [[configurer-un-reseau-filaire-via-systemd#ConditionHost|ConditionHost]]) | + | |
- | * Virtualization : teste si la session est exécutée sur machine virtuelle ou non (Virtualization=no / Virtualization=yes) | + | |
- | * KernelCommandLine : teste si une commande spécifique est passée au noyau. | + | |
- | * Architecture : teste sous quelle architecture (x86, x86-64, ppc, ppc-le, ppc64, ppc64-le, ia64, parisc, parisc64, s390, s390x, sparc, sparc64, mips, mips-le, mips64, mips64-le, alpha, arm, arm-be, arm64, arm64-be, sh, sh64, m86k, tilegx, cris) se trouve le pc. | + | |
- | * | + | |
- | == Section [Link] == | + | |
- | + | ||
- | La section [Link] précise la configuration de l'interface. | + | |
- | * Description : Description de l'interface, utilisée uniquement à des fins de présentation | + | |
- | * MACAddressPolicy : La politique de réglage de l'adresse MAC. Les politiques disponibles sont : | + | |
- | * "persistent" FIXME If the hardware has a persistent MAC address, as most hardware should, and if it is used by the kernel, nothing is done. Otherwise, a new MAC address is generated which is guaranteed to be the same on every boot for the given machine and the given device, but which is otherwise random. This feature depends on ID_NET_NAME_* properties existing for the link, on hardware where these properties are not set the generation of a persistent MAC address will fail. | + | |
- | * "random" FIXME If the kernel is using a random MAC address, nothing is done. Otherwise, a new address is randomly generated each time the device appears, typically at boot. Either way the random address will have the "unicast" and "locally administered" bits set. | + | |
- | * "none" FIXME Keeps the MAC address assigned by the kernel. | + | |
- | * MACAddress : L'adresse MAC à utiliser, si aucun **MACAddressPolicy** est spécifié. | + | |
- | * NamePolicy : FIXME An ordered, space-separated list of policies by which the interface name should be set. "NamePolicy" may be disabled by specifying "net.ifnames=0" on the kernel command line. Each of the policies may fail, and the first successful one is used. The name is not set directly, but is exported to udev as the property "ID_NET_NAME", which is, by default, used by a udev rule to set "NAME". If the name has already been set by userspace, no renaming is performed. The available policies are : | + | |
- | * "kernel" If the kernel claims that the name it has set for a device is predictable, then no renaming is performed. | + | |
- | * "database" The name is set based on entries in the udev's Hardware Database with the key "ID_NET_NAME_FROM_DATABASE". | + | |
- | * "onboard" The name is set based on information given by the firmware for on-board devices, as exported by the udev property "ID_NET_NAME_ONBOARD". | + | |
- | * "slot" The name is set based on information given by the firmware for hot-plug devices, as exported by the udev property "ID_NET_NAME_SLOT". | + | |
- | * "path" The name is set based on the device's physical location, as exported by the udev property "ID_NET_NAME_PATH". | + | |
- | * "mac" The name is set based on the device's persistent MAC address, as exported by the udev property "ID_NET_NAME_MAC". | + | |
- | * Name : Le nom à utiliser pour l'interface si toutes les politiques spécifiées dans **NamePolicy** échouent, ou si **NamePolicy** est manquant ou désactivé. | + | |
- | * MTUBytes : indication de la MTU (par défaut 1500). | + | |
- | * BitsPerSecond : le débit défini pour l'interface, la valeur est arrondie aux Mbps les plus proches vers le bas. Les suffixes habituels K, M, G, sont pris en charge et sont compris à la base 1000. | + | |
- | * Duplex : le mode duplex défini pour l'interface. Les valeurs acceptées sont half et full. | + | |
- | * WakeOnLan : politique du WOL [[https://fr.wikipedia.org/wiki/Wake-on-LAN|Wake-on-LAN (wikipedia)]] | + | |
- | * "phy" réveil sur une activité physique. | + | |
- | * "magic" réveil sur la réception d'un paquet magique. | + | |
- | * "off" pas de réveil. | + | |
- | + | ||
- | plus de détails -> [[http://www.freedesktop.org/software/systemd/man/systemd.link.html|systemd.link — Network device configuration]] | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ==== Résolution DNS - resolv.conf ==== | + | |
- | + | ||
- | Maintenant que la configuration du réseau est faite, il faut s'occuper de la résolution DNS.\\ | + | |
- | Rien de plus simple, il suffit d'activer le service : | + | |
- | <code root>systemctl enable systemd-resolved.service</code> | + | |
- | + | ||
- | effacer l'ancien fichier **resolv.conf** : | + | |
- | <code root>rm /etc/resolv.conf</code> | + | |
- | + | ||
- | le remplacer par un lien symbolique : | + | |
- | <code root>ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf</code> | + | |
- | + | ||
- | et lancer le service : | + | |
- | <code root>systemctl start systemd-resolved.service</code> | + | |
- | + | ||
- | Si vous désirez configurer ''resolv.conf'', il suffit d'éditer le fichier **/etc/systemd/resolved.conf** : | + | |
- | <code root>nano /etc/systemd/resolved.conf</code> | + | |
- | <code> | + | |
- | # This file is part of systemd. | + | |
- | # | + | |
- | # systemd is free software; you can redistribute it and/or modify it | + | |
- | # under the terms of the GNU Lesser General Public License as published by | + | |
- | # the Free Software Foundation; either version 2.1 of the License, or | + | |
- | # (at your option) any later version. | + | |
- | # | + | |
- | # See resolved.conf(5) for details | + | |
- | + | ||
- | [Resolve] | + | |
- | DNS=4.2.2.4 4.2.2.2 209.244.0.4 209.244.0.3 | + | |
- | </code> | + | |
- | + | ||
- | et de redémarrer le service : | + | |
- | <code root>systemctl restart systemd-resolved.service</code> | + | |
- | + | ||
- | <note tip> | + | |
- | Différentes possibilités de DNS\\ | + | |
- | * 4.2.2.4 | vnsc-pri-dsl.genuity.net | Level 3 Communications | + | |
- | * 4.2.2.2 | vnsc-bak.sys.gtei.net | Level 3 Communications | + | |
- | * 209.244.0.4 Verizon Level 3 | + | |
- | * 209.244.0.3 Verizon Level 3 | + | |
- | * 208.67.220.220 | resolver2.opendns.com | OpenDNS, LLC | + | |
- | * 208.67.222.222 | resolver1.opendns.com | OpenDNS, LLC | + | |
- | * 8.8.8.8 google IPv4 | + | |
- | * 8.8.4.4 google IPv4 | + | |
- | * 2001:4860:4860::8888 google IPv6 | + | |
- | * 2001:4860:4860::8844 google IPv6 | + | |
- | * ... | + | |
- | </note> | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ==== Activation du service systemd-networkd ==== | + | |
- | + | ||
- | Il ne reste plus qu'à activer le service : | + | |
- | <code root>systemctl enable systemd-networkd</code> | + | |
- | + | ||
- | et le démarrer : | + | |
- | <code root>systemctl start systemd-networkd</code> | + | |
- | + | ||
- | Pour vérifier son status (ça permet aussi de vérifier si les fichiers de configuration n'ont pas d'erreurs) | + | |
- | <code root>systemctl status systemd-networkd</code> | + | |
- | + | ||
- | En cas de modification des fichiers de configuration : | + | |
- | <code root>systemctl restart systemd-networkd</code> | + | |
- | + | ||
- | Pour arrêter le service : | + | |
- | <code root>systemctl stop systemd-networkd</code> | + | |
- | + | ||
- | Pour désactiver le service : | + | |
- | <code root>systemctl disable systemd-networkd</code> | + | |
===== Commandes terminal utilisées ===== | ===== Commandes terminal utilisées ===== | ||
- | |||
- | === systemctl === | ||
- | |||
- | <code root>systemctl enable systemd-networkd | ||
- | systemctl restart systemd-networkd | ||
- | systemctl status systemd-networkd | ||
- | systemctl stop systemd-networkd | ||
- | systemctl disable systemd-networkd | ||
- | |||
- | systemctl enable systemd-resolved.service | ||
- | systemctl start systemd-resolved.service | ||
- | systemctl status systemd-resolved.service | ||
- | systemctl stop systemd-resolved.service</code> | ||
=== ethtool === | === ethtool === | ||
Ligne 288: | Ligne 84: | ||
===== Liens utiles ===== | ===== Liens utiles ===== | ||
+ | ===Internes=== | ||
+ | * [[doc:reseau:systemd:network|Accueil :Configurer un réseau filaire via systemd-networkd]] | ||
+ | * [[doc:reseau:systemd:network:fichier-.network|systemd-networkd : Le fichier .network]] | ||
+ | * [[doc:reseau:systemd:network:fichier-.link|systemd-networkd : Le fichier .link]] | ||
+ | * [[doc:reseau:systemd:network:fichier-.netdev|systemd-networkd : Le fichier .netdev]] | ||
+ | * [[doc:reseau:systemd:network:networkd-dns|systemd-networkd : DNS]] | ||
+ | * [[doc:reseau:systemd:network:networkd-iptable|systemd-networkd : iptable]] | ||
+ | ===Externes=== | ||
* http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html | * http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html | ||
- | * https://debian-facile.org/viewtopic.php?pid=143591#p143591 | ||
* https://wiki.archlinux.fr/Systemd-networkd | * https://wiki.archlinux.fr/Systemd-networkd | ||
* https://wiki.archlinux.org/index.php/systemd-networkd | * https://wiki.archlinux.org/index.php/systemd-networkd | ||
* https://www.debinux.de/2014/12/debian-basics-mit-systemd/ | * https://www.debinux.de/2014/12/debian-basics-mit-systemd/ | ||
* https://debian-facile.org/doc:reseau:interfaces | * https://debian-facile.org/doc:reseau:interfaces | ||
+ | =====Discussions au forum relatives à ce tuto ===== | ||
+ | |||
+ | * https://debian-facile.org/viewtopic.php?pid=143591#p143591 |