Настройте контейнер Windows в качестве маршрутизатора NAT

Предисловие: аналогично этому сообщению , но нужно специальное решение для Windows.

Мне нужно направить трафик из кластера контейнеров Windows через другой контейнер Windows в том же кластере. Цель состоит в том, чтобы исходящий трафик для этих контейнеров направлялся на пограничный маршрутизатор с тем же исходным IP-адресом, что позволит применять существующие политики маршрутизации, которые могут отличаться от политик IP-маршрутизации хоста. Контейнер, через который я хочу маршрутизировать, будет иметь собственный статический IP-адрес во внешней сети хоста (через).

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

Я попытался настроить RRAS в контейнере ядра сервера, однако постоянно получал ошибку об исходных файлах, что приводило меня к непродуктивной кроличьей норе (указывая Source на install.wim и т. д.).

      PS C:\> Install-WindowsFeature RemoteAccess

Install-WindowsFeature : The request to add or remove features on the specified server failed.
Installation of one or more roles, role services, or features failed.
The source files could not be found.
Use the "Source" option to specify the location of the files that are required to restore the feature. For more
information on specifying a source location, see http://go.microsoft.com/fwlink/?LinkId=243077. Error: 0x800f081f
At line:1 char:1
+ Install-WindowsFeature RemoteAccess
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (@{Vhd=; Credent...Name=localhost}:PSObject) [Install-WindowsFeature],
    Exception
    + FullyQualifiedErrorId : DISMAPI_Error__Failed_To_Enable_Updates,Microsoft.Windows.ServerManager.Commands.AddWind
   owsFeatureCommand

Я также попытался настроить ICS , но также столкнулся с ошибками при создании com-объекта. Пробовал копировать соответствующие библиотеки DLL (), но так и не смог заставить его работать.

      PS C:\> regsvr32 hnetcfg.dll /s
PS C:\> $m = New-Object -ComObject HNetCfg.HNetShare
New-Object : Retrieving the COM class factory for component with CLSID {00000000-0000-0000-0000-000000000000} failed
due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
At line:1 char:6
+ $m = New-Object -ComObject HNetCfg.HNetShare
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [New-Object], COMException
    + FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand

Поскольку я использую контейнеры Windows, я думаю, что у меня немного меньше гибкости по сравнению с использованием контейнера Linux, поэтому ищу решение, которое будет работать в контейнере Windows, если это возможно.

Обратитесь к моему существующему сообщению (которое было закрыто без объяснения причин), ПОЧЕМУ мне нужно это сделать, а также к более подробной информации о моей инфраструктуре.

0 ответов

Другие вопросы по тегам