Несколько контейнеров LXD на одном интерфейсе Macvlan

Я немного озадачен тем, как работает следующий сценарий. Это очень простая настройка, поэтому я надеюсь, что объяснение простое.

У меня есть хост с одним физическим NIC. Я создаю единственный подчиненный интерфейс macvlan в режиме моста от этой физической сетевой карты. Затем я запускаю два контейнера LXD/LXC. Каждый со своими уникальными MAC и IP, но в профиле я указываю тот же единственный подчиненный интерфейс macvlan, что и родительский интерфейс каждого контейнера.

Оба контейнера имеют доступ к сети без проблем. Я также могу использовать SSH в каждом контейнере, используя уникальный IP-адрес каждого контейнера. Это то, что смущает меня:

Как все это работает под капотом? Оба контейнера используют один macvlan MAC/IP при доступе к внешнему миру. Не будет ли какое-то столкновение? Разве это не должно работать? Разве мне не нужен один подинтерфейс macvlan для каждого контейнера? Здесь происходит какой-то NAT?

Macvlan не очень хорошо документирован, надеясь, что кто-то там может помочь.

1 ответ

Не существует NAT, скажем так, как на уровне IP - MAC являются канальным уровнем, но это аналогичный результат.

Все MAC-адреса (NIC и macvlan) будут маршрутизироваться через один и тот же канал, который идет к NIC. Драйвер устройства NIC затем направит трафик на правильный интерфейс (виртуальный или нет), который доставит его одному из гостей или хосту. Вы можете думать о Macvlan как о виртуальных коммутаторах.

Другие вопросы по тегам