bruno a écrit
Et en plus ton unité systemd ne va probablement pas fonctionner car :
After=network.target
est insuffisant pour s'assurer que l'interface à laquelle doit s'appliquer la route est bien active avec une adresse IP.
Ça fonctionne parfaitement chez moi (avec des règles iptables ) !
Faire tourner après network.target est pour s'assurer qu'on a bien les interfaces up.
Si ce n'est effectivement pas suffisant, on peut utiliser la "target" network ready.
Aussi l'intérêt de la chose est que c'est "généralisable" à d'autres choses qu'on veut lancer au démarrage, en adaptant juste les clauses "After"/"Before" à ce qu'on veut faire.
bruno a écrit
Exemple dans /etc/network/interfaces, pour netplan voir le lien donné par Watael :
/etc/network/interfaces est "obsolete" et n'est plus utilisé (en standard) depuis netplan/systemd
Mais effectivement, si on veut faire "puriste", une route irait mieux dans une unité "network" de systemd (cf lien ci-dessous, où j'utilise une unité ".network" pour la clause EmitDNS). Je vous laisse guider avec la bonne syntaxe qui réussit à contourner Netplan/NetworkManager. 😛
En l'occurrence, s'agissant d'un Desktop (probablement) c'est plutôt une configuration NetworkManager qu'il faudrait faire. Dans ce cas,
c'est peut-être même "encore plus simple" que ce que propose Watael puisque tout se fait "à la souris" sur l'interface de paramétrage du réseau. Par exemple, dans "Paramètres filaires", si on clique sur le paramétrage derrière "Connecté à 1000Mbps" on a un onglet IPV4 qui permet de rajouter des routes.
Donc c'est sans doute là qu'il faut intervenir dans le cas précis, avec AUCUN "fichier de configuration". 😛
Je vous laisse expérimenter (et encore une fois c'est moins "général" pour la réponse à "je veux faire une action automatique au démarrage").
bruno a écrit
Proposer un script bash
C'est un détail, mais j'ai pourtant bien insisté, tu as lu en diagonale ! Ce n'est
PAS un script
bash ! C'est un
script shell (portable) puisque vue la simplicité, on n'a vraiment pas besoin de la lourdeur des particularités de 'bash'. Ça serait bien que le vocabulaire change... je ne me souviens plus de quand dash a remplacé bash en standard dans Ubuntu, mais ce devait être autour de la 10.04 ou 12.04 donc entre 8 et 10 ans...
Watael a écritNetplan est une horreur inutile.
netplan n'est pas la configuration par défaut sur une installation standard ?
Oui, absolument.
Mais regarde ce qu'il y a dans une configuration standard "desktop" :
$ cat /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
Juste ça et rien d'autre !..
Autrement dit, on passe juste la main à NetworkManager. Si on positionne une route avant cela, pas certain que NetworkManager va la conserver !..
Franchement je ne vois guère l'intérêt de ce "truc" (Netplan). Il n'est pas aussi puissant que NetworkManager et systemd.networkd, du coup, dès que tu dois faire des trucs un peu "pointu" tu dois faire les pieds au mur pour "passer à côté".
Exemple, la configuration de ma "middlebox" :
https://gitlab.com/BylonAkila/TOR_Middlebox/-/tree/master/20.04
En l'occurrence on a besoin de trucs assez basiques :
- créer une interface "bridge" factice (sans rien de connecté)
- faire en sorte qu'outre le DHCP, l'interface émette le DNS aussi.
Eh bien la directive "EmitDNS" qui est tout à fait prévue par networkd pour ça, n'a pas d'équivalent netplan. On est donc obligé de faire une configuration partielle Netplan (il sait quand même créer un bridge !), et de compléter avec Systemd. Bref, le truc Netplan ne sert qu'aux "situations très simples" où de toute façon c'est aussi très simple à faire avec NetworkManager et networkd.
Cela rajoute donc une "couche de traduction" dont il faut apprendre le langage, et qui est fort loin de tout couvrir.
Bref... inutile AMHA !