Anda dapat menggunakan macvlan untuk membuat beberapa antarmuka virtual dengan alamat MAC yang berbeda.
ip link add link eth0 address 00:11:11:11:11:11 eth0.1 type macvlan
ip link add link eth0 address 00:22:22:22:22:22 eth0.2 type macvlan
Secara teori itu harus menjadi semua yang Anda butuhkan, meskipun pada titik tertentu ada yang rusak di kernel dan itu akan menyebabkannya menggunakan satu MAC untuk semuanya. Saya tidak yakin apa statusnya; semoga sudah diperbaiki.
Jika tidak, Anda bisa menggunakan arptables untuk menulis ulang alamat MAC pada output berdasarkan pada antarmuka egress atau pada input berdasarkan pada IP tujuan:
arptables -A OUT -o eth0.1 --arhln 06 -j mangle --mangle-hw-s 00:11:11:11:11:11
arptables -A OUT -o eth0.2 --arhln 06 -j mangle --mangle-hw-s 00:22:22:22:22:22
arptables -A IN -d 192.168.1.1 --arhln 06 -j mangle --mangle-hw-d 00:11:11:11:11:11
arptables -A IN -d 192.168.1.2 --arhln 06 -j mangle --mangle-hw-d 00:22:22:22:22:22
Sayangnya arptables juga cukup bermasalah dalam pengalaman saya.
Alasan mengapa jembatan dan antarmuka TAP Anda berbagi alamat MAC yang sama, adalah karena jembatan tidak memiliki MAC, sampai terikat ke antarmuka. Jika Anda membuat jembatan dengan BRCTL, dan melakukan "brctl show", Anda akan menemukan jembatan memiliki port kosong. (Tidak ada antarmuka terikat padanya). Dalam mengikat TAP0 ke br0, secara alami, itu akan ditampilkan sebagai MAC yang sama. Saya membuat jembatan uji, untuk menggambarkan.
# brctl addbr testbr0
Saya membuat tiga TAPS uji. Output dari "brctl showmacs testbr0".
Seperti yang Anda lihat, masing-masing port bridge memiliki alamat MAC yang unik, dan bridge harus memperlihatkan MAC-nya, sebagai antarmuka pertama yang diikat. Jika Anda menjembatani antarmuka jaringan fisik, jembatan Ethernet akan mewarisi alamat MAC-nya, dan memindahkan semua antarmuka virtual ke bawah. Contoh mengikat eth0, ke jembatan uji.
Menggunakan "brctl show" lagi;
antarmuka TAP telah bergerak turun satu, meskipun eth0, masih di PORT 4. Anda masih memiliki alamat MAC yang unik. Jika jembatan Ethernet terikat ke antarmuka sumber-rute, Anda tidak punya pilihan dalam menggunakan alamat IP, atau DHCP. Untuk apa nilainya, jika Anda menjembatani antarmuka sumber-rute, Anda akan menunjukkan alamat MAC "non-lokal". Ini adalah alamat MAC router hop berikutnya. Saya tahu di RedHat, ada opsi dalam menentukan IP sumber, menggunakan IFCONFIG. Opsi pertama saya, akan berkonsultasi dengan referensi perintah IP, karena saya pikir Anda dapat menentukan IP sumber. Saya belum pernah mencobanya.
sumber
Cobalah untuk membuat
tap
perangkat atau perangkat ethernet virtual lainnya dengan alamat MAC dan IP yang diperlukan dan kemudian pasang ke satu jembatan dengan eth0.sumber
Sepertinya Anda mungkin dapat menggunakan vconfig untuk membuat beberapa alamat vlan pada ethernet fisik yang sama, masing-masing dengan alamat mac yang berbeda.
sumber