Можно ли использовать macvlan на фиктивном интерфейсе?

Допустимо ли настроить контейнерную сеть таким образом:

  1. Создайте фиктивный интерфейс на хосте

    ip link add du0 type dummy
    
  2. Создал два контейнера с помощью systemd-nspawn, каждый из которых имеет интерфейс macvlan, привязанный к этому фиктивному интерфейсу.

    /etc/systemd/nspawn/proxy.nspawn и /etc/systemd/nspawn/apps.nspawn

    [Network]
    VirtualEthernet=no
    MACVLAN=du0
    

Я не могу найти подобный пример в Интернете, я хотел бы знать, хорошо ли использовать macvlan таким образом, или есть ли лучший способ для достижения моей цели.

Моя цель — создать контейнер, который работает как с прямым, так и с обратным прокси. Он будет иметь несколько прокси-серверов пересылки, которые используют разные интерфейсы VPN для подключения к разным странам или напрямую используют физический интерфейс. И все остальные контейнеры будут подключаться к этому прокси-контейнеру, каждое приложение будет выбирать соответствующий прокси для использования.

Чтобы подключить эти контейнеры, systemd-nspawn поддерживает несколько вариантов. Я хотел бы использовать macvlan, потому что он кажется самым легким (лучшая производительность) среди всех вариантов. Но я хочу убедиться, что контейнер не может подключаться к Интернету напрямую, вместо этого он должен использовать прокси-контейнер. Я не хочу привязывать интерфейс macvlan к физическому интерфейсу. Поэтому я создал фиктивный интерфейс на хосте и привязал интерфейс macvlan к этому фиктивному интерфейсу. Я только что протестировал его, и он работает, контейнеры могут пинговать друг друга.

1 ответ
1

Ответьте на мой собственный вопрос. Это действительно. Докер делает это на ipvlan.
https://docs.docker.com/network/ipvlan/#prerequisites

Если родительский интерфейс не указан или используется флаг —internal, для пользователя создается фиктивный родительский интерфейс типа netlink, который используется в качестве родительского интерфейса, полностью изолируя сеть.

Дополнительная информация о macvlan и ipvlan. macvlan должен работать быстрее, если интерфейс поддерживает более одного mac-адреса. На фиктивном интерфейсе или Raspberry Pi интерфейс переходит в неразборчивый режим только с одним интерфейсом macvlan, поэтому в этих сценариях лучше использовать ipvlan.

Оставь это

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *