Несколько внешних IP у сервера 1С (избавиться от редактирования hosts)

1. AlexeyPapanov 463 25.05.21 11:11 Сейчас в теме
Коллеги, сильно камнями не кидайтесь. Админ с меня никакой, посему вопрос детский.
Есть физический сервер (1С и ms sql). В месте расположения сервера два инета со статическим IP.

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

Какие есть варианты решить такую задачу?
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user856012 13 25.05.21 11:21 Сейчас в теме
(1)
Какие есть варианты решить такую задачу?
Самый простой и очевидный: две строчки (для каждой базы) в списке баз 1С с разными IP.
insurgut; +1 Ответить
7. mpudy 25.05.21 12:59 Сейчас в теме
Если работаете через тонкий клиент - можно в списке серверов указывать все IP адреса через точку с запятой.
Srvr="IP1;IP2";Ref="MyBase";
3. user1326147 25.05.21 11:44 Сейчас в теме
Обращаться к серверу по имени, а в локальном DNS определить IP.
4. FatPanzer 25.05.21 11:49 Сейчас в теме
(3) Это если клиент в той же сети...
8. user1326147 25.05.21 13:01 Сейчас в теме
(4) У тебя DNS работает только в локальной сети? Если маршруты настроены, адрес сети не имеет значения.
9. FatPanzer 25.05.21 13:08 Сейчас в теме
(8) Конечно. Я завтра может захочу с ноутбука из Таиланда через Web работать... Там у местных операторов будет настроен DNS к твоей локальной базе?
10. user1326147 25.05.21 13:16 Сейчас в теме
(9)Не вопрос, прокидываешь тоннель до локальной сети и имеешь доступ к локальному DomainNameServer, и работаешь в локальной сети через Web сервер.
12. FatPanzer 25.05.21 13:56 Сейчас в теме
(10) То есть все-таки возвращаемся к манипуляциям с клиентской машиной при смене внешнего IP локальной сети...

Странно, что никто не предложил динамический ДНС...
13. user1326147 25.05.21 14:28 Сейчас в теме
(12)Смотря как мы узнаем, к какому адресу нужно подключаться и при каких условиях.
5. AlexeyPapanov 463 25.05.21 11:58 Сейчас в теме
(2) Ребят, без обид. Я прошу знающих. Гадать не надо.
Вы когда любую базу добавляете на сервере, пишете локальное имя компьютера. Чтоб shared memory работал...
Так вот извне когда идет подключение, клиентские машины будут ругаться на имя сервера, если оно задано буквами :)
Поэтому и прописывают в hosts запись с именем сервера типа:
10.0.0.1 srv

Так вот когда два внешних IP у сервера, вы же не будете при падении одного провайдера бегать по клиентским компам и менять запись в hosts...
6. azmon 1 25.05.21 12:41 Сейчас в теме
(5) Два выхода в данной ситуации.

1. Покупаете официальный домен. Обзываете сервер по имени домена. Настраиваете приоритет IP адресов в настройках домена.

2. Мне кажется можно написать скрипт, который будет по условию доступности сервера выбирать тот или иной IP адрес
11. user1326147 25.05.21 13:22 Сейчас в теме
(5)Как тут не гадать, когда не известна топология, чем-то переключаются IP, там настроить DNS, либо через DHCP выбрать другой DNS, настроенный на другой IP.
14. Nigmatul 25.05.21 15:15 Сейчас в теме
1. Средствами сетевого оборудования, локальный домен например поднять.
2. AD мелкомягких
3. Купить дешёвый домен , у провайдера с реализованным w round robin . Если подключение исключительно по внешнему интерфейсу.

А так непонятна топология сети, как происходит подключение (какие варианты возможны и т.д.)
15. AlexeyPapanov 463 25.05.21 18:31 Сейчас в теме
Про топологию. Я не особо силен в терминах, поэтому просто опишу. Есть маршрутизатор, в него подключены два провайдера.
К маршрутизатору подключен сам сервер. Все подключения к серверу идут извне. Никаких AD и прочих дел не поднималось.
Поднят vpn на маршрутизаторе.
AlexSeldom; +1 Ответить
17. user856012 13 26.05.21 09:12 Сейчас в теме
(15)
Про топологию. Я не особо силен в терминах, поэтому просто опишу.
"Я не специалист, поэтому просто жду волшебного заклинания, которое тут же исполнит мою хотелку".

Извольте: "Сим-салабим-ахалай-махалай!", повторять с выражением до получения желаемого результата. ;)
16. hamsar 16 26.05.21 06:52 Сейчас в теме
на маршрутизаторе настраиваете dyndns или его аналог.(https://qna.habr.com/q/21165) Подключение пойдет через последний активный интернет айпи, dns обновится в течении заданного периода подключения. Подключение к vnp будет по dns адресу, или подключение к 1с, если вы без vpn работаете
18. AlexeyPapanov 463 26.05.21 09:59 Сейчас в теме
(17) Проходите мимо, пожалуйста.
.

(16)
на маршрутизаторе настраиваете dyndns или его аналог.(https://qna.habr.com/q/21165) Подключение пойдет через последний активный интернет айпи, dns обновится в течении заданного периода подключения. Подключение к vnp будет по dns адресу, или подключение к 1с, если вы без vpn работаете

Да поднимали на роутере keendns, если Вы об этом.
Такая схема также требует записи в hosts на клиентских машинах.

Вот что я нагуглил:

...
Т.к. подключение к серверу происходит следующим образом, 1С соединяется с указанным в параметрах подключения сервером (например 192.1.1.222), и запрашивает текущий Активный рабочий сервер, кластер 1С отвечает на этот запрос Именем сервера как он прописан при создании сервера/кластера 1С (в 99% это именно имя , а не IP), клиент пытается соединиться с сервером который сообщил ему кластер 1С, т.е. svr27.
Т.к. svr27 не относиться к ЛВС, то стандартно Windows не может получить IP по имени svr27, и соответственно возвращает "Этот хост неизвестен."
Если мы внесем в host сопоставление имени сервера и его IP, то Windows пытаясь найти IP сервера по имени первым делом заглянет в host и найдет то что ищет.
19. FatPanzer 26.05.21 10:03 Сейчас в теме
(18)
Такая схема также требует записи в hosts на клиентских машинах.
Нет, не требует. В случае динамического DNS вы обращаетесь к серверам в инете по постоянному адресу (который вам присвоят, например Alexeypapanov.dyndns.com), а уже оттуда, имея актуальную информацию о действующем IP, вас перенаправляют на ваш сервер по актуальному IP.
Клиентская машина знать не знает про ваши IP, ей пофиг.

Например, вот https://www.cloudns.net/dynamic-dns/lang/ru/
20. RustamZz 26.05.21 10:04 Сейчас в теме
(18) У кластера 1c сделайте имя по стандарту FQDN и это имя запишите в hosts сервера на 127.0.0.1 и ::1
21. tedkuban 42 27.05.21 15:43 Сейчас в теме
Проблема не в Shared Memory, для работы которой достаточно на сервере 1С при подключении базы указать localhost в качестве имени сервера SQL. Записи в hosts у клиентов нужны для другого - в файлах конфигурации кластера 1С указано имя сервера, и он периодически сам к себе обращается по этому имени.

Можно начать с простого - сделать в hosts 2 записи, указав оба IP.
x.x.x.1 srv
x.x.x.2 srv

Заодно и балансировку нагрузки по обоим каналам получите. Более сложные способы в голове есть, но озвучивать пока не хочу.
22. demaeparamae 26.01.24 01:15 Сейчас в теме
Настройте DNS Failover. Используйте услуги DNS-поставщиков, которые предоставляют эту функцию. Вы указываете несколько IP-адресов, и DNS-поставщик автоматически перенаправляет запросы к другому IP-адресу в случае отказа одного из них. Примеры таких сервисов: Amazon Route 53, Cloudflare, DynDNS. Разверните балансировщик нагрузки перед вашими серверами. Это может быть аппаратное устройство или программное решение. В случае отказа одного сервера, балансировщик перенаправит трафик на другой.
23. user856012 13 26.01.24 01:46 Сейчас в теме
А вот и он!
Прикрепленные файлы:
24. пользователь 27.01.24 13:08
Сообщение было скрыто модератором.
...
25. trioka 11.02.24 10:19 Сейчас в теме
я бы рекомендовал поменять роутер на микротик и там всё это разрулить. без проблем и автоматически
для всех и сразу.
вы даже не поймете что обрыв был
26. Vadim_174 2 14.02.24 12:29 Сейчас в теме
вот же правильно написали Srvr="IP1;IP2";Ref="MyBase"; и в хостс оба имени пропишите
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот