Как настроить подключение 1С через GRE-туннель (VPN) на MikroTik: пошаговое руководство

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

Организация удаленной работы с 1С часто упирается в выбор между удобством и производительностью. Использование RDP (удаленного рабочего стола) считается стандартом, однако многие администраторы и пользователи стремятся к запуску «простым тыком по ярлыку» на локальной машине через VPN-канал. Рассмотрим ситуацию, когда между двумя офисами на оборудовании MikroTik поднят GRE-туннель, пакеты ping успешно проходят, но база 1С категорически отказывается подключаться. Проанализируем технические нюансы, которые мешают корректной работе, и разберем способы их устранения.

Проблема фрагментации пакетов и настройка MSS

Одной из самых коварных проблем при использовании GRE-туннелей является фрагментация пакетов. Протокол GRE добавляет собственный заголовок к каждому пакету (обычно 24 байта), из-за чего стандартный пакет размером 1500 байт (стандартный MTU для Ethernet) перестает помещаться в канал связи. В результате простые и короткие пакеты icmp (ping) проходят без проблем, а тяжелые запросы от 1С или SQL Server отбрасываются или фрагментируются, что приводит к обрыву соединения.

Для решения этой проблемы на MikroTik мы должны принудительно уменьшить размер сегмента TCP (MSS). Разберем, как это сделать через Mangle в брандмауэре. Выполним настройку правила, которое будет перехватывать пакеты с флагом syn и изменять их размер:


/ip firewall mangle
add action=change-mss chain=forward comment="Clamp MSS for GRE" new-mss=1360 \
    passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1361-65535

Установка значения new-mss=1360 (или даже 1300 для нестабильных каналов) гарантирует, что пакеты пройдут через туннель без необходимости дополнительной фрагментации на промежуточных узлах связи.

Разрешение имен и работа кластера 1С

Разберем типичную ошибку: пользователь прописывает в строке подключения IP-адрес сервера, но соединение все равно не устанавливается. Это происходит из-за особенностей работы кластера 1С. Проанализируем процесс подключения: клиент обращается к менеджеру кластера (порт 1540), а менеджер в ответ передает клиенту **имя хоста** (NetBIOS-имя сервера) и порт рабочего процесса (из диапазона 1560-1591). Если клиентский компьютер не знает, какому IP-адресу соответствует это имя, соединение разорвется.

Рассмотрим два способа решения этой задачи:

  1. Редактирование файла hosts: На каждой клиентской машине в файле C:\Windows\System32\drivers\etc\hosts необходимо прописать соответствие IP-адреса сервера его имени. Например: 192.168.1.10 SERVER1C.
  2. Настройка DNS: Настройка полноценного DNS-сервера внутри туннеля или использование MikroTik в качестве DNS-релея, где прописаны статические записи (Static DNS).

Без корректного разрешения имен работа в режиме «клиент-сервер» через туннель практически невозможна, так как 1С жестко завязана на имена рабочих процессов в консоли администрирования.

Настройка портов и сетевых экранов

Даже если «фаерволлы отключены», как часто утверждают пользователи, служба брандмауэра Windows или антивирусы могут блокировать трафик из подсетей, которые они считают «публичными» или «недоверенными». Выясним, какие порты должны быть открыты на стороне сервера для успешного проброса:

Проверим доступность портов с клиентской стороны с помощью PowerShell:


Test-NetConnection -ComputerName 192.168.1.10 -Port 1540
Test-NetConnection -ComputerName 192.168.1.10 -Port 1560

Маршрутизация и обратный путь трафика

Проанализируем ситуацию, когда пакеты доходят до сервера, но ответ не возвращается клиенту. В туннелях MikroTik важно убедиться, что сервер 1С знает, через какой шлюз отправлять пакеты обратно в удаленную подсеть. Если на сервере основным шлюзом является MikroTik, то проблем обычно не возникает. Однако если в сети есть несколько шлюзов, необходимо прописать статический маршрут на самом сервере 1С:

route add [подсеть_клиентов] mask 255.255.255.0 [локальный_IP_микротика] -p

Также обратим внимание на настройку NAT. Если на MikroTik включен masquerade для трафика, идущего в туннель, сервер будет видеть обращения от IP-адреса самого роутера. Это может упростить маршрутизацию, но усложнит аутентификацию и логирование.

Оптимизация работы 1С через VPN

Работа через GRE-туннель всегда сопровождается задержками (пингом). Проанализируем, как можно ускорить работу интерфейса:

  1. Использование Тонкого клиента: Это критически важно. Тонкий клиент передает на порядок меньше данных, чем толстый. Если конфигурация современная (на Управляемых формах), работа через туннель будет комфортной.
  2. Режим «Низкая скорость соединения»: В настройках конкретной информационной базы в списке 1С установите флаг «Низкая скорость соединения». Это заставит платформу кешировать больше данных локально и минимизировать количество обращений к серверу для отрисовки форм.
  3. Настройка SQL Server: Убедитесь, что протокол Shared Memory отключен для удаленных подключений, а TCP/IP включен и настроен на конкретный IP-адрес. Использование Named Pipes (именованных каналов) через VPN крайне не рекомендуется из-за их чувствительности к задержкам.

Безопасность GRE-канала

Важно помнить, что протокол GRE сам по себе не обеспечивает шифрование. Ваши данные 1С передаются через интернет в открытом виде. Рассмотрим возможность защиты трафика с помощью IPsec. На MikroTik это реализуется добавлением ipsec-secret прямо в настройках GRE-интерфейса. Это создаст защищенный туннель GRE-over-IPsec, который обеспечит конфиденциальность данных без значительной потери производительности на современных процессорах с поддержкой аппаратного ускорения AES.

Таким образом, для запуска 1С через туннель нам необходимо выполнить три обязательных условия: настроить MSS Clamping для борьбы с фрагментацией, обеспечить разрешение имен через hosts или DNS и открыть диапазон портов рабочих процессов. При соблюдении этих шагов и использовании тонкого клиента работа удаленного офиса будет стабильной и быстрой.

← На главную