La raison pour laquelle votre pont et votre interface TAP partagent la même adresse MAC est que le pont n'a pas de MAC jusqu'à ce qu'il soit lié à une interface. Si vous créez un pont avec BRCTL et faites un "show brctl", vous trouverez que le pont a des ports vides. (Aucune interface ne lui est liée) En liant TAP0 à br0, naturellement, il apparaîtra comme le même MAC. J'ai créé un pont de test, pour illustrer.
# brctl addbr testbr0
[root @ stooge etc] # brctl show testbr0
nom de pont id de pont interfaces compatibles STP
testbr0 8000.000000000000 non
J'ai créé trois TAPS de test. La sortie de "brctl showmacs testbr0".
[root @ stooge etc] # brctl showmacs testbr0
port aucun addr mac est local? minuterie de vieillissement
1 86: 51: b6: 95: 0e: b6 oui 0,00
2 86: 58: 63: c6: d4: e7 oui 0,00
3 8a: a7: fa: 17: c5: 12 oui 0,00
Comme vous pouvez le voir, chaque port de pont a une adresse MAC unique, et le pont doit afficher son MAC, en tant que première interface liée. Si vous pontez une interface réseau physique, le pont Ethernet héritera de son adresse MAC et déplacera toutes les interfaces virtuelles vers le bas. Exemple de liaison eth0, au pont de test.
[root @ stooge etc] # brctl showmacs testbr0
port aucun addr mac est local? minuterie de vieillissement
4 AA: BB: CC: DD: EE: FF oui 0,00
1 86: 51: b6: 95: 0e: b6 oui 0,00
2 86: 58: 63: c6: d4: e7 oui 0,00
3 8a: a7: fa: 17: c5: 12 oui 0,00
Utiliser à nouveau "brctl show";
[root @ stooge etc] # brctl show
nom de pont id de pont interfaces compatibles STP
testbr0 8000.00aabbccddee no eth0
tap00
tap01
tap02
les interfaces TAP ont baissé d'une, même si eth0 est toujours sur PORT 4. Vous avez toujours des adresses MAC uniques. Si le pont Ethernet est lié à une interface source-route, vous n'avez pas le choix d'utiliser une adresse IP ou DHCP. Pour ce que ça vaut, si vous pontez une interface source-route, vous afficherez une adresse MAC "non locale". Il s'agit de l'adresse MAC du routeur du saut suivant. Je sais que dans RedHat, il y a une option pour spécifier une IP source, en utilisant IFCONFIG. Ma première option serait de consulter la référence de commande IP, car je pense que vous pouvez spécifier une IP source. Je ne l'ai jamais essayé.