Справка по сетевым системам: Как перенаправить внешний запрос по имени хоста на внутренний IP-адрес?

Добро пожаловать на мой первый вопрос о переполнении стека.

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

ИНФОРМАЦИЯ:

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

У нас есть:

  • SQL-сервер
  • Сервер приложений
  • Файловый сервер
  • A Web Server
    • multiple web services
    • основной сервер команды
    • обмен точками обслуживания
  • 5 рабочих столов

все в нашей внутренней сети.

Также у нас есть: - Нет контроллера домена - Нет внутреннего DNS/NAT/DHCP сервера.

В настоящее время мы используем маршрутизатор для DHCP и переадресации портов. Сегодня нам присвоили статический IP.

ВОПРОС:

Что мне нужно настроить, чтобы наши внешние домены/поддомены указывали на наш новый статический IP-адрес и чтобы эти запросы направлялись (по используемому имени хоста) на определенный сервер?

Текущая конфигурация (переадресация портов)

ourdomain.com:1234 -> router/port-forwarding -> SQL Server:1433
ourdomain.com:1235 -> router/port-forwarding ->  Web Service 1:8081
ourdomain.com:1236 -> router/port-forwarding ->  Web Service 2:8082
ourdomain.com:1237 -> router/port-forwarding ->  Application Server:5410

Что я думаю, что я хочу:

sql.ourdomain.com:80  -> ??? -> SQL Server:1433
svc1.ourdomain.com:80 -> ??? -> Web Service 1:80 (host: svc1.ourdomain.com)
svc2.ourdomain.com:80 -> ??? -> Web Service 2:80 (host: svc2.ourdomain.com)
app.ourdomain.com:80  -> ??? -> Application Server:5410

(host: xxx) — это место, где я бы указал хост в конфигурации веб-сайта IIS.

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

Если то, о чем я здесь спрашиваю, совершенно нелепо, что ж, спасибо за чтение. Я просто ищу какое-то направление.

Спасибо!

<редактировать>

19 апреля 2012 г., 12:01 по тихоокеанскому времени

Извините, позвольте мне прояснить несколько вещей.

  1. У нас есть только один статический общедоступный IP-адрес.
  2. Предположим, что мы можем приобрести/настроить необходимое аппаратное/программное обеспечение для достижения этой цели.

Если дело доходит до того, что нам нужно купить какое-то оборудование для маршрутизации на уровне предприятия, это как раз то, что нужно. Я знаю, что это должно быть возможно, потому что на моей последней работе у нас было 40 или 50 доменов, и все они указывали на один и тот же IP-адрес, который когда-то направлялся на разные серверы во внутренней сети. :/ По крайней мере, это то, что произошло, насколько мне известно.

На самом деле я звонил им сегодня и спрашивал, но главный чувак, который все это устроил, ушел.

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


person darin    schedule 18.04.2012    source источник


Ответы (1)


Простой способ, которым это может работать, если каждый поддомен разрешается в разные общедоступные IP-адреса (например, если ваш DNS настроен таким образом, что sql.ourdomain.com разрешается в 1.1.1.1, а svc1.ourdomain.com разрешается в 1.1.1.2).

sql.ourdomain.com  IN A 1.1.1.1
svc1.ourdomain.com IN A 1.1.1.2

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

rule: incoming port 1000, forward to 192.168.1.100:1433
rule: incoming port 1001, forward to 192.168.1.101:80

Однако, если порт тот же, маршрутизатору нужна другая информация, чтобы решить, как выполнить преобразование. Большинство недорогих маршрутизаторов (например, серии Cisco ASA, серии Juniper SRX) могут использовать IP-адрес для принятия решения о преобразовании адресов. Недостатком является то, что вам нужно будет приобрести несколько IP-адресов у вашего интернет-провайдера.

rule: incoming ip 1.1.1.1, forward to 192.168.1.100:1443
rule: incoming ip 1.1.1.2, forward to 192.168.1.101:80

IIS, который работает на гораздо более высоком уровне сетевого стека, может сделать это различие, просматривая заголовки HTTP. Это работает для мультиплексирования одного IP-адреса и одного порта на несколько веб-сайтов. В этом случае, поскольку SQL и ваш веб-сервер используют разные протоколы, вы не сможете использовать это.

Еще одна технология, которую вы можете рассмотреть, — это туннелирование IPsec (VPN), если ваше устройство поддерживает сквозную передачу IPsec. Недостатком является то, что вашим коллегам (которые, я полагаю, используют это) необходимо выполнить дополнительную настройку.

person David Z.    schedule 18.04.2012
comment
Итак, в основном я получаю здесь то, что я прошу, вероятно, невозможно с одним IP. Я не был уверен, существует ли какая-то роль супермега-роскошного сервера Windows, которая просматривает поток пакетов в поисках источника имени хоста или чего-то в этом роде. Спасибо! (: - person darin; 19.04.2012