Macvlan tabanlı arabirim ana bilgisayardan ping veriyor ancak ad alanından değil


10

[DÜZENLE]

Üretim sistemi şu anda karma fiziksel ve ESXi tabanlı bir sistemdir. Açıkçası üretim öncesi bir ortam için bile virtualbox kullanmayız! Burada sadece sorunu doğrudan masaüstümde hızla daraltmak için kullanıldı.

Meta'da "beklemede" ifadesinin açıklaması için teşekkürler!

[/DÜZENLE]

Kurulumum:

  1. Özel ağ vboxnet110.0.7.0/24
  2. 1 Ana bilgisayar, ubuntu masaüstü
  3. 1 VM, ubuntu sunucusu (VirtualBox)

Adresleme düzeni:

  1. EV SAHİBİ: 10.0.7.1
  2. VM: 10.0.7.101
  3. VM MAC NAMESPACE : 10.0.7.102

Üzerinde, VMaşağıdaki komutları çalıştırdım:

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

On macad, VM içinde:

ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0

Böylece temelde: (Başlangıç ​​gibi mi?)

+------------------------+
| Host: 10.0.7.1         |
|                        |
| +--------------------+ |
| | VM: 10.0.7.101     | |
| |                    | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | |                | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+

Ne çalışıyor:

  • Ping arasında HostveVM
  • Ping arasında NSveNS
  • Dhclient den NS

Ne çalışmıyor:

  • Ping arasında NSveVM
  • Ping arasında NSveHost

Çıldırmaya başladığım yer:

  • tcpdump on host(gerçek makine) aslında ARP isteğini gösterir VE yanıtları
  • tcpdump on NS, ana bilgisayara gönderilen ARP isteklerini gösterir
  • tcpdump açık VMtüm karışıklık çalışır (!) -> ping VM'de tcpdump başlatıldığında cevap almaya başlar?!?

Bahse girerim bunun için istekliydiniz, sorum şu: Nasıl çalıştırabilirim? NS içindeki macvlanda ARP ile ilgili bir şeylerin yanlış olduğundan şüpheleniyorum ama tam olarak ne olduğunu anlayamıyorum ...

Btw, mac0doğrudan VM üzerinde arayüz ile aynı expérimentation'ları yaptım (isim alanı yok) ve kusursuz çalıştı.


4
Bu sorunun neden konu dışı olarak işaretlendiğini anlamıyorum. Kesinlikle birden fazla sanallaştırma ortamıyla ilgili bir sysadmin / netadmin sorusu ve önemsiz bir soru değil (veya eğer öyleyse StackOverflow'daki soruların% 90'ı konu dışıdır). Bunu "konu dışı" olarak işaretleyen kişilerin, burada geçerli olmayan bir kuralı kopyalayıp yapıştırmak yerine nedenini açıklamaktan rahatsız olmasını isterim. Teşekkür ederim!
jpetazzo

@jpetazzo Bu konu dışı değil ve ben sadece kapanış insanlar sorunun kötü organizasyon / sunum (muhtemelen OP bir sys / net yönetici olmama nedeniyle) dayalı yaptığını varsayabiliriz. Ayrıca, Sunucu Hatası'nın kapsamı (sadece konu değil) Yığın Taşması'ndan farklıdır - argümanınız bana anlamsız olduğu için yardım merkezimizi ziyaret etmediğinizi düşündürüyor .
Chris S

Yanıtlar:


13

Pekala, gelecek nesiller için, tcpdump'ın aniden tüm işleri yaptığı gerçeği beni yoluna koymuş olmalı. Dahili olarak yaptığı şey eth0karışık moda geçmektir. Yani, eth0sadece ana ağ trafiğine değil, tüm ağ trafiğine ulaşacaktır.MAC

Bununla birlikte, bu tam olarak nasıl macvlançalışır: "fiziksel" (bu bir VM) ağ bağdaştırıcısının bilmediği yeni bir ikincil sanal MAC adresi ekler.

Bu yüzden kolay çözüm manuel olarak: ifconfig eth0 promisc

Umut ediyorum bu yardım eder !


Yani, o sanal makinede de “promisc mode yok” un işaretini kaldırmanız gerekiyordu, sanırım?
Nils

Gerçekten, kontrol edilmez.
yadutaf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.