%20%D0%BD%D0%B0%20%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%20%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%BC%20IP%20.png)
и спасибо за ваш вклад.
Что я хочу сделать: Я хочу разместить некоторые веб-приложения и электронную почту, например, для себя и двух клиентов на одном статическом IP-адресе, в первую очередь для обучения, и, возможно, рассмотреть возможность ограниченного хостинга для пары постоянных клиентов с небольшим количеством пользователей.
Что у меня есть Я работаю на XenServer Xeon с 32 ГБ оперативной памяти, на соединении 100 МБ, но на одном статическом IP-адресе.
Что я пытаюсь выяснить Я хочу поэкспериментировать с настройкой нескольких виртуальных машин на xenserver, например, с IBM Lotus Domino (использует несколько портов) 80, 25, 1352. Поэтому мне нужно выяснить, как перенаправить трафик на соответствующий сервер на основе доменного имени. Например,
Один внешний WAN IP -> domain1.com:80 -> VM1:80 Один внешний WAN IP -> domain1.com:1352 -> VM1:1352
Один внешний WAN IP -> domain2.com:80 -> VM2:80 Один внешний WAN IP -> domain2.com:1352 -> VM2:1352
Один внешний WAN IP -> domain3.com:80 -> VM3:80 (запуск Cpanel для веб-хостинга)
Я понимаю, что обратный прокси может быть выходом. NGINX или POUND, но, похоже, это только для веб-приложений, а не для других приложений. Я также наткнулся на Citrix Netscaler и просто окончательно запутался. Я также видел использование DD-WRT iptables или что-то в этом роде. Должен же быть способ сделать это. Я был бы признателен за любые комментарии. Наверняка кто-то где-то это делает.
Я открыт для маршрутизаторов, пользовательских или иных, или виртуальных устройств или иных, но я бы хотел что-то программное, например, виртуальное устройство или что-то в этом роде. Есть идеи?
Спасибо
Шейн
решение1
Поэтому мне нужно выяснить, как перенаправить трафик на соответствующий сервер на основе доменного имени.
Это невозможно, если нет спецификации прикладного уровня (например, заголовка HTTP Host). Без этого IP ничего не знает о DNS, поэтому вы не можете пересылать basted на него.
Посмотрите на этот по сути похожий вопрос, заданный на днях:могу ли я использовать DNS с частными адресами NAT?
решение2
Прежде всего, рекомендуем настроить IPv6 и маршрутизировать /60 к каждой виртуальной машине. Таким образом, пользователи, у которых есть IPv6, не будут испытывать никаких проблем, связанных с проксированием, поскольку их трафик будет направляться напрямую на нужный хост.
Кроме того, наличие IPv6 на виртуальных машинах дает вам адрес, на который следует проксировать трафик, что в некоторых случаях будет проще, поскольку прокси-сервер может полагаться на DNS для поиска бэкэнда.
Обратный прокси-сервер — это способ для HTTP-трафика. Обратный прокси-сервер также может обрабатывать HTTPS-трафик, если и клиент, и прокси-сервер поддерживают SNI. Это будет работать, даже если веб-сервер не поддерживает SNI. Это не обязательно должно быть ограничено портами 80 и 443. Прокси-сервер может быть настроен для приема трафика на произвольных портах.
SMTP можно обрабатывать, установив почтовый ретранслятор на адресе IPv4. Необходимо соблюдать осторожность, чтобы убедиться, что он не будет использован для ретрансляции спама. Я рекомендую настроить правило брандмауэра так, чтобы ретранслятор не мог подключаться к внешним SMTP-серверам. Брандмауэр может разрешать SMTP-подключения извне к ретранслятору, от ретранслятора по IPv6 к виртуальным машинам и от виртуальных машин к внешнему миру как по IPv6 или как по IPv4, который, очевидно, должен проходить через NAT.
В принципе DNS может поддерживаться, но я не знаю, реализовал ли кто-нибудь его поддержку.
Если у вас есть другие конкретные протоколы на примете, я с радостью предложу, как их можно поддерживать. Я не знаю других протоколов, которые отправляют доменное имя достаточно рано для такого фронтенда, чтобы он мог выполнять рассылку на основе доменного имени, но я хотел бы узнать о других.
Я реализовалодинУ меня есть такой фронтенд, но пока только HTTP и HTTPS, которые на сегодняшний день являются самыми простыми в поддержке протоколами.