[EDIT]
Sistem produksi saat ini merupakan sistem berbasis campuran fisik dan ESXi. Kami jelas tidak akan pernah menggunakan virtualbox bahkan untuk lingkungan pra-produksi! Itu digunakan di sini hanya untuk dengan cepat mempersempit masalah langsung di desktop saya.
Terima kasih atas penjelasan untuk "menunggu" pada meta!
[/ EDIT]
Pengaturan saya:
- Jaringan pribadi
vboxnet1
10.0.7.0/24 - 1 Host, desktop ubuntu
- 1 VM, server ubuntu (VirtualBox)
Tata letak adressing:
- PEMBAWA ACARA: 10.0.7.1
- VM: 10.0.7.101
- VM MAC NAMESPACE : 10.0.7.102
Pada VM
, saya menjalankan perintah berikut:
ip netns add mac # create a new nmespace
ip link add link eth0 mac0 type macvlan # create a new macvlan interface
ip link set mac0 netns mac
Di mac
namespace, di dalam VM:
ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0
Sehingga pada dasarnya kita berakhir dengan: (Suka Inception?)
+------------------------+
| Host: 10.0.7.1 |
| |
| +--------------------+ |
| | VM: 10.0.7.101 | |
| | | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | | | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+
Pekerjaan apa:
- Ping antara
Host
danVM
- Ping antara
NS
danNS
- dhclient dari
NS
Apa yang tidak berhasil:
- ping antara
NS
danVM
- ping antara
NS
danHost
Di mana saya mulai menjadi gila:
- tcpdump pada
host
(mesin nyata) sebenarnya menunjukkan permintaan ARP DAN balasan - tcpdump pada
NS
menunjukkan permintaan ARP dikirim ke tuan rumah - tcpdump aktif
VM
membuat seluruh kekacauan bekerja (!) -> ping mulai mendapatkan jawaban ketika tcpdump dimulai pada VM?!?
Jadi, saya yakin Anda sangat menginginkannya, pertanyaan saya adalah: bagaimana saya membuatnya bekerja? Saya menduga ada sesuatu yang salah dengan ARP di macvlan di dalam NS tetapi tidak tahu apa sebenarnya ...
Btw, saya melakukan expérimentations yang sama dengan mac0
antarmuka langsung pada VM (tanpa namespace) dan itu bekerja dengan sempurna.
sumber
Jawaban:
OK, jadi, untuk anak cucu, fakta bahwa tcpdump membuat semua tiba-tiba berfungsi seharusnya menempatkan saya di jalur. Apa yang dilakukannya secara internal adalah beralih
eth0
ke mode promiscuous. Artinya,eth0
akan menghasilkan semua lalu lintas jaringan, tidak hanya yang dengan server utamaMAC
Namun, beginilah cara
macvlan
kerjanya: ia menambahkan alamat MAC virtual sekunder baru yang tidak diketahui oleh adaptor jaringan "fisik" (itu VM).Jadi solusi mudahnya adalah secara manual:
ifconfig eth0 promisc
Saya harap ini membantu!
sumber