Virtualisation et réseau

Pour info, j’ai fait le sauvage: désactiver ipv6 avec grub.
C’est loin d’être le pus élégant, mais de toute façon la VM (pfsense - et même en version beta) ne prend pas encore en charge ipv6…
Enfin pour être plus précis, il est possible de “l’encapsuler” dans du ipv4… Comme j’en ai autant l’utilité qu’un hochet, je laisse tomber ipv6 pour l’instant. iptables requiert toute mon attention…

Je ne te remercie plus, ça fait déjà 10 fois dans ce fil… :038

Pas sûr qu’on se comprenne. Par “la machine” je voulais parler de la machine hôte, celle sur laquelle il y a les règles iptables. Pas la machine virtuelle.

Comme je l’ai écrit précédemment, c’est ce qui se passe si /etc/sysctl.conf est pris en compte avant que le module bridge soit chargé, c’est-à-dire si on ne fait rien de particulier. A moins que l’ordre des scripts d’init ait été modifié dans squeeze, un contournement consiste à charger le module avant grâce à /etc/modules.

Peu importe si br0 a une adresse IPv6 : ce qui compte est que net.ipv6.conf.br0.disable_ipv6=1. Dans ce cas aucune communication IPv6 n’est possible avec cette interface. Note bien que ça n’a aucun effet sur les paquets IPv6 pontés entre l’interface physique et la machine virtuelle. C’est comme un switch à trois ports eth0, vnet0 et br0 : si tu bloques sur br0, ça n’empêche pas le trafic entre eth0 et vnet0.

[quote=“PascalHambourg”]Pas sûr qu’on se comprenne. Par “la machine” je voulais parler de la machine hôte, celle sur laquelle il y a les règles iptables. Pas la machine virtuelle.[/quote]Oui, j’ai répondu à côté de la plaque. Je pensais au forward… Comment alors mettre une règle ESTABLISHED sur les paquets pontés ? Mais est-ce nécessaire, les règles iptables de la VM ne font pas ça ? Le gateway c’est l’IP de la VM, elle prend en charge les paquets, envoie sur le net et balance les réponses (si elles sont acceptées par les règles iptables) vers le Lan, non ?

J’ai bien ces deux directives dans /etc/sysctl.conf. Du coup celle sur eth0 ne sert à rien ?
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.br0.disable_ipv6 = 1

Pour ce qui est de la VM elle ne prend pas en charge l’ipv6 donc ça ne devrait pas m’inquièter.

Pourquoi diable veux-tu mettre une règle ESTABLISHED sur les paquets pontés ?

Je veux bien te fournir des éléments d’information, mais tu ne dis pas clairement ce que tu veux et je commence à avoir l’impression que la discussion tourne en rond.

Veux-tu oui ou non que les paquets IP pontés, c’est-à-dire qui traversent simplement un pont et ne sont ni reçus, émis ou routés par la machine hôte, soient filtrés par les règles iptables de la machine hôte ? Si non, alors tu mets net.bridge.bridge-nf-call-iptables à 0 et puis c’est tout. Sachant que ces paquets IP pontés sont de toute façon émis, reçus ou routés par d’autres machines et que celles-ci peuvent faire du filtrage avec leurs règles iptables ou équivalent comme d’habitude.

Dans le cas contraire, une seule règle ESTABLISHED dans FORWARD ne suffira pas, il faut bien aussi des règles pour accepter des paquets NEW afin que les connexions s’établissent.

[quote=“lol”]J’ai bien ces deux directives dans /etc/sysctl.conf. Du coup celle sur eth0 ne sert à rien ?
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.br0.disable_ipv6 = 1[/quote]
Elle ne sert pas à grand chose déjà parce que eth0 est une interface pontée.

Les deux n’ont aucun rapport. net.ipv6.conf.*.disable_ipv6 ne concerne que la pile IPv6 de la machine hôte, pas les paquets pontés ni la machine virtuelle.

[quote=“PascalHambourg”]Pourquoi diable veux-tu mettre une règle ESTABLISHED sur les paquets pontés ?[/quote]J’essayais de comprendre. Maintenant c’est bon.

[quote=“PascalHambourg”]Je veux bien te fournir des éléments d’information, mais tu ne dis pas clairement ce que tu veux et je commence à avoir l’impression que la discussion tourne en rond.[/quote]C’est simple:

  • La passerelle est dans la VM.
  • Dans la machine hôte quelques services à destination du Net (serveur Web…) de la passerelle (Serveur radius + mysql pour l’authentification) et de mon Lan (Serveur mail).
    Rien ne doit passer directement entre la machine hôte et Internet. Pour aller sur le net la machine hôte doit passer par la VM.

[quote=“PascalHambourg”]Veux-tu oui ou non que les paquets IP pontés, c’est-à-dire qui traversent simplement un pont et ne sont ni reçus, émis ou routés par la machine hôte, soient filtrés par les règles iptables de la machine hôte ? Si non, alors tu mets net.bridge.bridge-nf-call-iptables à 0 et puis c’est tout. Sachant que ces paquets IP pontés sont de toute façon émis, reçus ou routés par d’autres machines et que celles-ci peuvent faire du filtrage avec leurs règles iptables ou équivalent comme d’habitude.[/quote]Non, donc c’est bon.

[quote=“PascalHambourg”][quote=“lol”]Du coup celle sur eth0 ne sert à rien ?[/quote]Elle ne sert pas à grand chose déjà parce que eth0 est une interface pontée.[/quote]Compris, c’est ce que je pensais.

Les deux n’ont aucun rapport. net.ipv6.conf.*.disable_ipv6 ne concerne que la pile IPv6 de la machine hôte, pas les paquets pontés ni la machine virtuelle.[/quote]Compris aussi. Que l’ipv6 soit désactivé sur l’hôte me convient parfaitement. je m’occupe de la VM.

Ce n’est pas évident de comprendre l’ensemble d’un coup. Désolé de t’avoir donné le sentiment de tourner en rond, de mon côté j’ai avancé et compris un certains nombre de choses essentielles grâce à toi.

Oups, j’ai oublié des mots importants dans mon message précédent. Je le corrige, mais tu l’as aussi cité.

Avec ça, il n’y aura pas d’interaction entre le trafic IP ponté et iptables.

Avis perso : je n’ai jamais compris pourquoi ce n’était pas la valeur par défaut. Tu es loin d’être le premier que je vois se faire avoir.

Bon ben si tu as tout compris et que tu arrives au résultat souhaité, c’est le principal.

Salut,

J’ai édité mon message précédent pour la compréhension mais j’avais corrigé en lisant.
Je suis effectivement parvenu au résultat souhaité, faire deux machines avec une seule… :023

Il faut bien avouer que c’est un peu opaque au premier abord.
Faire un schéma complet avec toutes les interfaces physiques et virtuelles, les IP et les adresses MAC m’a bien aidé. Il suffit ensuite de se demander dans quel sens les paquets ont le droit de circuler, et de faire ses règles en conséquence.

Merci.

C’est la bonne démarche, en tout cas celle que j’applique ! (je dois être plutôt visuel comme gars)