Довольно часто при эксплуатации серверных платформ 1С возникает парадоксальная ситуация: при сбоях во внешнем интернет-канале или при переключении на резервного провайдера пользователи локальной сети теряют связь с базами 1С. Клиентские приложения выдают сообщение «Сервер 1С:Предприятие не обнаружен. Не запущен ни один рабочий процесс. Соединение с информационной базой невозможно», а в консоли администрирования кластер переходит в статус Кластер(Неисправен). При этом локальная сеть продолжает функционировать, а пинги до сервера идут штатно.
Разберем детально, почему внутренний сервис 1С оказывается завязан на внешнюю сеть, как происходят внутренние блокировки процессов и как стабилизировать работу сервера раз и навсегда.
Проанализируем цепочку событий, которая приводит к отказу кластера серверов 1С при проблемах с интернет-соединением:
rmngr и rphost при входящих подключениях и обмене служебными пакетами (heartbeat) выполняют сетевое разрешение IP-адресов в имена. Если в свойствах сетевого адаптера сервера в качестве первичных DNS указаны внешние адреса (например, публичные серверы 8.8.8.8), то при отключении интернета каждый такой запрос зависает по системному таймауту (до 15–30 секунд). Внутренние управляющие потоки менеджера кластера блокируются, он считает рабочие процессы зависшими и переводит кластер в аварийный режим.Teredo Tunneling Pseudo-Interface). Teredo привязывается к публичным серверам в интернете. В момент разрыва или переключения провайдера статус интерфейса Teredo меняется, операционная система генерирует системное оповещение об изменении сетевого окружения, а сетевая подсистема 1С принудительно сбрасывает внутренние сокеты между ragent, rmngr и rphost.rphost на зарезервированных портах диапазона (например, 1560–1591). Однако старые процессы или неотпущенные операционной системой сокеты (в состоянии TIME_WAIT) удерживают эти порты. Возникает ошибка «запуск рабочего процесса невозможен из-за конфликта ip портов», после чего служба агента сервера падает.Рассмотрим комплексные меры, которые необходимо выполнить на стороне операционной системы и кластера 1С для предотвращения подобных аварийных ситуаций.
Снятия галочки в графическом интерфейсе недостаточно для отключения туннелей Teredo и интерфейсов ISATAP. Отключим компоненты протокола IPv6 через системный реестр:
regedit) от имени администратора.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\ParametersDisabledComponents типа DWORD (32 бита), установив ему шестнадцатеричное значение 0xFFFFFFFF (в десятичной системе — 4294967295).Исключим любые обращения сервера 1С к внешним интернет-ресурсам для внутренних сетевых процедур:
8.8.8.8, 1.1.1.1) непосредственно в настройках сервера 1С.%SystemRoot%\system32\drivers\etc\hosts на сервере 1С и добавим явные записи для самого сервера и сервера СУБД:
127.0.0.1 localhost
192.168.1.201 Postgre
192.168.1.201 Postgre.local
hosts на клиентских рабочих станциях, если в сети отсутствует централизованный доменный DNS-сервер. Помним: даже если клиент обращается к базе по IP-адресу, менеджер кластера возвращает клиенту символьное имя рабочего сервера, которое клиент обязан уметь локально разрешать.Настроим стек TCP/IP так, чтобы операционная система не сбрасывала соединения и сокеты при кратковременных изменениях состояния физических и виртуальных сетевых адаптеров:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\ParametersDisableDHCPMediaSense.1.Если после сетевого сбоя кластер сохранил признак неисправности в служебных файлах реестра, выполним процедуру корректного перезапуска службы:
ragent) через оснастку services.msc.ragent.exe, rmngr.exe и rphost.exe полностью завершены. При необходимости завершим их принудительно.C:\Program Files\1cv8\srvinfo или C:\Program Files (x86)\1cv82\srvinfo).snccntx*), не затрагивая конфигурационный файл списка информационных баз 1CV8Clst.lst.Для гарантированной стабильности корпоративной системы рекомендуется изолировать сервер баз данных и кластер 1С от шлюзов общего доступа в интернет: