Flannel: Маршруты за пределами Flannel Networks и NAT

Созданный на 2 нояб. 2014  ·  3Комментарии  ·  Источник: coreos/flannel

Привет, Это проблема с запросом на функцию.

Я хочу запустить контейнер с оверлеем, поддерживаемым vxLAN. Но для пунктов назначения за пределами оверлея я хочу использовать NAT для контейнера, например, в общедоступном Интернете.

Я вижу три способа сделать это:

  • Второй сетевой интерфейс : используйте Flannel для наложения, но затем создайте второй сетевой интерфейс, который больше похож на Docker NAT по умолчанию для контейнера. Тогда трафик на оверлей по-прежнему идет через фланель, а маршрут по умолчанию на втором netdev обрабатывает интернет-трафик.
  • Настройка NAT для Flannel : параметр конфигурации для Flannel, добавляющий маршруты по умолчанию для выхода за пределы оверлея, а при выходе из оверлея попросите Flannel настроить NAT.
  • Создайте шлюзы vxLAN : создайте контейнер или машину с фланелевым интерфейсом и другим сетевым устройством для NAT (или что-то в этом роде). Настройте маршрут по умолчанию в других контейнерах для прохождения через этот экземпляр NAT.

Мысли? Это входит в рамки или выходит за рамки фланели?

Самый полезный комментарий

Уже есть вариант, который делает что-то очень похожее на 2. Если вы запустите flanneld с --ip-masq , он добавит правило IP Masquerade для трафика, который выходит из контейнеров и направляется в Интернет. Точнее, это трафик, исходящий из оверлейного адресного пространства, но направленный за его пределы.

Опция недокументирована (нужно это исправить), так как я ждал, пока Docker объединит мое добавление --ip-masq с демоном Docker. Это позволяет запускать демон Docker с --ip-masq=false и flanneld с --ip-masq . В противном случае Docker также устанавливает правило маскировки IP для трафика, исходящего из docker0.

Недавно выпущенный Docker 1.3 имеет опцию --ip-masq .

Все 3 Комментарий

Второй вариант кажется разумным. Я чувствую, что мы можем положиться на systemd-networkd для настройки этого сетевого маршрута после того, как мы поднимем фланелевый мост.

У @eyakubovich , вероятно, есть мнение по этому поводу.

Уже есть вариант, который делает что-то очень похожее на 2. Если вы запустите flanneld с --ip-masq , он добавит правило IP Masquerade для трафика, который выходит из контейнеров и направляется в Интернет. Точнее, это трафик, исходящий из оверлейного адресного пространства, но направленный за его пределы.

Опция недокументирована (нужно это исправить), так как я ждал, пока Docker объединит мое добавление --ip-masq с демоном Docker. Это позволяет запускать демон Docker с --ip-masq=false и flanneld с --ip-masq . В противном случае Docker также устанавливает правило маскировки IP для трафика, исходящего из docker0.

Недавно выпущенный Docker 1.3 имеет опцию --ip-masq .

Спасибо, это работает для нас!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги