Используйте WAN как внутреннюю сеть
Предположим, у меня есть небольшая веб-инфраструктура для обслуживания клиентов, которая содержит nginx в качестве внешнего сервера, пару бэкендов (upstreams), систему обмена сообщениями, db и так далее.
Этот материал расположен на двух выделенных серверах. Между серверами есть локальная сеть, и каждый сервер имеет хотя бы один публичный IP-адрес. И все публичные адреса находятся в одном и том же сегменте вещательной сети (подключены через коммутатор или в VLAN - не имеет значения). Задержка в обеих этих сетях одинакова.
И у меня есть два варианта связи между частями этой системы: использовать локальные IP-адреса во всех конфигах или вместо них использовать публичные IP-адреса. В первом случае у меня будет немного более сложная инфраструктура (вызванная двумя сетями). Во втором случае моя система будет более прозрачной, но я беспокоюсь о конфиденциальности сетевых коммуникаций.
Существуют ли какие-то правила или лучшие практики для использования того или иного подхода?
1 ответ
Используйте вторую сеть для внутренней связи. Вы уменьшаете поверхность атаки на общедоступных интерфейсах и можете гораздо легче контролировать / регулировать связь. Вы определенно не хотите открывать порты базы данных, сервер обмена сообщениями или что-либо еще для публики. На самом деле, не размещайте ничего, кроме самого внешнего сервера (nginx), в пределах досягаемости общественности.
Вы не хотите, чтобы ваша система была прозрачной для пользователей. Вы хотите, чтобы ваша система была таинственным черным ящиком с небольшим глазком во внешний мир для необходимого взаимодействия.