J'essaie de créer des règles de couplage IP-MAC dans ebtables . Il existe peu de didacticiels et de questions connexes [1], mais j'ai un type de paramètre spécifique.
ENVIRONNEMENT: J'ai de nombreux hôtes physiques . Chaque hôte possède peu de cartes Ethernet, jointes en liaison et utilisées comme esclave pour le pont. Il existe de nombreuses machines virtuelles sur chaque hôte (kvm, qemu, libvirt). Chaque machine virtuelle est connectée à un pont de son hôte physique via un nouveau port appelé vnet [0-9] +. Il n'y a pas de NAT. La mise en réseau fonctionne très bien, tous les hôtes physiques peuvent être cinglés, toutes les machines virtuelles aussi. Chaque machine virtuelle a sa propre adresse IP et adresse MAC.
PROBLÈME: à l' intérieur d'une machine virtuelle, l'adresse IP peut être remplacée par une autre.
SOLUTION TROUVÉE: Il existe une solution connue sur le site ebtables [2], mais cette solution est applicable quand un seul hôte est utilisé. Il autorise tout le trafic et s'il y a un paquet IP avec un autre MAC que celui autorisé, le paquet est abandonné. S'il existe plusieurs hôtes, il faut que toutes les paires IP-MAC existantes soient enregistrées sur tous les hôtes. Il faut une solution politique inversée.
SOLUTION ARTISANALE: J'ai essayé d'utiliser des ebtables de manière inversée. Voici un exemple de ce que j'ai essayé.
EXEMPLE 1
Bridge table: filter
Bridge chain: INPUT, entries: 2, policy: DROP
-i bond0 -j ACCEPT
-p IPv4 -s 54:52:0:98:d7:b6 --ip-src 192.168.11.122 -j ACCEPT
Bridge chain: FORWARD, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
EXEMPLE 2
Bridge table: filter
Bridge chain: INPUT, entries: 0, policy: ACCEPT
Bridge chain: FORWARD, entries: 1, policy: DROP
-p IPv4 -s 54:52:0:98:d7:b6 --ip-src 192.168.11.122 -j ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
Le cœur de ce que je veux est d'avoir DROP par défaut et d'autoriser uniquement le trafic provenant de machines virtuelles avec la bonne paire IP-MAC déployée sur l'hôte donné. Cependant, ces solutions ne fonctionnent pas.
QUESTION: Comment autoriser le trafic sur le pont uniquement pour les paires IP-MAC spécifiées de machines virtuelles en cours d'exécution et supprimer toutes les paires IP-MAC inconnues provenant des ports vnet [0-9] +?
Merci beaucoup pour toutes les réponses.