Описание проблемы
На кластере ECSS-10, работающем на ОС Astra linux, кластер RestFS показывает статус disconnected_by_timeout (отключен по таймауту), хотя сам сервис (nginx/openresty, порт 9990) работает
Диагностика
Переключение default host restfs на 127.0.0.1 → показывает статус connected, обратно на system.restfs.ecss → таймаут.
| Блок кода |
|---|
admin@[mycelium1@]:/$ restfs/change default host 127.0.0.1
admin@[mycelium1@]:/$ restfs/list
┌────────────┬─────────────────────┬─────────┐
│Cluster name│ Peer │ Status │
├────────────┼─────────────────────┼─────────┤
│default │http://127.0.0.1:9990│connected│
└────────────┴─────────────────────┴─────────┘
admin@[mycelium1@]:/$ restfs/change default host system.restfs.ecss
admin@[mycelium1@]:/$ restfs/list
┌────────────┬──────────────────────────────┬───────────────────────┐
│Cluster name│ Peer │ Status │
├────────────┼──────────────────────────────┼───────────────────────┤
│default │http://system.restfs.ecss:9990│disconnected_by_timeout│
└────────────┴──────────────────────────────┴───────────────────────┘ |
Вывод: проблема не в restfs, а в резолвинге доменного имени system.restfs.ecss.
Корневая причина
В конфигурации dnsmasq /etc/dnsmasq.d/ecss стояла строка server=77.88.8.8 (взята из примера в инструкции по установке - там предлагается указать свой DNS, локальный или глобальный, а 77.88.8.8 приведён просто как образец). Внешний DNS 77.88.8.8 из контура клиента недоступен — все forward-запросы висели до таймаута, очередь dnsmasq набивалась до лимита в 150, и dnsmasq переставал отвечать даже на локальные имена зоны .ecss.
Решение
На обоих серверах в конфигурации dnsmasq /etc/dnsmasq.d/ecss закомментировать #server=77.88.8.8 и перезагрузить dnsmasq.