Docker MACVLAN работает только для исходящих - PullRequest
3 голосов
/ 25 февраля 2020

Я пытаюсь настроить MACVLAN для моих docker контейнеров. Я установил fre sh Raspbian и Docker и выполнил шаги, описанные в документации Docker, для создания MACVLAN: https://docs.docker.com/network/network-tutorial-macvlan.

Сеть выглядит следующим образом :

[
    {
        "Name": "pub_net",
        "Id": "782c49f79f549b11f04a6df98b8b2cbf52deef072e036306231309e44a1c9f3a",
        "Created": "2020-02-25T14:44:12.105402396+01:00",
        "Scope": "local",
        "Driver": "macvlan",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.178.0/24",
                    "Gateway": "192.168.178.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "682a47a60a5478d19b8c6fc923e11c949f70c5c07fe4dc8d94a772524c2820a1": {
                "Name": "IoBroker",
                "EndpointID": "5e7068dd9330792a91e1f1f023bd052d91d1fa93f50a2eb670ef8be81b61587f",
                "MacAddress": "02:42:c0:a8:b2:02",
                "IPv4Address": "192.168.178.2/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "parent": "eth0"
        },
        "Labels": {}
    }

Допустим, у меня есть альпийский контейнер, подключенный к этой сети. Внутри контейнера я могу получить доступ к inte rnet и ко всему в моей сети. Однако я не могу получить доступ к любому контейнеру внутри MACVLAN снаружи. Я знаю, что это обычно не работает с хоста, но я не пытаюсь получить доступ к контейнеру с хоста, а с другого компьютера в моей сети. IP-адрес контейнера недоступен извне.

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

Может быть, это * проблема с сетью Linux, чем Docker?

Docker Версия: 19.03.6 ОС : Raspbian Buster 10, версия ядра 4.19.97-v7 +

Будут ли идеи оценены по достоинству.

Ответы [ 2 ]

3 голосов
/ 02 марта 2020

Похоже, это проблема ARP в версии Linux Kernel, используемой в Raspbian. После обновления ядра через sudo rpi-update у меня теперь работает.

1 голос
/ 26 февраля 2020

на самом деле у меня та же проблема с пятницы на прошлой неделе.

Если я пингую хост, пытающийся получить доступ к контейнеру docker, изнутри контейнера (вашего альпийского контейнера), я могу получить доступ к контейнер снаружи, пока я не перезапущу сам контейнер.

Я знаю, что это не решение, но, возможно, помогает определить проблему.

Лучшая авиация

...