Le Sunday 19 July 2020 17:56:29 Stéphane Rivière a écrit :
Aucun défenseur systemd sur la liste ?
Moi.
J'utilise systemd depuis le début.¹
Je suis aussi utilisateur, mais tardif. Les scripts sysinit m'ont toujours rebuté, entre la répétition entre scripts, l'incompatibilité entre distribs, le boilerplate dans chaque daemon, la gestion des dépendances ... Il y quelques années j'avais essayé initng (http://web.archive.org/web/20090225093848/http://www.initng.org/), qui n'est plus développé depuis longtemps, mais dont les idées étaient assez proches de systemd, en plus basique. Cependant j'ai attendu de ne plus vraiment avoir le choix avant de passer a systemd
[...]
Mais quand tu sors des sentiers battus (de mon coté), et que ça commence à se mêler de tout et de rien (de leur coté) en ignorant les principes Unix d'une fonction par app
Je n'ai pas l'envie de le lancer un débat, mais il y a quand même un certain découpage des programmes et fonctions dans le projet/paquet systemd. Il y a le /sbin/init et les fonctions annexes (networkd par exemple) sont dans des binaires séparés. Est-ce qu'il n'y a pas trop de choses dans le pid 1, pour ca les opinions divergent ...
[...]
Sans compter que les bugs, ils en ont, ça...
Ca, oui. Et vu l'attitude des dévs, personne n'a envie de les rapporter et de se faire agresser.
En particulier networkd, c'est pas vraiment sec. D'ailleurs networkd n'est pas disponible du tout (même pas packagé) dans redhat/centos 8.
En gros, faut pas faire d'interfaces trop dynamiques ou de reload, mais sur un serveur c'est beaucoup plus utilisable que le monstre NetworkManager et l'horreur de la config de ce truc. Et aussi plus complet, plus maintenu, plus rapide et avec moins de race conditions que ifupdown qui reste le défaut sous debian, networkd étant bien désactivé par défaut.
Exemple d'un truc que je n'arrive pas à transposer en networkd...
...
- T'as 1 IP hyper et un /29 ou un /28 et t'as pas non plus envie de
perdre 3 IP pour le plaisir (les classiques IP de réseau, de passerelle et de broadcast)
- Bridger une IP sur une VM sans bridger l'interface physique ;
- Autoriser le mix de VM nattées avec IP alias et de VM bridgées
- Autoriser des sous réseaux de VM séparés (intranets isolés les uns des
autres).
...
Plus d'explication ici : https://stef.genesix.org/pub/serveur_Debian_8_-_Genesix_v2_-_Installation.pd f (page 13 puis 30 et suivantes pour l'exemple en question).
Avec systemd-network, j'ai pas trouvé comment reproduire le paramètre pointopoint du fichier interfaces
Si je comprends bien (j'ai pas tout lu tout le doc, mais ca paraitrait logique chez ovh), la config c'est que la passerelle est *sur le même lien* (L2) mais pas directement accessible sur le même réseau IP (L3). Le mot clé c'est donc "on-link" pour forcer la présence de la gw sur le lien, comme avec la commande ip pour éviter d'avoir "Error: Nexthop has invalid gateway." :
# ip r add $route via $gw onlink dev eth0
Exemple avec une vm en 145.x en macvtap (avec kvm) avec une mac virtuelle sur un dédié en 188.x dont la gw est en 188.x.x.254 (et avec le renommage d'interface pour éviter les conneries du genre ens4u8x4y5z6p1 en bonus) :
# cat 32-wan0.link [Match] MACAddress=02:00:00:xx:xx:xx
[Link] Name=wan0
# cat 32-wan0.network [Match] Name=wan0
[Network] Address=145.x.x.x/32
[Route] Gateway=188.x.x.254 GatewayOnlink=yes
C'est presque pareil avec un bloc ip *routé* sur l'ip principale (cas de l'xdsl ovh), mais la gw est l'ip interne de la gw sur cette interface, pas la gw ovh. Je suppose que c'est pareil sur les serveurs ...
et je suis encore pas bien bon autour des bridges et des interfaces virtuelles. Pourtant j'ai cherché, mais la réponse est toute trouvée : je suis un neuneu paresseux :)
Pour créer un bridge :
# cat 40-virbr0.netdev [NetDev] Name=virbr0 Kind=bridge
[Bridge] ForwardDelaySec=250ms
et un .network qui va bien pour mettre une ip la dessus
Puis dans les .network des interfaces a mettre dans le bridge, si besoin :
[Match] Name=ethX
[Network] Bridge=virbr0
Le problème de la doc est que vu qu'il faut créer (pour chaque interface) 3 types de fichier, il faut regarder dans 3 pages de man : systemd.link systemd.netdev systemd.network . Et aussi, ca multiplie très vite le nombre de fichiers, par exemple sur une passerelle un peu complexe j'en suis a plus de 30 ...
Après pour la partie xen, je ne connais pas du tout
¹ De même que je comprends l'intérêt de Pulse Audio (du même auteur, malgré la polémique) plus facile que Jack pour de "l'audio à Mme Michu" (et même plus, j'ai une install de sono pour un cinéma qui tourne avec pulse audio, ça le fait).
Oui, ca a son utilité, mais il a quand même fallu attendre quelques années pour avoir un truc utilisable, vu que l'attitude de l'auteur en question était déjà la même et qu'il considérerait que son code était parfait et que le problème était forcément les drivers/le matériel/les utilisateurs. Depuis qu'il a abandonné ce projet pour se consacrer a systemd, c'est devenu plus stable et les bugs ont pour la plupart été corrigés ...