Il motivo per cui il bridge e l'interfaccia TAP condividono lo stesso indirizzo MAC, è perché il bridge non ha un MAC, fino a quando non è associato a un'interfaccia. Se crei un bridge con BRCTL e fai uno "show brctl", scoprirai che il bridge ha porte vuote. (Nessuna interfaccia vincolata ad esso) In associazione TAP0 a br0, naturalmente, mostrerà lo stesso MAC. Ho creato un ponte di prova, per illustrare.
# brctl addbr testbr0
[root @ stooge etc] # brctl show testbr0
bridge nome bridge id Interfacce abilitate STP
testbr0 8000.000000000000 n
Ho creato tre TAPS di prova. L'output di "brctl showmacs testbr0".
[root @ stooge etc] # brctl showmacs testbr0
port no mac addr è locale? timer di invecchiamento
1 86: 51: b6: 95: 0e: b6 sì 0,00
2 86: 58: 63: c6: d4: e7 sì 0,00
3 8a: a7: fa: 17: c5: 12 sì 0,00
Come puoi vedere, ogni porta bridge ha un indirizzo MAC univoco e il bridge dovrebbe mostrare il proprio MAC, come primo limite dell'interfaccia. Se si collega un'interfaccia di rete fisica, il bridge Ethernet erediterà il suo indirizzo MAC e sposta tutte le interfacce virtuali verso il basso. Esempio di associazione eth0, al ponte di prova.
[root @ stooge etc] # brctl showmacs testbr0
port no mac addr è locale? timer di invecchiamento
4 AA: BB: CC: DD: EE: FF sì 0.00
1 86: 51: b6: 95: 0e: b6 sì 0,00
2 86: 58: 63: c6: d4: e7 sì 0,00
3 8a: a7: fa: 17: c5: 12 sì 0,00
Utilizzando di nuovo "brctl show";
[root @ stooge etc] # brctl show
bridge nome bridge id Interfacce abilitate STP
testbr0 8000.00aabbccddee no eth0
tap00
TAP01
TAP02
le interfacce TAP ne sono state spostate di una, anche se eth0 è ancora in PORT 4. Hai ancora indirizzi MAC univoci. Se il bridge Ethernet è associato a un'interfaccia di route di origine, non è possibile scegliere di utilizzare un indirizzo IP o DHCP. Per quanto valga la pena, se si collega un'interfaccia route di origine, verrà mostrato un indirizzo MAC "non locale". Questo è l'indirizzo MAC del router successivo. So che in RedHat esiste un'opzione per specificare un IP di origine, usando IFCONFIG. La mia prima opzione sarebbe quella di consultare il riferimento al comando IP, poiché penso che sia possibile specificare un IP di origine. Non l'ho mai provato.