Solution 1 :
Vous avez besoin d'un modèle de système final solide. Linux est fondamentalement construit autour d'un modèle de système d'envoi faible, ce n'est donc vraiment pas un bon choix de système d'exploitation pour cette application.
Vous devrez simuler chaque élément du comportement dont vous avez besoin, de l'ARP au routage des politiques en passant par la sélection de l'adresse source. Vous aurez également besoin de filtres pour empêcher les paquets d'être acceptés s'ils arrivent sur la mauvaise interface.
Les étapes absolument nécessaires sont :
-
Configurez arp_filter=1 et arp_ignore=2 sur toutes les interfaces.
-
Ajoutez un routage par interface basé sur la source pour le trafic sortant. (L'interface de destination doit être choisie en fonction de l'adresse source.)
-
Ajoutez un filtrage d'entrée par interface pour éliminer silencieusement les paquets reçus sur la mauvaise interface. (Paquets avec une adresse de destination attribuée à une autre interface.)
Malheureusement, il n'y a pas de consensus sur la question de savoir si ces trois étapes suffisent. Le modèle de système final faible est intégré à l'ensemble de la pile Linux TCP/IP, et il n'est pas clair ce qui pourrait mal tourner avec des problèmes subtils comme la multidiffusion.
Il n'est pas clair comment vous choisiriez l'interface de sortie pour les émissions, par exemple. Doit-il sortir tous? Peut-être. Quel est le bon comportement si la pile reçoit une diffusion sortante avec une adresse source non attribuée à l'une des interfaces ?
Encore une fois, vous avez choisi le mauvais outil pour le travail.
Solution 2 :
Vous souhaiterez probablement créer un pont avec les interfaces 8/9, puis attribuer une adresse IP à ce pont (paquet bridge-utils, commande 'brctl add').
De cette façon, le pont agira comme un commutateur et pourra avoir une adresse IP dans votre sous-réseau.
Solution 3 :
Je recommanderais de lier les interfaces physiques, puis de configurer toutes les adresses sur l'interface liée unique.
Vous aurez également besoin d'assistance sur le commutateur.
Voici un mini tutoriel que vous pouvez utiliser pour commencer.
Solution 4 :
Il semble que vous vouliez un environnement de test équivalent à 9 machines distinctes et que vous pensiez que 9 interfaces sur une machine pourraient émuler cela. Sous Linux, il ne peut tout simplement pas le faire via une seule pile pour les raisons décrites par David Schwartz. BTDT et ont les cicatrices. C'était assez mauvais avec 2 interfaces.
Une meilleure solution pourrait être d'exécuter 8 ou 9 machines virtuelles discrètes sur votre hôte unique et de relier 8 ou 9 interfaces à ces machines virtuelles.