Контейнер обратного прокси Docker в мостовой сети, указывающий на контейнер в сети Macvlan - PullRequest
0 голосов
/ 18 сентября 2018

в первую очередь: я знаю об этом: Невозможно получить доступ к контейнерам докеров с хоста через сеть Macvlan

Я использую настройку хоста с одним докером (не боюсь, но этоне имеет значения).

По разным причинам я использую контейнер почтового сервера (poste) в сети macvlan, так как мне нужно иметь ip в локальной сети (межсетевой экран, фильтрация спама, эксперименты).Контейнер почтового сервера также содержит веб-сервер и webui.Я также хочу, чтобы мой контейнер обратного прокси-сервера (в сети docker0) указывал на webui моего почтового сервера.

Есть ли обходной путь для этого, если не использовать 2 сети, добавленные в мой контейнер почтового сервера?Например, добавив маршрут?В настоящее время я использую вторую сеть в качестве решения для моей ситуации.Таким образом, запустив # docker network connect docker0 containername после запуска контейнера, где docker0 - внутренняя сеть докеров 172.17.0.0/16.

Однако, это создает некоторые проблемы безопасности, imho.хотя я мог бы, вероятно, ограничить доступ через мостиковую сеть к почтовому контейнеру только обратным прокси-контейнером?

У меня есть другой путь для изучения, когда я использую второй адаптер eth на хосте

сетевые адаптеры хоста:

  • eth0: 10.10.0.16/16
  • eth1: 10.10.0.17/16

Когда я делаю # docker network inspect br0, это результат.br0 - это имя сети Macvlan.

[
    {
        "Name": "br0",
        "Id": "beb3548b7a4a4fdaba6c3fa2771ea7a8511d44b0e2545abc9b2f7d8ed922",
        "Created": "2018-03-09T17:48:09.444567623+01:00",
        "Scope": "local",
        "Driver": "macvlan",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.10.0.0/16",
                    "Gateway": "10.10.0.99",
                    "AuxiliaryAddresses": {
                        "server": "10.10.0.16"
                    }
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "1c215b70764d198ce95b702f49b1f263a7a68a308f13db2907921d8bd4d9": {
                "Name": "poste",
                "EndpointID": "7d560d531e4f88472b7cbf96b5f460964bf12bdd478f88840475732215ff",
                "MacAddress": "02:42:0a:0a:20:f2",
                "IPv4Address": "10.10.32.242/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "parent": "br0"
        },
        "Labels": {}
    }
]

И тогда я могу использовать

# ip link add link eth1 dev eth1m type macvlan mode bridge
# ip link set eth1m up
# ip route add 10.10.32.242 dev eth1m

Теперь я могу пинговать / связываться с контейнером (даже когда подключена только сеть Macvlan).), от хозяина.Проблема в том, что я до сих пор не могу дозвониться до 10.10.32.242 из моего контейнера обратного прокси-сервера (который, как сказано, находится в сети docker0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...