Возможно ли, чтобы некоторые компьютеры в сети имели свои собственные общедоступные IP-адреса и обслуживали контент через Интернет, в то время как другие компьютеры в той же сети имеют только частные IP-адреса, но при этом могут делать запросы через Интернет (например, домашний компьютер бы через роутер)?
У меня есть группа из 15 серверов (и доступно только 12 публичных IP-адресов)
2 сервера:
13 серверов:
9 из этих серверов являются серверами баз данных (им не нужно делать запросы к API, но было бы неплохо иметь возможность использовать Teamviewer в них)
IPv6 имеет множество IP-адресов, поэтому у всех будет общедоступный IPv6-адрес, так что я так понимаю, вы говорите об IPv4. IPv4 допускает тип маршрутизации, называемый преобразованием сетевых адресов (NAT), который позволяет нескольким частным IP-устройствам использовать общедоступный Интернет с одним общедоступным IPv4-адресом на маршрутизаторе.
Никаких причудливых переключателей не нужно, подойдет простой переключатель. Маршрутизатор - это то, что решает, на какой MAC-адрес отправлять пакеты и нужно ли выполнять NAT-маршрутизацию.
Если вы используете общедоступные IP-адреса на любом из ваших серверов. На одном или обоих серверах балансировки нагрузки вам необходимо иметь два IP-адреса, публичный и внутренний, желательно для каждого отдельного ниша. Он / они могут бежать Squid в режиме балансировки нагрузки обратного прокси и они будут общаться с реальными веб-серверами, у которых есть частные IP-адреса, для получения и обслуживания контента.
При этом вам даже не нужно иметь общедоступные IP-адреса ни на одном из ваших серверов, только на вашем маршрутизаторе, и он может решить, на какой из ваших частных IP-адресов отправлять пакеты, и может обеспечить маршрутизацию NAT для всех ваши внутренние серверы IP-адресов, чтобы они могли использовать Интернет.
Изменить: каждый запрос http / https и, если на то пошло, пакет tcp, включают исходный IP-адрес и исходный порт запроса. Каждый запрос http / https также включает запрашиваемое имя веб-сайта. На основе этой информации балансировщик нагрузки имеет в своей конфигурации список IP-адресов, с которыми он может связаться для выполнения запроса. В зависимости от IP-адреса машины, с которой он пытается установить связь, таблица маршрутизации ОС определит, с каким nic будет связываться.
Да, это возможно.
Есть несколько подходов.
Если ваш провайдер предлагает IPv6, сделайте серверы, которые должны быть общедоступными, двойным стеком и сделайте серверы, которые не должны быть общедоступными, только IPv6. Если частным серверам требуется доступ только к ресурсам IPv4 в Интернете, вам нужно будет использовать NAT64 / DNS64 для предоставления доступа к Интернету IPv4, если ваш провайдер особенно рассчитывает на то, что он может предоставить это для вас, или вам, возможно, придется запускай сам.
Иметь общедоступную подсеть и частную подсеть, а существующий шлюз-маршрутизатор для сети должен выполнять маршрутизацию между двумя подсетями и NAT между частной подсетью и Интернетом. Для этого необходимо, чтобы существующий маршрутизатор имел достаточно гибкую поддержку NAT (Linux может это сделать, не уверен в других реализациях)
Имейте общедоступную подсеть и частную подсеть и используйте одну из ваших собственных машин для обеспечения NAT, чтобы частные машины могли получить доступ к Интернету. Либо настройте маршрутизацию, чтобы общедоступные и частные машины могли видеть друг друга, либо назначьте IP-адреса общедоступным машинам в обеих подсетях.
Если у вас есть общедоступный веб-сайт с серверной частью базы данных, я бы порекомендовал вам как минимум использовать специальный брандмауэр. Базовая настройка - это то, с чего начать, и ее можно использовать при необходимости:
Вам также понадобится коммутатор для обеспечения физических подключений всех серверов ... По сути, подключите Интернет к внешнему интерфейсу межсетевого экрана. Внутренний интерфейс межсетевого экрана для коммутатора, затем все серверы на коммутатор.