Как иметь несколько веб-серверов и IP-адресов в одной физической сети?

Как иметь несколько веб-серверов и IP-адресов в одной физической сети?

Я занимаюсь веб-разработкой в ​​небольшом офисе и мне нужно несколько физических и виртуальных серверов, к которым можно получить доступ из Интернета. У меня также есть несколько устройств (компьютеры, ноутбуки, планшеты, принтеры и т. д.), которым также нужны соединения. Я получил подсеть из 8 IP от своего интернет-провайдера, и хотя этого достаточно для веб-серверов, этого слишком мало для всего, что требует доступа к сети.

Мой маршрутизатор — ASUS RT-N16 с DD-WRT. Я достаточно умен в этой теме маршрутизации, чтобы быть опасным, представьте себе 2-летнего ребенка с волшебным маркером. Я хотел бы сохранить свою внутреннюю сеть NAT в сети 192.168.xx и направлять трафик 68.69.xx 255.255.255.248 напрямую на серверы. Физическая сеть состоит из маршрутизатора DD-WRT с 4 портами и неуправляемого коммутатора Gigabit Ethernet. У меня есть оптоволоконное соединение с офисом, которое работает как порт Ethernet. Другими словами, я могу подключить свой ноутбук напрямую к нему и получить доступ к Интернету. Нет логина или пароля, а маршрутизатор настроен на получение DHCP от интернет-провайдера и предоставление DHCP-адресов для внутренней сети.

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

У меня есть вопросы:

  1. Это лучший способ настройки сети?

  2. Как вы это делаете? VLAN? Несколько маршрутизаторов?

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

решение1

Chief first up, на этот вопрос лучше ответить на Serverfault.com, поскольку он ориентирован на бизнес-среду, а не на вопросы типа однопользовательской службы поддержки. Хотя это может быть обсуждено некоторыми. В качестве альтернативы вам нужно будет либо найти консультанта по сетевому инженеру, чтобы он спроектировал это для вас, либо прочитать кучу литературы по IP natting и маршрутизации vlan.

Вы можете сделать это несколькими способами в зависимости от вашего бюджета, но я бы рассмотрел решение Cisco, для маршрутизируемых VLAN и IP NAT (трансляция сетевых адресов). В этом сценарии у вас будет несколько VLAN, работающих на коммутаторе Cisco (можно использовать коммутатор уровня 2 и заставить маршрутизатор маршрутизировать VLAN или уровень 3 ко всему этому за вас) и маршрутизатор Cisco, который будет заботиться о NAT для всех ваших внешних IP-адресов на ваши внутренние адреса и VLAN. При настройке IP NAT на маршрутизаторах Cisco вы ограничиваете доступ, настраивая ACL, и будете маршрутизировать в VLAN с помощью тегирования dot1q.

Вот пример дизайна, который будет иметь:

1-2 Публичный IP-адрес, преобразованный в частный IP-адрес Vlan 2 (ноутбуки, планшеты и т. д.) 1-2 Публичный IP-адрес, преобразованный в этап Vlan 3 (этап тестовой среды) 2-6 Публичные IP-адреса, преобразованные в веб-серверы Vlan 4

Удачи..

решение2

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

решение3

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

По сути, внешние DNS-запросы отправляются на ваши внутренние DNS-серверы в вашей сети. Как только это произойдет, браузеры будут отправлять HTTP-запросы через шлюз NAT, чтобы быть перехваченными обратным прокси-сервером, который затем анализирует домен из заголовков, разрешает связанные имена внутри и пересылает запрос на нужный сервер.

решение4

Учитывая то, что я здесь вижу, есть несколько вещей:

  • Перенаправьте порт 80 статических IP-адресов на те серверы, которые достаточно исправны, чтобы это оправдать.
  • Для случайного доступа к внутреннему устройству любой из ваших статических IP-адресов может использоваться в качестве выходного IP-адреса NAT. Лучше всего зарезервировать один IP-адрес только для этого по соображениям репутации IP-адресов, но при наличии всего 6 пригодных для использования IP-адресов это может быть неразумно.
  • Для создания особых снежинок вы можете проявить большую креативность.HAProxyconfigs. Вы можете настроить правила на основе имени сервера (предполагается, что SSL не задействован), которые затем маршрутизируют на настроенные внутренние серверы на основе этого имени. Что-то вроде vhosts, но обрабатываются на уровне прокси, а не самого веб-сервера.

Примечание: вот почему IPv6будущее, эта проблема как бы уходит. Но сейчас это вам не поможет (если, конечно, у ваших клиентов нет поддержки v6).

Ваша конфигурация выглядит вполне нормальной для небольшого офиса.

Связанный контент