У меня есть виртуальная машина CentOS 7, работающая strongSwan , которая устанавливает VPN-туннель между нашей локальной сетью и Google Compute Engine ( Google Cloud VPN ). Это делает локальные машины в локальной сети доступными для экземпляров GCE и наоборот.
Я бы хотел запустить strongSwan в контейнере Docker вместо требовательной к ресурсам виртуальной машины. Однако я почти уверен, что не могу сообщить контейнеру о нашей локальной сети и, следовательно, не заставить экземпляры GCE обращаться к машинам в нашей локальной сети (и наоборот), поскольку туннель VPN будет создан только между сетью контейнера и сетью Google.
Я прав, или этого можно как-то достичь?
strongSwan использует IPsec в туннельном режиме, который (в Linux) требует загрузки и использования нескольких модулей ядра . Загрузка модуля и его настройка - это не то, что вы можете сделать внутри обычного контейнера. Вы можете обойти это, сделав контейнер привилегированным и используя сеть в режиме «хоста», чтобы контейнер мог видеть туннель, который он создает ( docker run --privileged --net = host
), но по сути это отключает изоляцию между контейнером и его хостом, поэтому, вероятно, это не то, что вам нужно.