Почему после сбоя интернета становится недоступен кластер 1С и как это исправить?

Системный администратор IT и автоматизация бизнеса
← На главную

Довольно часто при эксплуатации серверных платформ 1С возникает парадоксальная ситуация: при сбоях во внешнем интернет-канале или при переключении на резервного провайдера пользователи локальной сети теряют связь с базами 1С. Клиентские приложения выдают сообщение «Сервер 1С:Предприятие не обнаружен. Не запущен ни один рабочий процесс. Соединение с информационной базой невозможно», а в консоли администрирования кластер переходит в статус Кластер(Неисправен). При этом локальная сеть продолжает функционировать, а пинги до сервера идут штатно.

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

Анализ причин сбоя кластера при сетевых переключениях

Проанализируем цепочку событий, которая приводит к отказу кластера серверов 1С при проблемах с интернет-соединением:

  1. Зависание на обратном DNS-разрешении (rDNS): Процессы кластера rmngr и rphost при входящих подключениях и обмене служебными пакетами (heartbeat) выполняют сетевое разрешение IP-адресов в имена. Если в свойствах сетевого адаптера сервера в качестве первичных DNS указаны внешние адреса (например, публичные серверы 8.8.8.8), то при отключении интернета каждый такой запрос зависает по системному таймауту (до 15–30 секунд). Внутренние управляющие потоки менеджера кластера блокируются, он считает рабочие процессы зависшими и переводит кластер в аварийный режим.
  2. Скрытая активность IPv6 и туннелей Teredo / ISATAP: Даже если в свойствах сетевого адаптера снята отметка с протокола IPv6, операционная система Windows по умолчанию держит активными виртуальные туннельные интерфейсы (например, Teredo Tunneling Pseudo-Interface). Teredo привязывается к публичным серверам в интернете. В момент разрыва или переключения провайдера статус интерфейса Teredo меняется, операционная система генерирует системное оповещение об изменении сетевого окружения, а сетевая подсистема 1С принудительно сбрасывает внутренние сокеты между ragent, rmngr и rphost.
  3. Механизм TCP/IP Media Sense: При переключении каналов на шлюзе или виртуальном коммутаторе гипервизора (Hyper-V) кратковременно фиксируется состояние смены линка. По умолчанию служба Media Sense в Windows моментально закрывает активные сетевые соединения и сбрасывает маршрутизацию, что разрушает стек взаимодействия процессов 1С.
  4. Конфликт сетевых портов рабочих процессов: После разрыва связи менеджер кластера пытается запустить новые процессы rphost на зарезервированных портах диапазона (например, 1560–1591). Однако старые процессы или неотпущенные операционной системой сокеты (в состоянии TIME_WAIT) удерживают эти порты. Возникает ошибка «запуск рабочего процесса невозможен из-за конфликта ip портов», после чего служба агента сервера падает.

Пошаговое решение проблемы

Рассмотрим комплексные меры, которые необходимо выполнить на стороне операционной системы и кластера 1С для предотвращения подобных аварийных ситуаций.

Шаг 1. Полное отключение IPv6 на уровне ядра Windows

Снятия галочки в графическом интерфейсе недостаточно для отключения туннелей Teredo и интерфейсов ISATAP. Отключим компоненты протокола IPv6 через системный реестр:

  1. Откроем редактор реестра (команда regedit) от имени администратора.
  2. Перейдем в раздел: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
  3. Создадим или изменим параметр DisabledComponents типа DWORD (32 бита), установив ему шестнадцатеричное значение 0xFFFFFFFF (в десятичной системе — 4294967295).
  4. После внесения изменений выполним перезагрузку операционной системы.

Шаг 2. Локализация разрешения сетевых имен (DNS и hosts)

Исключим любые обращения сервера 1С к внешним интернет-ресурсам для внутренних сетевых процедур:

  1. В настройках сетевого адаптера сервера укажем в качестве DNS-серверов исключительно внутренние DNS (локальный контроллер домена или адрес локального шлюза/маршрутизатора). Категорически исключим использование внешних DNS (таких как 8.8.8.8, 1.1.1.1) непосредственно в настройках сервера 1С.
  2. Зафиксируем статические соответствия имен и адресов. Откроем файл %SystemRoot%\system32\drivers\etc\hosts на сервере 1С и добавим явные записи для самого сервера и сервера СУБД:
    
    127.0.0.1       localhost
    192.168.1.201   Postgre
    192.168.1.201   Postgre.local
    
  3. Аналогично пропишем имя сервера 1С в файле hosts на клиентских рабочих станциях, если в сети отсутствует централизованный доменный DNS-сервер. Помним: даже если клиент обращается к базе по IP-адресу, менеджер кластера возвращает клиенту символьное имя рабочего сервера, которое клиент обязан уметь локально разрешать.

Шаг 3. Отключение механизма TCP/IP Media Sense

Настроим стек TCP/IP так, чтобы операционная система не сбрасывала соединения и сокеты при кратковременных изменениях состояния физических и виртуальных сетевых адаптеров:

  1. В редакторе реестра перейдем в ветку: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
  2. Создадим параметр типа DWORD (32 бита) с именем DisableDHCPMediaSense.
  3. Установим значение параметра равным 1.
  4. Перезагрузим сервер для применения изменений сетевого стека.

Шаг 4. Очистка временных файлов и сброс зависшего состояния кластера

Если после сетевого сбоя кластер сохранил признак неисправности в служебных файлах реестра, выполним процедуру корректного перезапуска службы:

  1. Остановим службу Агент сервера 1С:Предприятия (ragent) через оснастку services.msc.
  2. Убедимся через Диспетчер задач, что все процессы ragent.exe, rmngr.exe и rphost.exe полностью завершены. При необходимости завершим их принудительно.
  3. Перейдем в каталог данных кластера (по умолчанию C:\Program Files\1cv8\srvinfo или C:\Program Files (x86)\1cv82\srvinfo).
  4. Удалим временные служебные каталоги сессий и контекстов (каталоги с именами вида snccntx*), не затрагивая конфигурационный файл списка информационных баз 1CV8Clst.lst.
  5. Запустим службу агента сервера заново.

Шаг 5. Сетевая изоляция серверного контура

Для гарантированной стабильности корпоративной системы рекомендуется изолировать сервер баз данных и кластер 1С от шлюзов общего доступа в интернет:

  1. Вынесем серверную инфраструктуру в отдельный сегмент локальной сети (VLAN), в котором клиенты общаются с сервером напрямую через внутреннюю коммутацию без прохождения через маршрутизатор переключения провайдеров.
  2. Если базам 1С не требуется регулярный доступ к внешним интернет-сервисам, на сервере можно полностью исключить шлюз по умолчанию или настроить статическую внутреннюю маршрутизацию.
  3. В качестве альтернативного варианта подключения рассмотрим публикацию информационных баз на веб-сервере (IIS или Apache). При подключении тонких клиентов по протоколу HTTP/HTTPS прямое сокетное соединение с портами рабочих процессов кластера не устанавливается, что защищает пользователей от внутренних сетевых сбоев TCP-портов 1С.
← На главную