Regarder le contenu de netplan :
-
Si le fichier 90-… existe (crée par NetworkManager), créer un fichier (supérieur à 90, pour qu'il soit pris en compte, par-dessus au 90-… ), par ex :
Code : Tout sélectionner
network:
version: 2
renderer: NetworkManager
ethernets:
eth2:
optional: true
dhcp4: false
link-local: []
eth4:
addresses:
- "172.0.0.1/24"
nameservers:
addresses:
- 192.168.10.2
dhcp4: false
routes:
- to: "0.0.0.0/0"
via: "192.168.10.1"
Enregistrer et fermer.
Puis :
Code : Tout sélectionner
sudo chmod 600 /etc/netplan/99-custom.yaml
sudo netplan generate # vérifie l’absence d’erreurs
sudo netplan apply
tapez :
-
NAME UUID TYPE DEVICE
netplan-eth4 111... ethernet eth4
netplan-eth2 222... ethernet eth2
lo 333... loopback lo
Wired connection 1 444... ethernet --
Wired connection 2 555... ethernet --
/etc/netplan#
alors, supprimez les interfaces inutilisés :
rechargez netplan :
-
puis, mettez eth2 en unmanaged :
-
Vérifier :
-
nmcli device status DEVICE TYPE STATE CONNECTION
eth4 ethernet connected netplan-eth4
lo loopback connected (externally) lo
eth2 ethernet unmanaged --
Désactiver l'adresse ip de eth2 :
-
Code : Tout sélectionner
sudo ip addr flush dev eth2
sudo sysctl -w net.ipv4.conf.eth2.arp_ignore=1
sudo sysctl -w net.ipv4.conf.eth2.arp_announce=0
puis recharger sysctl :
-
puis, pour désactiver ces option au redémarrage :
-
Code : Tout sélectionner
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=0
Enregistrez et fermez.
Sortie (rem: il n'y a plus d'adresse ip sur "eth2", elle ne comporte plus de champs "inet") :
-
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a1... brd ff:ff:ff:ff:ff:ff
Pour que ça marche après redémarrage, il faut encore faire :
Il faut utiliser un hook NetworkManager qui s’exécute après la configuration d’interface :
-
-
Code : Tout sélectionner
#!/bin/bash
IFACE="$1"
STATUS="$2"
if [ "$IFACE" = "eth2" ] && [ "$STATUS" = "up" ]; then
/usr/sbin/ip addr flush dev "$IFACE"
/usr/sbin/sysctl -w net.ipv4.conf."$IFACE".arp_ignore=1
/usr/sbin/sysctl -w net.ipv4.conf."$IFACE".arp_announce=0
fi
-
Code : Tout sélectionner
sudo chmod 755 /etc/NetworkManager/dispatcher.d/90-disable-linklocal
-
Et là, ça marche.
Source : ChatGPT.