Здесь у меня есть несколько (возможно, немного разные) вопросы, но связанные друг с другом, поэтому я предпочел задать их в одном вопросе.
Я пытался разрешить своим клиентам OpenVPN (OpenVPN настроен в режиме моста) подключаться к контейнерам Docker.
Как известно, все контейнеры Docker связаны друг с другом через мост (docker0
мост или что нибудь).
Я всегда использовал свой мост (br0
) на моем домашнем сервере, где я настраиваю Docker для использования этого моста (br0
), и я соединяю интерфейс OpenVPN (tap0
) на этом мосту, а мой физический интерфейс (eth0
), который подключен через локальную сеть к моему домашнему маршрутизатору. И это всегда работало для меня, и все клиенты OpenVPN всегда могли получить доступ к каждому контейнеру Docker, подключенному через мост. br0
(как клиенты OpenVPN, так и контейнеры Docker имеют IP-адреса в моем диапазоне LAN).
Пару дней назад я арендовал VPS, где мой физический интерфейс напрямую подключен к Интернету (у него уникальный публичный IP).
Я сделал то же самое, что и раньше (настроил Docker на использование моего br0
для всех контейнеров) и я подключил OpenVPN tap0
на br0
.
Проблема, с которой я столкнулся, заключается в том, что мой клиент OpenVPN НЕ смог выполнить ping или получить доступ к любому из контейнеров Docker (контейнеры могли пинговать и получать доступ к другим контейнерам Docker, но НЕ клиенту OpenVPN), и клиенты НЕ могли пинговать каждый другие тоже.
Есть ли в этом что-нибудь, к чему у меня нет физического интерфейса? Если да, мне было интересно, почему я должен соединить интерфейс моего сервера (возможно, подключенного к любому маршрутизатору через LAN) в дополнение к интерфейсу OpenVPN TAP, чтобы получить функциональный OpenVPN в режиме моста?
И эта проблема вызвала у меня еще один связанный с этим вопрос: пока клиенты в любом случае являются частью tap0
интерфейс, почему они не могут просто получить доступ друг к другу, не выходя по какой-либо причине из интерфейса TAP. Какую роль играет мой физический интерфейс?
Если моя проблема действительно связана с отсутствием физического интерфейса, подключенного к мосту, как я могу заставить OpenVPN полностью функционировать в режиме моста без этого физического интерфейса (или, по крайней мере, может быть любое решение для этого, если мой физический интерфейс подключен напрямую к интернет без локальной сети)?
Я надеюсь, что кто-нибудь поможет мне заставить этот OpenVPN работать
После просмотра некоторых видео у меня все еще возникает вопрос, было ли у меня два TAP
интерфейсы, каждый из них сопоставлен с одним virtualbox
система. tap0 -> vb0
, tap1 -> vb1
, и оба tap0 and tap1
связаны с мостом br0
(который не подключен к какому-либо физическому интерфейсу), только tap0
и tap1
соединены вместе, будет vb0 and vb1
смогут пинговать друг друга? (Меня сейчас не интересуют никакие внешние связи). В соответствии с @shodanshok ответь, НЕТ, не будут, верно? до сих пор я не могу точно понять, почему они не могут, не могли бы вы объяснить этот момент более подробно?
OpenVPN tap
интерфейс работает на уровне 2 модели ISO / OSI и поэтому потребности подключение уровня 2 (читай: мост / коммутатор) к основному реальному интерфейсу.
Я настоятельно рекомендую вам перенастроить соединение OpenVPN для использования tun
интерфейсы, которые, работая на более высоком уровне (уровне 3) стека, не нуждаются в мостовом соединении с основным интерфейсом (скорее, они маршрутизируют пакеты, как указано в таблице маршрутизации).
Взгляните на раздел "серверный мост" на страница руководства openvpn Чтобы получить больше информации.
Хорошо, после множества экспериментов теперь я могу ответить на свой вопрос и поделиться своим опытом:
br0
на linux), чтобы иметь возможность запускать OpenVPN
в режиме моста?Нет! Я всегда думал обратное, но сейчас могу подтвердить это, как только вы настроите свой OpenVPN
правильно можно подключить все свои OpenVPN
клиентов напрямую, и они будут в своей собственной изолированной сети. Т.е. tap0
интерфейс не является частью какого-либо моста. Соответственно, нет необходимости в каком-либо физическом интерфейсе, соединенном с tap0
, только tap0
с правильно настроенным OpenVPN
сделаю свою работу!
Проблема была на самом деле на стороне клиента! Я всегда использовал это OpenVPN
клиенты все в мой диапазон IP-адресов LAN, поэтому никаких дополнительных брандмауэр настройки были необходимы, но теперь диапазон IP-адресов другой (сеть представляет собой новую изолированную сеть), поэтому брандмауэр Windows всех клиентов просто отбрасывал все пинги от других клиентов, когда я отключал его (или разрешал для своих OpenVPN
Диапазон IP пула) для подключения все работало отлично!
tap0
и подключитесь к контейнерам из вашего OpenVPN
клиенты?Да! Я просто использовал очень простую конфигурацию (маска сети и диапазон IP были одинаковыми), маска сети /24
, и все было очень просто, просто чтобы убедиться, что все работает, и все действительно работает!