У мене працює сервер OpenVPN, який відкриває деякі приватні IP-адреси, я хотів би, щоб мої сервіси докерних роїв отримували доступ до цих адрес.
В ідеалі не було б клієнта OpenVPN "всередині" контейнерів, оскільки очікується, що зображення будуть розміщені в середовищі, де VPN не буде необхідним.
Що я намагався поки що
Я успішно підключив контейнер до моєї VPN із зображенням dperson / openvpn-client .
Я успішно запустив інший контейнер, використовуючи цей контейнер як свою мережу, використовуючи --net=container:my-vpn-client
прапор.
Зараз я намагаюся створити послугу докера, яка матиме доступ до моїх приватних IP-адрес, і що я знайшов:
- Я не можу запустити клієнт openVPN в службі, оскільки його не можна надати
cap-add: NET_ADMIN
. Існують відкриті проблеми з Докером, які обговорюють цю справу, але вони все ще відкриті. - Я зрозумів, що я можу змусити контейнер openVPN-клієнта запуститись "поруч" з кластером рій, але я не можу використовувати,
network_mode: "container:my-vpn-client"
оскільки він не підтримується і має сенс, оскільки я не міг змусити довільний контейнер бути присутнім на кожному вузлі рій, не будучи самою службою. - Я спробував створити підключену мережу (міст / накладення) і просто вставити в неї свій контейнер-клієнт OpenVPN і очікував, що інші члени цієї мережі чарівно пройдуть через цю трубу ... і я розчарувався.
Так ось я, будь-яка ідея?
PS Якщо це може допомогти, це головним чином для встановлення деяких автоматизованих тестів, які запускатимуть сервіси на одній докерній машині в режимі рій, як в рій init> стек розгортання> тести запуску> рой залишити. Тож якщо для цього є "хак" ... мені може бути цікаво;)
ccr
файл , як якщо б ви мали справу з локальною мережею. Як і у всіх маршрутизаторах TCP / IP, "traceroute
ваш найкращий друг, як цеtcpdump
або WireShark."