Le proxy LXD écrase mes règles nftables

Hello,

J’ai des règles nftables activées via le fichier /etc/nftables sur une VM (host1). Je vois mes règles spécifiques via nft list ruleset, elles sont bien chargées. Dans cette VM, j’ai 3 instances LXD (vhost1, vhost2, vhost3), avec un petit subnet.

Pour X raison, sur mon host1, je veux rediriger du trafic spécifique vers vhost3, je fais donc un :

/snap/bin/lxc config device add vhost3 vhost3 -2458 proxy nat=true listen=udp:185.163.*.*:2458 connect=udp:192.168.0.3:2458

Je me suis aperçu qu’en passant cette commande, si je faisais un nft list ruleset, j’ai les règles de routage que le proxy m’a fait, mais elles ont écrasé toutes mes anciennes règles !

Du coup, je suis un peu embêté, j’ai l’impression que lorsque je démarre, mes règles normales sont chargées (celles qui sont dans mon fichier plat), puis, LXD charge les règles que j’ai appelé via les commandes et celles-ci écrasent tout.

Y a t il une solution ? Là je vais tester la désactivation des règles créées par la commande lxc config, et injecter ces règles directement dans mon fichier plat, des fois que…

Quand plusieurs logiciels se mêlent de gérer une même ressource (route par défaut, DNS dans resolv.conf, règles iptables/nftables) sans se mettre d’accord (par exemple via resolvconf pour le fichier resolv.conf), c’est forcément le bazar.

Quel est l’intérêt de faire les redirections avec lxc plutôt que le fichier de configuration nftables ?

c’est justement le sujet de ma réflexion, je vais écrire à la main les règles dans mon fichier plat plutôt que de compter sur la CLI lxc pour faire ça, vu que ça écrase tout.

bon, quoi que je fasse, mes règles ne sont plus prises en compte, LXD charge un truc qui écrase tout maintenant.

Quand on fait de la virtualisation, il faut considérer que le host fait uniquement la couche matérielle. Il faut laisser aux différents élément le travail qui leur incombe. Dans le cas ici nft et non lxc.
C’est comme si tu avait un routeur mais que tu ne lui confiait pas le routage.

Et encore, utiliser le nft de l’host pour faire le boulot en soit c’est déjà une erreur d’architecture.

Je suis d’accord, mais dans ce cas précis, je n’ai qu’une ip publique pour plusieurs conteneurs, ici c’est donc du bricolage de maison, pas de la prod en entreprise (où pour le coup, j’ai toutes les ip publiques dont j’ai besoin) .

Et encore, utiliser le nft de l’host pour faire le boulot en soit c’est déjà une erreur d’architecture.

Peux-tu développer ?

Tu es à la maison donc tu as une box, sur laquelle ton host est installé?

personnellement, ce que je ferais c’est de créer un routeur virtuel relié à un reseau virtuel pour chaque sous-réseau fourni par le routeur virtuel. ensuite sans chacun de ces sous réseaux virtuels j’ai les machines qui doivent s’y trouver.

C’est ensuite le routeur qui fera les directions de machines. C’est lui qui portera le pare-feu, et qui fera les nécessaire redirections.

Quand au routeur, il est en pont, ce qui reste le plus simple.

S’il s’agit de la même machine que dans l’autre sujet (Utiliser nginx pour rediriger du trafic), c’est un VPS chez un hébergeur.

Effectivement, il s’agit bien de cette machine (un VPS chez un hébergeur) et ta solution me semble être la bonne.
Il faut que je désactive le mode nat de LXD, car j’ai l’impression que même sans règle, si il est actif, il réécrit tout existe en amont, c’est un peu casse pied ça.
Merci pour votre aide à tous les deux !