Ситуация, когда сервер 1С:Предприятие приходится настраивать для работы по IP-адресу в обход DNS (например, из-за ограничений в VPN-канале или некорректной настройки доменных служб в филиалах), встречается довольно часто. Однако простое редактирование конфигурационных файлов кластера часто приводит к неожиданным последствиям: базы начинают загружаться крайне медленно, а производительность падает даже у локальных пользователей. Разберем подробно, почему это происходит и как правильно решить проблему.
Первое, что мы должны понять: архитектура 1С и операционной системы Windows изначально ориентирована на использование имен хостов (FQDN). Когда мы принудительно подменяем имя сервера на его IP-адрес в файле 1CV8Clst.lst, система сталкивается с несколькими техническими барьерами:
1CV8Clst.lst хранятся идентификаторы рабочих процессов. Если менеджер кластера и рабочие процессы не могут быстро «увидеть» друг друга из-за попыток разрешить собственные имена через неработающий DNS, возникают микро-задержки на каждом вызове.Рассмотрим самый эффективный и правильный метод решения проблемы без использования полноценного DNS-сервера. Вместо того чтобы «ломать» конфигурацию кластера 1С, заменяя имена на IP, мы обманем операционную систему на уровне разрешения имен.
Вернем в файле 1CV8Clst.lst (путь по умолчанию C:\Program Files\1cv8\srvinfo\reg_1541\1CV8Clst.lst) нормальное имя сервера вместо IP. После этого выполним следующие действия:
C:\Windows\System32\drivers\etc\hosts от имени администратора.
# Формат: [IP-адрес сервера] [Имя сервера]
172.10.10.5 SERVER1C
Важно: Эту же операцию необходимо проделать и на самом сервере 1С. Сервер должен знать, что по имени SERVER1C он может обратиться к самому себе по локальному IP-адресу. Это мгновенно уберет таймауты при внутреннем взаимодействии служб 1С.
Проанализируем влияние протокола IPv6. В современных версиях Windows он включен по умолчанию и имеет приоритет над IPv4. Если в сети нет корректно настроенного IPv6-маршрутизатора, 1С может пытаться сначала установить соединение по IPv6, ждать ошибки и только потом переходить на IPv4.
Для улучшения ситуации выполним следующие шаги:
Если в качестве СУБД используется PostgreSQL, она также может быть причиной тормозов при работе по IP. Разберем настройки в файле postgresql.conf. По умолчанию база может пытаться логировать имена хостов клиентов, что вызывает DNS-запросы.
Проверим и изменим следующий параметр:
# В файле postgresql.conf
log_hostname = off
Установка значения off запрещает базе данных пытаться узнать DNS-имя подключающегося клиента, что исключает задержки при установке соединения с СУБД.
Поскольку используется VPN (в данном случае WatchGuard), пакеты 1С инкапсулируются в заголовки туннеля. Это увеличивает размер пакета. Если стандартный размер MTU (1500 байт) не проходит через туннель без фрагментации, производительность 1С в режиме толстого клиента упадет в разы.
Проверим оптимальный размер пакета командой в консоли:
ping -f -l 1400 [IP_сервера]
Если пакеты проходят, попробуем увеличить значение. Если нет — уменьшить. Выяснив максимальный размер пакета без фрагментации, установим его для сетевого интерфейса VPN:
netsh interface ipv4 set subinterface "Название_VPN_подключения" mtu=1400 store=persistent
Для удаленных пользователей через VPN работа в режиме «Толстого клиента» — это самый ресурсозатратный путь. Разберем альтернативный вариант. Если конфигурация позволяет (например, современная «Бухгалтерия» или обновленная «ЗУП»), лучшим решением будет публикация базы на веб-сервере (IIS или Apache).
Преимущества этого метода:
Для старых конфигураций (Обычные формы), которые не поддерживают веб-клиент, единственным адекватным способом работы через медленный VPN остается RDP (Remote Desktop Protocol). В этом случае весь обмен данными между 1С и базой происходит внутри локальной сети сервера на гигабитной скорости, а по VPN передается только изображение рабочего стола.
Подведем итог: тормоза при замене имени на IP вызваны не самой подменой, а сопутствующими таймаутами системы, которая пытается найти DNS там, где его нет.
Краткий чек-лист для исправления ситуации:
1CV8Clst.lst.hosts на сервере и у всех клиентов.log_hostname в PostgreSQL.