Приложение требует IP-адрес, нужно, чтобы перейти к домену

15

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

Если приложение будет принимать доменное имя, я буду использовать его с динамическим DNS, но оно не принимает доменное имя.

Есть ли способ ввести IP-адрес, но получить к нашему доменному имени? У меня было две мысли, которые я еще не пробовал.

  1. Настройте локальный IP-адрес, который перенаправляет на наше доменное имя (например, 10.0.1.99 идет на local.ourdomain.com). Однако я не совсем уверен, как бы я это сделал. Возможно, установите Raspberry Pi с веб-сервером.

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

Есть мысли о том, как этого добиться?

MrPeanut
источник
1
Что за приложение? Вы имеете в виду что-то внутреннее? Как какой-то Ruby, Java или даже JavaScript?
JakeGould
1
Обратный прокси. Прикрепите его по фиксированному адресу и отправьте пакеты на соответствующий адрес.
Игнасио Васкес-Абрамс
Просто программа Windows, которую поставщик предоставил нам, которая отправляет и получает данные из нашего корпоративного офиса.
MrPeanut
2
Вам нужно будет разместить обратный прокси-сервер с IP-адресом, который никогда не изменится. Это будет стоить денег. Рассматривали ли вы просто перенос службы в облако, где в любом случае встроена избыточность? Стоимость, вероятно, похожа. Другое предложение об использовании VPN имеет большой смысл. Я не вижу, как обратный прокси-сервер является хорошим решением для этого вообще.
Appleoddity
1
@Appleoddity Обратный прокси-сервер - это просто реализация пункта 1 пункта OP. У вас есть малина не в корпоративном офисе, а в локальной сети, где запущено приложение. Поскольку это возможно в данном сценарии в соответствии с ОП, это, вероятно, самое простое и дешевое решение.
Voo

Ответы:

37

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

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

davidgo
источник
0

VPN довольно дорог, когда вы можете получить Raspberry Pi или Pi Zero и запустить Debian на нем, а также настроить iptables на нем, чтобы маскировать его так, как вы хотите

Детали будут зависеть от того, как настроена ваша локальная сеть, но общая идея заключается в том, чтобы дать Pi два фиксированных локальных адреса.

Один адрес будет зарезервирован для администрирования Raspberry Pi. Вот как вы бы ssh в и изменить вещи, если это необходимо.

Другой будет действовать как прокси для удаленного основного (или резервного).

Пакеты, отправленные на этот адрес, могут быть перенаправлены с использованием iptablesв качестве маскарада на основной или резервный в зависимости от условий. NAT будет изменять адреса источника и назначения пакета по мере необходимости перед повторной передачей.

Возвращающиеся пакеты получают NAT обратно к запрашивающей стороне.

Это должно работать нормально, если в пакетах нет встроенных IP-адресов или случаев, подобных классическому FTP, которые устанавливают параллельные соединения.

Бонусные баллы, если вы можете заставить Пи заметить, что основной сайт исчез, и автоматически переключиться на резервную копию

инфиксальный
источник
Я запускаю VPN бесплатно, я не понимаю, почему он не мог. Он не скрывает свой трафик от своего провайдера. OPENvpn
FreeSoftwareServers
-4

Используйте Route53 (амазонка) или любой другой днс, у которого есть запасная маршрутизация. Если вы используете проверки работоспособности, вы можете назначить IP-адрес DNS-записи secundairy, если проверка работоспособности не пройдена на первичном IP-адресе.

Рамон Финкен
источник
7
Как это поможет, если приложение не разрешает запись DNS?
ydaetskcoR
Вы проверите основной IP-адрес в Интернете, а не IP-адрес устройства. IP-адрес primairy должен разрешить. когда это не так, это означает, что вам нужно переключиться.
Рамон Финкен
@Ramon Учитывая, что приложение никогда не использует запись DNS, как именно поможет адаптация записи DNS?
Voo
4 IP-адреса: основной интернет-IP, B резервный IP-адрес, C IP-адрес устройства, D резервный IP-адрес устройства, проверьте работоспособность ip A и верните ip C для устройства. если А выйдет из
Рамон Финкен
1
@Ramon Приложение жестко запрограммировано в некоторой конфигурации «подключение к IP ABCD», точная проблема заключается в том, что оно не спрашивает, какой IP-адрес использовать. Или идея состоит в том, что они должны запускать приложение несколько раз для каждого IP-адреса сервера, а затем переключать приложения? Это может сработать при условии, что проблем с лицензированием нет, и есть возможность настроить приложения для совместного использования сохраненного состояния, и нет проблем с одновременным запуском нескольких приложений с одним и тем же хранилищем (это кажется маловероятным для подавляющего большинства приложений).
Voo