-
LINUX > gérer le réseau ethernet avec NetworkManager (nmcli)
Installation
apt install network-manager
Pour éviter les conflits éventuels :
apt remove connman dhcpcd5 wicd resolvconf
Loopback est gérée par ifupdown, il faut donc écrire dans /etc/NetworkManager/NetworkManager.conf :
sudo vi /etc/NetworkManager/NetworkManager.conf [ifupdown] managed=false
De même, le fichier /etc/network/interfaces ne doit contenir que les lignes suivantes :
sudo vi /etc/network/interfaces auto lo iface lo inet loopback
Enfin, pour que l’interface soit prise en compte par NM ;
systemctl disable --now systemd-networkd systemctl start systemd-networkd
Afficher les connexions et les interfaces
Liste des connexions
nmcli eth_1: connecté to enp3s0 "Realtek RTL8111 PCI Express Gigabit Ethernet Controller (Onboard Ethernet)" ethernet (r8169), xx:xx:xx:xx:xx:xx, hw, mtu 1500 ip4 default inet4 192.168.1.10/24 DNS configuration: servers: 1.1.1.1 1.0.0.1 interface: enp3s0
nmcli c ---> c = connection NAME UUID TYPE DEVICE eth_1 2864a7ef-2c77-42ba-8875-6effe1b58a4a ethernet enp3s0
Propriétés détaillées d’un profil
nmcli c show eth_1 connection.id: eth_1 connection.uuid: 2245a7ef-2ce7-43ba-8875 connection.interface-name: enp3s0 ... IP4.ADRESSE[1]: 192.168.1.10/24 IP4.DNS[1]: 1.1.1.1 IP4.DNS[2]: 1.0.0.1
Liste des interfaces
nmcli d PÉRIPHÉRIQUE TYPE ÉTAT CONNEXION enp3s0 ethernet connecté eth_1 lo loopback non-géré --
d= deviceAide
nmcli help
Aide sur une sous-commande, Ici
generalnmcli general help Utilisation : nmcli general { COMMAND | help } COMMAND := { status | hostname | permissions | logging } status hostname [<hostname>] permissions logging [level <log level>] [domains <log domains>]
Arrêter / démarrer une interface / connexion
Interface
nmcli d connect enp3s0 nmcli d disconnect enp3s0
Connexion
nmcli c up eth_1 nmcli c down eth_1
Gérer une connexion (profil)
Ajouter un connexion (profil)
Pour créer un profil nommé ma_connexion associé à l’interface interface_1 :
nmcli c add type bridge con-name ma_connexion ifname interface_1
Avant d’ajouter une interface à un bridge, il faut arrêter cette interface de peur qu’elle se retrouve associée à plusieurs profils. Puis, on ajoute l’interface enp3s0 à ce bridge :
nmcli c add type bridge-slave con-name enp3s0 ifname enp3s0 master virbr1
modifier une connexion (profil)
nmcli c modify eth_1 ipv4.addresses 192.168.1.10/24
Accès au LAN / internet à des machines virtuelles
Créer un bridge partagé, nommé
lxcbr0, sur l’hôte, qui aura comme adresse ip : 192.168.2.1, sur le réseau 192.168.2.0/24 :nmcli c add type bridge con-name lxcbr0 ifname virbr0 ipv4.method shared ipv4.addresses 192.168.2.1/24
Crée un nouveau profil de type
bridgenommélxcbr0associé à l’interfacevirbr0.
L’interface virbr0 n’existe pas physiquement, elle n’est créée que pour l’occasion et est donc une interface virtuelle.En pratique, on essayera de donner le même nom au profil et à son interface réseau.
ipv4.methodetipv4.addressessont optionnelles.ipv4.method sharedsignifie que le NAT va être activé pour les invités connectés au bridge.On peut le vérifier en interrogeant le pare-feu.
sudo iptables -t nat -L Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 192.168.2.0/24 !192.168.2.0/24
De plus, la directive
ipv4.method sharedactive aussi le routage ipv4 :cat /proc/sys/net/ipv4/ip_forward 1
Elle lance également dnsmasq pour fournir du service dhcp et dns aux invités.
Enfin, si on n’utilise pas la directive
ipv4.addresses, NM va utiliser le réseau 10.42.x.0/24 par défaut.Assigner une interface à un vlan
Pour ajouter l’interface ens3 au vlan 1 :
nmcli c add type vlan con-name vlan1 id 1 dev ens3
La commande précédente a créé un nouveau profil de type vlan, nommé vlan1 (con-name) et utilisant le vlan id 1 :
nmcli c NOM UUID TYPE PÉRIPHÉRIQUE ens3 ceaf1df2-113c-46d2-b8b4-e7aa0a2d6b5f 802-3-ethernet ens3 vlan1 6c2063ea-d3e6-442b-a7c6-5e515c000fd7 vlan ens3.1
De plus, une interface virtuelle nommée ens3.1 a été créée pour l’occasion :
nmcli d PÉRIPHÉRIQUE TYPE ÉTAT CONNEXION ens3 ethernet connecté ens3 ens3.1 vlan connecté vlan1
Lien externe : Réseau local virtuel
Obtenir un IP fixe et garder l’itinérance
NM définit une IP fixe avec /etc/NetworkManager/system-connections sous le nom donné à cette connexion :
[802-3-ethernet] duplex=full mac-address=B4:99:BA:58:A4:76 cloned-mac-address=00:17:3F:DD:5D:50 [connection] id=Bind9 DNS residence Igloolik uuid=e9e3650d-37d4-4cf6-ade4-438e248446dd type=802-3-ethernet [ipv4] method=manual dns=1.1.1.1;1.0.0.1; addresses1=192.168.1.10;24;192.168.1.254;
sudo nmcli d set enp8s0 managed yes
sudo systemctl restart NetworkManager
Erreurs
D’abord, être sûr que l’adaptateur de connexions est activé dans virtual box, puis vérifier si l’interface est activée dans le système :
sudo nmcli d
> Si déconnecté, alors
sudo nmtui> Éditer une connexion, sélectionner une interface, puis choisir l’option "Automatically connect", puis OK.
> Peut-être faire
sudo reboot now, puis, une fois redémarré,ping www.google.comVoili, voilou !
Problèmes fréquents
Si le réseau dit Network Unmanaged :
sudo vi /etc/NetworkManager/nm-system-settings.conf remplacer "managed=false" par "managed=true"
sudo killall nm-system-settings
NM notifie que le réseau a été détecté et tente de se connecter.
Wifi Désactivé après passage à linux mint 20
Désactivez la gestion de l’alimentation:
sudo sed -i 's/3/2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
Reboot
NOTE = Voir à désactiver le secure-boot.
renommer une connexion
renommer "Connexion filaire 1" en "eth1"
nmcli c modify "Connexion filaire 1" connection.id eth1 con-name eth1
Recharger la config de NM :
sudo nmcli c reload sudo nmcli c up eth_1 nmcli c show eth_1 # pour vérifier les modifications
Modifier une connexion existante
sudo nmcli c modify nom ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.254 ipv4.dns 1.1.1.1 ipv4.method manual
Redémarrer la connexion :
sudo nmcli c down nom && sudo nmcli c up nom
Créer une nouvelle connexion
sudo nmcli c add type ethernet con-name ma_connexion ifname enp2s0 ip4 192.168.1.10/24 gw4 192.168.1.254