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 ...

_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

Répondre à