Outils pour utilisateurs

Outils du site


linux_network

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux_network [2025/09/15 06:14] luclinux_network [2025/09/20 18:05] (Version actuelle) luc
Ligne 2: Ligne 2:
  
 C'est à la fois simple et également compliqué, notamment car il existe une myriade d'outils qui font plus ou moins la même chose mais différemment, et que certains sont (partiellement) à la retraite pendant que d'autres les remplacent (partiellement). L'objectif de cet article est d'essayer d'y voir plus clair. C'est à la fois simple et également compliqué, notamment car il existe une myriade d'outils qui font plus ou moins la même chose mais différemment, et que certains sont (partiellement) à la retraite pendant que d'autres les remplacent (partiellement). L'objectif de cet article est d'essayer d'y voir plus clair.
 +
 +On va découvrir les choses dans l'ordre, du bas niveau (presque des électrons) jusqu'au haut niveau.
  
 ===== RJ45, Hardware ===== ===== RJ45, Hardware =====
  
-En informatique, le hardware est géré par le noyau (kernel) qui joingle avec les drivers. Sous Linux, on peut noter la présence d'un device manager (=gestionnaire de périphériques) ''udev'' qui se charge des périphériques dans ''/dev'', notamment envoyer des notifications aux couches supérieures (comme ''NetworkManager'' et ses copains) en cas de branchement/débranchement, pour permettre au gestionnaire de connexion de la configurer, puis de la mettre à dispo des autres applications (navigateur web, etc.).+En informatique, le hardware est géré par le noyau (kernel) qui jongle avec les drivers. Sous Linux, on peut noter la présence d'un device manager (=gestionnaire de périphériques) ''udev'' qui se charge des périphériques dans ''/dev''
 + 
 +Lorsqu'on branche son câble RJ45''udev'' envoie des notifications aux couches supérieures (comme ''NetworkManager'' et ses copains) pour permettre de configurer la connexion.
  
 > ''udev'' a remplacé ''devfs'' à la gestion des périphériques ''/dev'' depuis le noayu 2.6 > ''udev'' a remplacé ''devfs'' à la gestion des périphériques ''/dev'' depuis le noayu 2.6
  
-===== Linkographie =====+===== Gestionnaires de connexion =====
  
-Quelques liens en vrac où je suis allé chercher ces infos : +Cette couche sert à configurer la connexion (une fois détectée par le kernel), et la mettre à disposition des autres applications (navigateur web, client IRC...).
-  * https://en.wikipedia.org/wiki/Udev +
-  * https://unix.stackexchange.com/questions/475146/how-exactly-are-networkmanager-networkd-netplan-ifupdown2-and-iproute2-inter +
-  * https://unix.stackexchange.com/a/208352 +
-  * https://networkmanager.dev/docs/api/latest/nm-settings-nmcli.html et https://serverfault.com/questions/1171391/networkmanager-when-dhcp-fails-how-to-either-ignore-lease-expiry-or-use-a-sta +
-  * https://wiki.archlinux.org/title/Network_configuration +
-  * https://debian-facile.org/doc:reseau:network-manager +
-  * https://askubuntu.com/questions/1186636/how-to-configure-a-fallback-static-ip-address-when-there-is-no-dhcp-server-prese +
-  * https://blog.stephane-robert.info/docs/admin-serveurs/linux/networkmanager/#contr%C3%B4le-de-connaissances +
-  * https://www.junosnotes.com/linux/network-manager-on-linux-with-examples/+
  
 +Par configurer, on entend attribuer une adresse IP, définir une passerelle, éventuellement des ponts ou des routes, etc.
  
-Gestionnaires de réseaux = NetworkManager (peut se combiner avec ifup si pas de recouvrement -réglable dans le fichier de conf), systemd-networkd, dhcpcdifupdown... +C'est un peu la foire, car il existe plusieurs outils, de plus ou moins haut-niveau, qui s'utilisent les uns les autres, et qui se remplacent (l'informatique est un grand fleuve, tout avance). Généralementc'est l'un ou l'autre.\\ 
-NetworkManager et networkd sont des services systemd utilisant udev.+Parmi ces outils, on notera : 
 +  * [[networkmanager|NetworkManager]], l'option privilégiée sur les laptop et ordis avec interface graphique 
 +  * [[systemd_networkd|systemd-networkd]] (aka networkd)pas de GUI 
 +  * [[interfaces|/etc/network/interfaces]]en combinaison avec les outils ''ifup'' et ''ifdown''fourni par ''uifupdown'' (sur des systèmes Debian, pas sur Arch) 
 +  * [[dhcpcd]] (permet un fallback vers une IP definie, pas de GUI) 
 +  * Netplan, une couche d'abstraction de configuration de NetworkManager ou networkd. Outil utilisé par Ubuntu
  
-networkd a ses fichiers de conf dans /etc/systemd/network. c'est un dossier qui override la config par défaut/générique, que l'on trouve dans /usr/lib/systemd, pour les besoins particuliers de l'admin pour cette machine.+=== Netplan ===
  
-ipupdown (ou ifupdown ?) net-tools et ifupdown2 s'appuient sur la config définie dans /etc/network/interfaces+Netplan est une couche d'abstraction de configuration, pour NetworkManager et systemd-networkd.\\ 
 +Les fichiers de config de netplan se trouvent dans ''/etc/netplan''.
  
-net-tools = "legacy networking package"préférez iproute2 +Une fois la config netplan écriteon peut générer les fichiers de config pour NetworkManager ou networkd (''netplan generate'')tester une configuration qui retourne à la config précédente si on ne valide pas dans les 120 sec (''netplan try'')et appliquer la config lorsqu'elle fonctionne (''netplan apply'').
-net-tools contient ifconfignetstatroute+
  
-ifupdown pour gérer les réseaux, mais n'est pas automatique (nécessite intervention manuelle pour une nouvelle connexion)+Le service ''networkd-dispatcher'' peut agir comme relais pour déclencher des actions (pre-up pre-down...)
  
-ifupdown2 = plus récent, structure intenr en graph de dépendance similaire à systemd mais pour les interfaces réseayux. Agit comme une couche d'abstraction pour d'autres outils (exiproute2) +Netplan ne permet pas de fallback de la façon dont j'ai besoin (bascule sur une config avec IP fixe choisie si pas de DHCP disponible), au lieu de ça, y'a possibilité d'avoir une [[https://en.wikipedia.org/wiki/Link-local_address|ip link-local]] (ip choisie au hasard dans 224.0.0.0/24 ou 169.254.0.0/16).
-ifup/ifdown interagit avec ip comme outil de low-level pour configurer les interfaces (cf man)+
  
-iproute2 contien des outils pourconfigurer les interfaces réseaux (dont le old ifconfig ?, ipiwssifrename...)+Si on veut se passer de netplan, il suffit (?) d'installer ''ifupdown'' (et du supprimer netplan ? ''apt purge netplan.io'' ?)\\ 
 +Il semblerait que sur Ubuntucertaines lib de netplan soient des dépendances de NetworkManageril n'est ainsi pas possible de supprimer brutalement netplan et de conserver l'usage de NetworkManager. Toutefoisil semblerait que NetworkManager garde le leadnotamment quand la connexion est gérée par la GUI: NetworkManager crée un fichier de config dans ''/etc/netplan'' pour coller à la config définie dans la GUI[[https://askubuntu.com/questions/1553733/how-to-disable-netplan-io-and-use-networkmanager-alone|source]].
  
-====== WIP ======+=== iproute2 ===
  
-systemd-networkd n'a pas d'interface graphiqueil est préféré sur des machines type serveur.+C'est une collection d'outils pour controler et monitorer le réseau. On note les commandes ''ip''''ss'' (afficher des statistiques).
  
 +=== dhcpcd ===
 +C'est un client DHCP, le fichier de conf est dans ''/etc/dhcpcd.conf''
  
-===== NetworkManager fallback property ======+=== dhclient === 
 +Un client DHCP
  
-NetworkManager a une fonction ipv4.link-local=fallback pour avoir une ip fixe de type 169.254.xxx.yyy/16 si y'a pas de DHCP: +===== DNS =====
-''nmcli con modify ethX ipv4.link-local fallback'' +
-<code> +
-[ipv4] +
-method=auto +
-link-local=fallback +
-</code> +
-=> link-local donne une IP 169.254, on n'a pas l'air de pouvoir choisir+
  
 +Souvent, on (article indéfini) souhaite accéder à une ressource sur le réseau (locale ou le grand internet) sans connaître son adresse. C'est d'autant plus vrai depuis l'avènement de l'IPv6 dont les adresses sont impossibles à mémoriser. Pour se faciliter la tâche, on a inventé dans les années 80 le Domain Name System (aka DNS) qui permet de relier un nom (de domaine) à une adresse. C'est un système plutôt décentralisé, mais il y a des ressources mieux informées qui vous expliqueront en détail l'historique et les principes.
  
-Est-ce que NetworkManager est installé ? +Ce système est constitué de serveurs, qui peuvent être sur son routeur, son fournisseur internet, ou [[powerdns|hébergé soi-même]].
-''systemctl is-active NetworkManager'' +
-ou alors regarder ''systemctl status NetworkManager''+
  
 +Il est nécessaire d'avoir un [[dnsclient|client dns]] bien configuré sur son PC sans quoi on ne peut pas résoudre les noms et obtenir les adresses.
  
-https://askubuntu.com/questions/1786/what-is-the-difference-between-network-manager-and-ifconfig-ifup-etc : +Enfin, il existe des systèmes qui permettent la découverte d'un réseau local et d'accéder aux différentes ressources par leur nom/hostname sans avoir de serveur DNSJ'ai lu ici ou la ''mdns'', ''avahi'', j'en parle [[hostname|ici]] et [[avahi|là]]. Aujourd'hui, je n'utilise plus ces solutions, je suis parti sur un serveur DNS comme [[powerdns]]notamment car la configuration est centraliséeça évite de devoir déployer une configuration spécifique sur chaque machine -merci la containerisation-.
-NetworkManager n'utilise pas /etc/network/interfaces.  +
-NetworkManager est un frontend à iproutedhclientwpa_supplicant et ppp (?) +
-NetworkManager a une interface GUI (Gnome, KDE...) +
-NetworkManager est "utile" dans les cas où les environnements réseaux changent et sont multiples (ex: laptop)+
  
-NetworkManager peut entrer en conflit avec d'autres gestionnaires de connexions réseaux, tels que ifupdown, dhcpcd 
  
 +===== Linkographie =====
  
- +Quelques liens en vrac où je suis allé chercher des infos (notamment sur les gestionnaires de connexions: 
-NetworkManager peut coexister avec ifupdown s'ils ne se recouvrent pas: +  * https://en.wikipedia.org/wiki/Udev 
-<code> +  * https://wiki.debian.org/NetworkConfiguration 
-/etc/NetworkManager/NetworkManager.conf +  * https://unix.stackexchange.com/questions/475146/how-exactly-are-networkmanager-networkd-netplan-ifupdown2-and-iproute2-inter 
-[ifupdown] +  * https://unix.stackexchange.com/a/208352 
-managed=false +  * https://networkmanager.dev/docs/api/latest/nm-settings-nmcli.html et https://serverfault.com/questions/1171391/networkmanager-when-dhcp-fails-how-to-either-ignore-lease-expiry-or-use-a-sta 
-# false = prend le contrôle des interfaces définies dans /etc/network/interfaces +  * https://wiki.archlinux.org/title/Network_configuration 
-# true = laisse la main à ifupdown sur les interfaces définies dans /etc/network/interfaces +  * https://debian-facile.org/doc:reseau:network-manager 
-</code> +  * https://askubuntu.com/questions/1186636/how-to-configure-a-fallback-static-ip-address-when-there-is-no-dhcp-server-prese 
- +  * https://blog.stephane-robert.info/docs/admin-serveurs/linux/networkmanager/#contr%C3%B4le-de-connaissances 
-NetworkManager permet à des utilisateurs (non administrateur/root) de configurer les connexions réseau, via une interface graphique (Gnome, KDE..), mais aussi des utilitaires en ligne de commande : nmcli (commande permettant de créer, modifier, supprimer, activer ou désactiver les interfaces réseaux), nmtui (pareil en interface semi-graphique -ncurse ?-) +  * https://www.junosnotes.com/linux/network-manager-on-linux-with-examples/
- +
-Config files : /etc/NetworkManager/NetworkManager.conf +
- +
-Pour gérer le fallback (ip fixe choisie si DHCP n'est pas possible), on peut créer 2 profils de connexion, avec des priorités différentes : +
-In config files (e.g. /etc/NetworkManager/system-connections/*.nmconnection) : +
-<code> +
-The DHCP profile +
- +
-[connection] +
-id=dhcp +
-uuid=<an UUID> +
-type=ethernet +
-interface-name=eth0 +
-autoconnect-priority=1 +
-autoconnect-retries=2 +
- +
-[ipv4] +
-dns-search= +
-method=auto +
-dhcp-timeout=10 +
-may-fail=false +
- +
-</code> +
- +
-<code> +
-The static profile +
- +
-[connection] +
-id=static +
-uuid=<an UUID> +
-type=ethernet +
-interface-name=eth0 +
-autoconnect-priority=0 +
-autoconnect-retries=-+
- +
-[ipv4] +
-address1=192.168.1.10/24,192.168.1.1 +
-dns=192.168.1.1 +
-dns-search= +
-method=manual +
-</code> +
-Note by default, autoconnect=true when not specified, otherwise it wouldn't work. +
-<uuid> est visible avec ''nmcli connection'' +
- +
- +
-ifup et ifdown sont des helpers programs qui utilise ifconfig, selon la config définie dans /etc/network/interfaces +
- +
-Netplan est une couche d'abstraction de configuration, pour NetworkManager et systemd-networkd. +
-Les fichiers de config de netplan se trouvent dans /etc/netplan. +
-Une fois la config netplan écrite, on peut générer les fichiers de config pour NetworkManager ou networkd (''netplan generate''), tester une configuration qui retourne à la config précédente si on ne valide pas dans les 120 sec (''netplan try''), et appliquer la config lorsqu'elle fonctionne (''netplan apply''+
-Netplan ne permet pas de fallback de la façon dont j'ai besoin (bascule sur une config avec IP fixe choisie si pas de DHCP disponible), au lieu de ça, y'a possibilité d'avoir une ip link-local+
linux_network.1757916872.txt.gz · Dernière modification : de luc