nixp.ru v3.0

19 января 2017,
четверг,
03:18:50 MSK

Аутсорсинг Linux с компанией «Флант»
Voyager написал 14 марта 2010 года в 18:11 (1661 просмотр) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 7 комментариев на сайте.

Никак не получается настроить NTP-сервер. Задача была поставлена следующая: есть компьютер, подключенный к технологическому оборудованию (стоящий одиноко и без локальной сети). Технологическое оборудование нуждается в сигналах точного времени.

Что сделано:

1. На компьютер установлена операционная система Voyage (Debian Linux/ Kernel 2.6.31.2);

2. GPS-приемник, через ttyS0 на скорости 4800 с форматом NMEA

3. gpsd 2.39 запускается командой gpsd -n /dev/ttyS0 и работает отлично, судя по выводу cgps

4. ntp сконфигурирован файлом ntp.conf

server 127.127.20.0 minpoll 4 maxpoll 4
fudge 127.127.20.0 flag3 1 time1 0.035 refid GPS
server 127.127.1.0 minpoll 4 prefer fudge 127.127.1.0 refid INT_CLOCK


5. На компьютере установлены две сетевые карты настроенные файлом /etc/network/interfaces

auto lo
iface lo inet loopback
auto eth1 iface eth1 inet static address 192.168.1.2 netmask 255.255.255.0
auto eth0 iface eth0 inet static address 192.168.0.51 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.10


6. Так же настроен файл /etc/resolv.conf

nameserver 192.168.0.10
nameserver 192.168.0.10


Собственно проблема вот в чем: при подключении компьютера в локальную сеть 192.168.0.0 с выходом в Internet (для настройки т.к. компьютер без монитора и настройка по SSH) команда «ntpq -p» дает нормальный результат, а как только в сеть 192.168.1.0 (соединение кроссом с ноутбуком оператора, без выхода в Internet) результат

#ntpq -p
Temporary failure in name resolution


Непонятно почему программа ntpq пытается определить адреса притом что ping на 127.127.1.0 и 127.127.20.0 проходит отлично? Соответственно, когда локальная сеть не подключена ни к одному интерфейсу NTP так же дает сбой (судя по логам).

Как мне правильно настроить NTP или внутренние интерфейсф чтоб NTPQ не пытался определять адреса во вне? Ведь может же компьютер работать корректно без сетки и обеспечивать корректировку времени только для «себя любимого» по GPS, не раздавая ее во вне?

myst

А зачем тебе тогда сервер? Установи NTP-клиент и получай себе время.

Voyager

Интересная мысль. :) А не подскажете, как же настроить клиент на получение времени с GPS-приемника? И что это за клиент такой?

myst

Что-то я GPS с GPRS перепутал… ;)

Сергей Костин
Voyager

К сожалению это не решение моей проблемы. Это типовая настройка NTP на работу с GPS. У автора статьи компьютер не одиночно стоящий без локальной сети. Это видно из фразы в статье «После этого можно опрашивать наш свеженастроенный сервер, пусть он имеет IP 10.20.30.1. На какой-нибудь машине в нашей сети выполним команду ntpdate.».

А я еще раз говорю — вся проблема в том, что NTP при выполнении команды «ntpq -p» пытается вылезти в сеть и выдает ошибку «Temporary failure in name resolution» при отсутствии этой сети в принципе. Я еще раз это проверил вчера — подключился на терминал через выделенную консоль на ttyS0 и физически отключив локальную сеть.

metal
nameserver 192.168.0.10
nameserver 192.168.0.10
Temporary failure in name resolution
Как бы намек не недоступность dns серверов.
ntpq [-46dinp] [-c command] [host] [...]
Voyager

Я понимаю что DNS недоступен — физически компьютер не подключен к локальной сети. Для этого на и ставится NTP c GPS т.к. неоткуда больше взять точное время. Но NTP  при выполнении команды «ntpq -p» пытается вылезти в сеть и выдает ошибку «Temporary failure in name resolution.

metal

Он не пытается вылезти в сеть, а пытается разрезолвить имя хоста. Указав недоступные dns ты ему не оставил выбора. Как минимум надо попробовать указать host. Что он резолвит, тоже интересный вопрос tcpdump в руки.

Voyager

Host прописан в файле /etc/hosts


127.127.0.1 ntp-server

И какое имя хоста он пытается ресолвить? Тех что указаны в ntp.conf? Ну так это бесполезное занятие — эти адреса не ресолвятся впринципе. При этом они прекрасно пингуются т.к. являются внутренними виртуальным адресами. Собственно зачет NTP еще что-то ресолвить если в ntp.conf больше ничего нет.

metal

Во-первых, порядок резолвинга определен, в файле /etc/host.conf.  Скорее всего там bind на последнем месте, но все же следует проверить.

Во-вторых, ntpq — это клиент и на настройки сервера ему абсолютно забить. Без указания хоста он должен резолвить localhost, что он реально делает можно посмотреть с помощью tcpdump.

Voyager

В  /etc/host.conf есть всего одна запись «multi on» одной строчкой через пробел. Больше там нет ничего.

А как правильно воспользоваться командой tcpdump что бы посмотреть только вывод от коммандв ntpq ?

Voyager

Кстати, заметил еще одну странность — при отключении от инета линукс намного дольше проводит авторизацию пользователя. Например, запрос на ввод пароля после ввода логи при подключенном инете появляется практически сразу (меньше секунды), а при отключенном инете  — около 20 секунд. Я это списывал на… попытки найти пользователя на другом компе :), но такая же ерунда творится при попытке загрузки «mc», а эта программа ну никак не относится к инету. Ну просто никак. Может кто-нибудь сталкивался с таким?

metal

В  host.conf надо прописать order. Тебе кроме hosts ничего и не нужно.

Смотри man tcpdump, там все написано.

Voyager

Прописал order с параметром hosts в /etc/host.conf

Увы. Не помогло.

metal

Я уж подзабыл, полностью ресолвинг настраивается в  /etc/nsswitch.conf, а order — это только порядок.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.