Docker настройка сети, с различными типами сети и доступностью - PullRequest
0 голосов
/ 14 января 2020

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

Не знаю Я не ожидаю законченного решения, но, к сожалению, я не знаю, где и как начать, или какие есть возможности.
Я также не знаю, является ли stackoverflow подходящим местом для моего вопроса, но я хотел бы попробовать это здесь. Я работаю с Docker в университете около года и провожу несколько небольших тестов на своем ноутбуке (так что я не эксперт XD). Между тем я действительно энтузиаст c о системе и хотел бы модернизировать или расширить свою инфраструктуру дома.

Я хотел бы создать домашнюю среду, как показано на графике c (Docker Хост - это BananaPi M2 + с подключением Armbian и WiFi + Lan).

The planned docker network setup

Левая часть Docker Хост уже существует. К сожалению, у меня нет таких возможностей, как VLAN в моей сети.

Что я уже выяснил, так это то, что Docker имеет различные типы сетей (мост, хост мне понятны [я надеюсь), остальное я только частично или совсем не поняли). Моя цель - построить 3 сети (возможно, 4) для разных типов контейнеров, поэтому мне нужно только дать контейнерам соответствующий сетевой интерфейс и не нужно каждый раз настраивать конфигурацию.

Что я хочу:

  • Сеть 1 (мост), здесь я хочу подключить все контейнеры, которым разрешено входить в сеть без ограничений. Но я не уверен, если это хорошая идея, потому что это возможный риск (кто знает, что все в контейнерах, паранойя XD). В любом случае я перенаправлю необходимые порты на хост Docker. Мой план состоит в том, чтобы запускать контейнеры для NAS, OpenVPN (сервер), PiHole, то есть контейнеров, которые предоставляют услуги для LAN / WiFi.
  • Сеть 2 (неизвестный тип) должна содержать контейнеры, которым разрешено общаться только внутри их сеть! Поэтому ни хост, ни Inte rnet, ни участники в LAN / WiFi не должны быть доступны. Если для контейнера требуется доступ rnet, он должен быть назначен дополнительной сети (3).
  • Сеть 3 («мост»), должна содержать только один контейнер, шлюз VPN. Этот VPN-шлюз используется для установления sh соединения с провайдером VPN, а затем делает его доступным для других участников Wi-Fi / LAN / Docker в качестве шлюза, например, общего доступа rnet в Windows ( вещь вообще возможна?). WiFi / LAN будет иметь доступ всегда, контейнер только если он был добавлен в сеть. Я подумал, что имеет смысл разрешить начальное соединение только в одном направлении. Но я не уверен, что все еще можно скачать GitHub / Kaggle?

Теперь вопрос в том, как я могу это реализовать, или вообще возможно реализовать что-то подобное?
My Первой мыслью был брандмауэр (тоже как контейнер тогда?). Но куда мне его положить, в сетях docker или на хосте? Буду благодарен за любой совет.

Я знаю, что некоторые услуги могли бы быть лучше в DMZ, но на данный момент это не вариант. Также было бы здорово, если бы изменения были сделаны только на хосте Docker или позади него (за исключением возможных выпусков портов на маршрутизаторе). Таким образом, я могу продолжать использовать настройки при изменении инфраструктуры (например, при переходе на новую квартиру) без необходимости вносить новые конфигурации.

В настоящее время я использую Portainer для управления хостом Docker.

Спасибо за вашу помощь.

...