NetworkManager-1.48.8
Introduction à NetworkManager
NetworkManager est un ensemble
d'outils associés qui simplifient et rendent le réseau plus
directement gérable. Que ce soit en Wifi, filaire, 3G ou Bluetooth,
NetworkManager vous permet de passer rapidement d'un réseau à
l'autre : une fois qu'un réseau a été configuré et qu'on s'y
est relié une fois, on peut le détecter et s'y reconnecter
automatiquement la prochaine fois qu'il sera disponible.
Ce paquet est connu pour pouvoir être construit et fonctionner
correctement avec une plateform 12.2.
Informations sur le paquet
Dépendances de NetworkManager
Requises
libndp-1.9
Recommandées
cURL-8.9.1,
dhcpcd-10.0.8, GLib-2.80.4 (avec
GObject Introspection), iptables-1.8.10, libpsl-0.21.5, newt-0.52.24 (for nmtui), nss-3.103, Polkit-125 (à l'exécution), PyGObject-3.48.2, elogind-255.5, Vala-0.56.17 et
wpa_supplicant-2.11 (à l'exécution,
construit avec la prise en charge de D-Bus)
Facultatives
BlueZ-5.77, D-Bus Python-1.3.2 (pour la suite de
tests), GnuTLS-3.8.7.1 (peut être utilisé à la place
de nss-3.103), GTK-Doc-1.34.0, jansson-2.14,
ModemManager-1.18.12, qt5-components-5.15.14 avec qtdoc
(pour les exemples), ModemManager-1.18.12, UPower-1.90.4, Valgrind-3.23.0, dnsmasq, firewalld, libaudit,
libteam,
mobile-broadband-provider-info, PPP et RP-PPPoE
Configuration du noyau
Si vous voulez lancer les tests, vérifiez qu'au moins les options
suivantes sont activées dans la configuration du noyau. Ces options
sont nécessaires, mais peuvent ne pas être suffisantes. Recompilez
le noyau si nécessaire :
[*] Networking support ---> [NET]
Networking options --->
[*] TCP/IP networking [INET]
<*/M> IP: tunneling [NET_IPIP]
<*/M> IP: GRE demultiplexer [NET_IPGRE_DEMUX]
<*/M> IP: GRE tunnels over IP [NET_IPGRE]
<*> The IPv6 protocol ---> [IPV6]
<*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver) [IPV6_SIT]
<*/M> IPv6: GRE tunnel [IPV6_GRE]
[*] IPv6: Multiple Routing Tables [IPV6_MULTIPLE_TABLES]
[*] MPTCP: Multipath TCP [MPTCP]
[*] MPTCP: IPv6 support for Multipath TCP [MPTCP_IPV6]
<*/M> 802.1Q/802.1ad VLAN Support [VLAN_8021Q]
[*] QoS and/or fair queueing ---> [NET_SCHED]
<*> Stochastic Fairness Queueing (SFQ) [NET_SCH_SFQ]
<*> Token Bucket Filter (TBF) [NET_SCH_TBF]
<*> Fair Queue Controlled Delay AQM (FQ_CODEL) [NET_SCH_FQ_CODEL]
<*> Ingress/classifier-action Qdisc [NET_SCH_INGRESS]
Device Drivers --->
[*] Network device support ---> [NETDEVICES]
[*] Network core driver support [NET_CORE]
<*/M> Bonding driver support [BONDING]
<*/M> Dummy net driver support [DUMMY]
<*/M> Ethernet team driver support ---> [NET_TEAM]
<*/M> MAC-VLAN support [MACVLAN]
<*/M> MAC-VLAN based tap driver [MACVTAP]
<*/M> IP-VLAN support [IPVLAN]
<*/M> Virtual eXtensible Local Area Network (VXLAN) [VXLAN]
<*/M> Virtual ethernet pair device [VETH]
<*/M> Virtual Routing and Forwarding (Lite) [NET_VRF]
Installation de NetworkManager
Si qt5-components-5.15.14 est installé et
que vous voulez les exemples basés sur Qt, corrigez deux fichiers
meson.build :
sed -e 's/-qt4/-qt5/' \
-e 's/moc_location/host_bins/' \
-i examples/C/qt/meson.build &&
sed -e 's/Qt/&5/' \
-i meson.build
Corrigez les scripts python pour qu'ils utilisent Python 3 :
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Installez NetworkManager en
exécutant les commandes suivantes :
mkdir build &&
cd build &&
CXXFLAGS+="-O2 -fPIC" \
meson setup .. \
--prefix=/usr \
--buildtype=release \
-D libaudit=no \
-D nmtui=true \
-D ovs=false \
-D ppp=false \
-D selinux=false \
-D session_tracking=elogind \
-D modem_manager=false \
-D systemdsystemunitdir=no \
-D systemd_journal=false \
-D qt=false &&
ninja
Une session graphique déjà active avec une adresse de bus est
nécessaire pour lancer les tests. Pour tester les résultats, en
tant qu'utilisateur root, tapez : ninja test.
Quelques tests peuvent échouer en fonction des options du noyau
activées.
Maintenant, en tant qu'utilisateur root
:
ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.48.8}
Si vous n'avez pas passé l'option -D
docs=true
à meson, vous pouvez installer les
pages de manuel prégénérées avec (en tant qu'utilisateur
root
) :
for file in $(echo ../man/*.[1578]); do
section=${file##*.} &&
install -vdm 755 /usr/share/man/man$section
install -vm 644 $file /usr/share/man/man$section/
done
Si vous n'avez pas utilisé -D
docs=true
, vous pouvez aussi installer la documentation HTML
prégénérée avec (en tant qu'utilisateur root
) :
cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.48.8
Explication des commandes
CXXFLAGS="-O2 -fPIC"
: Ces option
du compilateur sont nécessaires pour construire les exemples basés
sur Qt5.
--buildtype=release
:
spécifie le type de construction convenant aux versions stables de
ce paquet, comme la valeur par défaut produit des binaires non
optimisés.
-D docs=true
: Utilisez ce
paramètre pour activer la construction des pages de manuels et de
la documentation si GTK-Doc-1.34.0 est installé.
-D nmtui=true
: Ce
paramètre active la construction de nmtui.
-D systemdsystemunitdir=no
et -D
systemd_journal=false
: systemd n'est pas utilisé
par les systèmes sysv init, pour éviter d'installer des unités et
d'utiliser le jounal systemd.
-D ovs=false
: ce
paramètre désactive l'intégration Open vSwitch car elle nécessite
jansson-2.14. Supprimez-le si vous avez installé
jansson-2.14 sur votre système.
-D
modem_manager=false
: ce paramètre est requis si
ModemManager n'est pas installé.
Supprimez-le si vous avez construit ModemManager et mobile-broadband-provider-info.
-D
session-tracking=elogind
: Ce paramètre est
utilisé pour configurer elogind comme programme de suivi
de session par défaut.
-D ppp=false
: ce
paramètre désactive la prise en charge de PPP dans NetworkManager car les programmes nécessaires
ne sont pas installés. Supprimez ce paramètre si vous avez besoin
de la prise en charge de PPP et avez installé PPP.
-D libaudit=no
et
-D selinuk=false
:ce
paramètre désactive la prise en charge de libaudit et SELinux car
ils ne sont pas utilisés dans BLFS.
-D qt=false
: ce
paramètre désactive les exemples de Qt. Supprimez-le si Qt est disponible et que vous voulez installer
les exemples.
-D crypto=gnutls
: utilisez ce
paramètre si vous avez installé GnuTLS et voulez l'utiliser pour
les opérations de certificats et de clés dans NetworkManager, au
lieu de NSS (la bibliothèque par défaut).
-D crypto=null
: utilisez ce
paramètre si ni NSS ni GnuTLS ne sont insatllés mais que vous
voulez tout de même construire NetworkManager. Ce paramètre fera
que NetworkManager n'aura pas certaines fonctionnalités (par
exemple 802.1X).
-D suspend_resume=upower
:
utilisez ce paramètre si vous avez installé UPower-1.90.4 et
voulez l'utiliser (à la place de elogind-255.5 ) pour la prise en charge
de la veille et du réveil.
Configuration de NetworkManager
Fichiers de config
/etc/NetworkManager/NetworkManager.conf
Informations de configuration
Pour que NetworkManager
fonctionne, il faut qu'il y ait au moins un fichier de
configuration minimal. Ce fichier n'est pas installé par
make install.
Lancez la commande suivante en tant qu'utilisateur root
pour créer un fichier NetworkManager.conf
minimal :
cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF
Ce fichier ne devrait pas être modifié directement par les
utilisateurs du système. À la place, les changements spécifiques
au système devraient être effectués dans le répertoire
/etc/NetworkManager/conf.d
.
Pour permettre à polkit de gérer les autorisations, ajoutez le
fichier de configuration suivant :
cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF
Pour utiliser un autre client dhcp que celui inclus (recommandé
si vous n'utilisez que nmcli), utilisez la
configuration suivante (les valeurs valides sont soit dhcpcd ou
internal) :
cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=
dhcpcd
EOF
Pour éviter que NetworkManager
ne mette à jour le fichier /etc/resolv.conf
, ajoutez le fichier de
configuration suivant :
cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF
Pour trouver des options de configuration supplémentaires, voir
man 5
NetworkManager.conf.
Pour permettre aux utilisateurs normaux de configurer les
connections réseau, vous devriez les ajouter au groupe
netdev
et créer une règle
polkit qui accorde l'accès.
Lancez les commandes suivantes en tant qu'utilisateur
root
:
groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <username>
cat > /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
return polkit.Result.YES;
}
});
EOF
Script
de démarrage
Pour démarrer automatiquement le démon NetworkManager au redémarrage
du système, installez le script de démarrage /etc/rc.d/init.d/networkmanager
du paquet
blfs-bootscripts-20240416.
Note
Si vous utilisez Network
Manager pour gérer une interface, toute configuration
précédente pour cette interface devrait être supprimée et
l'interface être éteinte avant de démarrer Network Manager.
make install-networkmanager
Contenu
Programmes installés:
NetworkManager, nmcli, nm-online, nmtui
et, liés en dur à nmtui : nmtui-connect, nmtui-edit et
nmtui-hostname
Bibliothèques installées:
libnm.so et divers modules dans
/usr/lib/NetworkManager
Répertoires installés:
/etc/NetworkManager, /usr/include/libnm,
/usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.48.8,
/usr/share/gtk-doc/html/{libnm,NetworkManager} (si la
documentation est construite) et /var/lib/NetworkManager
Descriptions courtes
nmcli
|
est un outil en ligne de commande pour contrôler
NetworkManager et
obtenir son état
|
nm-online
|
est un outil pour savoir si on est connecté
|
nmtui
|
est une interface interactive basée sur ncurses pour
nmcli
|
nmtui-connect
|
est une interface interactive basée sur ncurses pour
activer/désactiver les connexions
|
nmtui-edit
|
est une interface interactive basée sur ncurses pour
éditer les connexions
|
nmtui-hostname
|
est une interface interactive basée sur ncurses pour
éditer le nom d'hôte
|
NetworkManager
|
est le démon de gestion réseau
|
libnm.so
|
contient des fonctions utilisées par NetworkManager
|