Рейтинг:0

Может ли группа виртуальных машин, каждая со своим общедоступным IPv4-адресом, имитировать нахождение в частной подсети, и если да, то как я могу интегрироваться с существующей сетью?

флаг in

TLDR;Краткий обзор

Можно ли организовать группу виртуальных машин, каждая со своим общедоступным IPv4-адресом, чтобы имитировать нахождение в частной подсети, и если да, то как я могу подключить эти серверы к остальной части моей сети?

Текущая конфигурация

  • 10.0.0.0/24 AWS Орегон — общедоступный

  • 10.1.0.0/24 AWS Орегон — частный

  • 10.52.5.0/24 Дом, Сан-Диего

  • 10.62.5.0/24 Дом, Лас-Вегас

В общедоступной сети AWS есть сервер OpenVPN. И в Сан-Диего, и в Лас-Вегасе есть свои собственные выделенные клиенты OpenVPN, которые подключаются к этому серверу AWS. Благодаря использованию этой настройки VPN «точка-точка» любая виртуальная машина в моей сети может общаться с любой другой виртуальной машиной без помех NAT. Все работает безупречно.

Проблема

Меня попросили доказать, что разработанное мной веб-приложение, которое в настоящее время работает в AWS Oregon, может так же успешно работать за пределами экосистемы AWS.

— Нет проблем, — говорю я. Итак, я арендую пять серверов у швейцарского поставщика и готовлюсь подключить эти серверы к своей сети.

Я предполагаю, что мое предположение заключалось в том, что SwissVendor предоставит мне пять серверов и разместит их во внутренней сети по моему выбору (например, 10.72.5.0/24, gw:.1) и, возможно, предоставит мне общедоступный (то есть «эластичный?») IP-адрес. просверлить мой путь снаружи. Затем я выбираю один из пяти серверов в качестве своего OpenVPN-клиента, указываю его на свой сервер AWS Oregon OpenVPN и, бум, швейцарские серверы теперь доступны из любой точки моей сети.

Однако, к сожалению для меня, в SwissVendor все работает иначе. Вместо этого каждый из пяти серверов имеет свой собственный общедоступный IP-адрес, и, кроме того, нет никакой гарантии, что эти IP-адреса находятся даже в одной подсети. Итак, я закончил с чем-то вроде:

  • Сервер 1: 11.11.11.11/24

  • Сервер 2: 22.22.22.22/24

  • Сервер 3: 33.33.33.33/24

  • Сервер 4: 44.44.44.44/24

  • Сервер 5: 55.55.55.55/24

Порт RDP 3389 открыт для всего мира на каждом сервере, что позволяет клиенту получить доступ через предварительно общий административный пароль. Все остальные входящие соединения блокируются брандмауэром сервера, который включен по умолчанию. Именно так SwissVendor предоставляет свои серверы таким клиентам, как я. Я не могу это изменить.

Моя цель

Здесь все сложно описать, так как я любитель, а не профессионал. В моем идеальном мире:

  • Каждый из швейцарских серверов, в дополнение к собственному реальному общедоступному адресу, также будет иметь своего рода искусственный/виртуальный сетевой адаптер во внутренней сети 10.72.5.0/24.
  • Серверы смогут взаимодействовать друг с другом на высокой скорости практически с нулевой задержкой. [Можно предположить, что каждый из швейцарских серверов находится в одном и том же физическом шкафу и действительно может располагаться на одном и том же физическом оборудовании!]
  • Один из серверов будет действовать как клиент OpenVPN, подключенный к моему серверу AWS OpenVPN, который эффективно подключит 10.72.5.0/24 к моей сети, сделав каждый из этих серверов доступным для остальной части моей сети, но не для Интернета. и без помех NAT.

Я не совсем понимаю, как это осуществить, и возможно ли это вообще. Вот два подхода, которые я рассматривал, но в конечном итоге исключил:

Неудачная идея № 1: каждый сервер действует как клиент OpenVPN

Я мог бы отказаться от идеи иметь выделенный клиент OpenVPN в швейцарской сети. Вместо этого каждый швейцарский сервер будет запускать свой собственный клиент OpenVPN, предоставляя каждому свой дополнительный IP-адрес. Таким образом, в дополнение к общедоступному IP-адресу каждый сервер также будет иметь виртуальный IP-адрес, вероятно, в соответствии с линиями 10.8.0.0/24.

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

Проблема в том, что для того, чтобы пакет попал от SwissServer1 к SwissServer2, он должен пройти весь путь до Орегона и обратно, что крайне неэффективно, учитывая, что и SwissServer1, и SwissServer2 живут на одной физической машине. Напомним, что мне нужна быстрая связь с малой задержкой между швейцарскими серверами.

Неудачная идея № 2: швейцарские серверы обмениваются данными, используя свои общедоступные адреса

Я мог бы просто разрешить швейцарским серверам общаться между собой, используя их соответствующие общедоступные IP-адреса. Это, безусловно, решит проблему задержки.

Основная проблема, которую я предвижу в этом подходе, заключается в том, что, поскольку IP-адрес каждого швейцарского сервера является общедоступным и, следовательно, открыт для Интернета, мне нужно быть ДЕЙСТВИТЕЛЬНО осторожным при настройке правил брандмауэра для каждого сервера. Например, если SwissServer1 хочет использовать общий доступ к файлам с SwissServer2, мне нужно точно знать, какие порты используются для этого, и открывать только эти порты и только для SwissServer1. Если я сделаю одну маленькую ошибку, я могу в конечном итоге выставить этот файлообменник в общедоступный Интернет.

Также возникает вопрос, как правильно подключить эти машины к остальной части моей сети. Так что я тоже считаю этот подход неудачным.

Куда отсюда?

Я исследовал это и не могу понять правильный подход. Я думаю, что я ищу что-то, называемое «мостом», и я думаю, что OpenVPN может поддерживать это, но я не уверен. Насколько я понял из своих обширных исследований в Википедии и Reddit, использование технологии моста может позволить пяти швейцарским серверам действовать так, как будто они находятся в какой-то одной сети, например, 10.52.7.0/24, тем самым облегчая быструю связь между этими одноранговыми узлами. . Но тогда что? Как мне сделать 10.52.7.0/24 доступным для остальной части моей существующей сети?

Все серверы работают под управлением Windows 2019 Server или Windows 2022 Server.

Любые советы приветствуются!

флаг pl
Несколько провайдеров предлагают программное обеспечение VPN, в котором все ваши конечные точки подключаются обратно к вашему центральному серверу, но когда им необходимо напрямую общаться друг с другом, центральный сервер помогает им открыть временное VPN-соединение непосредственно между ними. Это, вероятно, то, что вы хотите, но это, вероятно, будет очень дорого.
флаг us
Можно ли настроить брандмауэры или нет? Сначала вы говорите, что брандмауэр разрешает только порт RDP, а затем вы говорите, что брандмауэры должны быть настроены.
флаг in
@TeroKilkanen Швейцарский поставщик услуг не использует собственный брандмауэр. Брандмауэр, о котором я говорю, встроен в Windows. Когда поставщик предоставляет клиенту новый сервер Windows, он активирует брандмауэр Windows на этом сервере и настраивает его таким образом, чтобы блокировались все входящие подключения, за исключением RDP. Они должны оставить RDP (3389) незаблокированным, чтобы клиент мог получить доступ к серверу, за который он платит.
флаг us
Затем вам нужно добавить дополнительные правила брандмауэра, чтобы разрешить трафик VPN.
Рейтинг:0
флаг in

Дополнительная подсеть

Возможно, вы сможете попросить поставщика VPS также иметь внутреннюю подсеть. Однако это просто дополнительная работа. (это будет добавлено к существующим интерфейсам)

Общедоступные IP-адреса

Было бы лучшим подходом, запросить IPv6, и вы сможете получить известную подсеть, с которой вы можете справиться.

Использование VPN

Настройте локальный VPN-сервер, к которому все они подключаются, это даст им быстрый доступ друг к другу. В то же время настроить ссылки на вашу существующую сеть для доступности.

Это означает, что все машины, кроме одной, будут иметь двойных клиентов, на этой одной машине будет сервер и клиент. С некоторой интеллектуальной маршрутизацией вы можете даже иметь избыточность.

флаг in
Спасибо за ответ. Похоже, мне не разрешено голосовать за ваш комментарий. В любом случае, когда вы говорите о настройке локального VPN-сервера, этот сервер будет работать в режиме «моста», верно? Не понимал, что сервер OpenVPN может действовать как сервер и клиент одновременно. Спасибо что подметил это.
флаг in
Он просто создаст локальную отдельную сеть, без моста, без маршрута по умолчанию. Вы будете запускать 2 экземпляра, один сервер, один клиент, полностью отдельные.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.