Інтерфейс на основі Macvlan пінг з хоста, але не з простору імен


10

[EDIT]

В даний час виробнича система - це змішана фізична система та система на базі ESXi. Ми, очевидно, ніколи не будемо використовувати virtualbox навіть для попереднього виробництва! Тут він використовувався лише для швидкого звуження проблеми безпосередньо на моєму робочому столі.

Дякуємо за пояснення щодо "затриманого" на мета!

[/ EDIT]

Моя установка:

  1. Приватна мережа vboxnet110.0.7.0/24
  2. 1 Хост, робочий стіл ubuntu
  3. 1 VM, сервер ubuntu (VirtualBox)

Розміщення адреси:

  1. ХОСТ: 10.0.7.1
  2. ВМ: 10.0.7.101
  3. VM MAC ІМЕННЯ : 10.0.7.102

У програмі VMя запустив наступні команди:

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

У macпросторі імен всередині VM:

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

Так що ми в основному закінчуємо:

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

Що працює:

  • Пінг між HostіVM
  • Пінг між NSіNS
  • dhclient від NS

Що не працює:

  • ping між NSтаVM
  • ping між NSтаHost

Звідки я почав гаяти:

  • tcpdump на host(справжня машина) фактично показує запит ARP І відповіді
  • tcpdump NSпоказує ARP-запити, надіслані хосту
  • tcpdump на VMзмушує працювати весь безлад (!) -> ping починає отримувати відповіді, коли tcpdump запускається на VM?!?

Отже, я сумніваюся, що ви прагнули цього, моє питання: як змусити його працювати? Я підозрюю, що щось не так з ARP на macvlan всередині NS, але не можу зрозуміти, що саме ...

До речі, я робив ті ж пояснення з mac0інтерфейсом безпосередньо на VM (немає простору імен), і він працював бездоганно.


4
Я не розумію, чому це питання було позначено як поза темою. Це, безумовно, питання sysadmin / netadmin, що стосується декількох середовищ віртуалізації, і це не тривіально (або, якщо це так, 90% питань щодо StackOverflow також поза темою). Я хотів би, якби люди, які позначили це як "поза темою", намагалися пояснити чому, а не копіювати правило, яке тут очевидно не застосовується. Дякую!
jpetazzo

@jpetazzo Це не поза темою, і я можу припустити, що люди, які закривались, зробили це на основі поганої організації / подання питання (можливо, через те, що ОП не є адміністратором sys / net). Також сфера серверних помилок (не лише тема) відрізняється від переповнення стека - ваш аргумент змушує мене думати, що ви не відвідували наш довідковий центр, оскільки це не має сенсу.
Chris S

Відповіді:


13

Гаразд, для нащадків той факт, що tcpdump раптово спрацьовує, мав би привести мене до шляху. Те, що він робить внутрішньо, переходить eth0у розбещений режим. Тобто, eth0приведе весь мережевий трафік, не тільки той, що має основний серверMAC

Однак саме так і macvlanпрацює: він додає нову вторинну віртуальну MAC-адресу, яку "фізичний" (це VM) мережевий адаптер не знає.

Тож просте вирішення полягає в ручному: ifconfig eth0 promisc

Я сподіваюся, що це допомагає!


Тож вам довелося зняти прапорець "без режиму проспектів" і для цього віртуального комп'ютера?
Нілс

Дійсно, це не перевірено.
ядутаф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.