Что именно делает rpcbind?

Попытайтесь читать man 5 crontab (который является, вероятно, другой страницей, чем Вы полученный путем чтения man crontab). man crontab вероятно, направленный Вы к странице о crontab исполняемом файле, а не crontab файле. Номер 5 говорит для использования категории 5, "файлы, форматы файлов, и конвенции", а не категория по умолчанию (вероятная категория 1, "общие команды").

Вы видите все доступные разделы для команды при помощи apropos как так:

$ apropos crontab
crontab (1)          - maintain crontab files for individual users (Vixie Cron)
crontab (5)          - tables for driving cron

На соответствующей статье Wikipedia существуют также некоторые примеры.

40
06.10.2015, 01:39
1 ответ

rpcbind - это близкий аналог BIND, или действительно, любого DNS сервера. Если я правильно помню, вы выбираете или получаете номер протокола, когда компилируете объявление интерфейса RPC в код сервера и заглушки клиента с помощью rpcgen.

Когда клиент регистрируется для данного интерфейса на определенном хосте, обычно с помощью вызова clnt_create(), код заглушки задает rpcbind на этом хосте вопрос, что-то вроде "на каком UDP или TCP порту прослушивается протокол номер X?". rpcbind, в отличие от большинства других служб ONC, прослушивает TCP и UDP порт 111, поэтому, задав имя хоста или IP адрес, программа может просто спросить rpcbind на этом хосте или IP адресе. rpcbind отвечает соответствующим номером порта, если на этом хосте зарегистрирован сервер. Эта регистрация выполняется серверным процессом при вызове svc_create().

В вашем примере 100003 - это номер протокола для NFS. Некоторые процессы зарегистрировались в rpcbind, указав свой номер протокола (100003) и любой порт TCP или UDP, который они получили. Именно rpcbind должен правильно выдать этот номер порта, 2049 в вашем случае, на любое обращение к нему с вопросом "какой порт я должен использовать для протокола номер 100003".

Теперь мы попадаем на более странную территорию. "0.0.0.0.0.8.1" находится в колонке "адрес" вывода rpcinfo. Поскольку это "универсальный адрес" процесса сервера NFS, я готов поспорить, что префикс "0.0.0.0" является IP-адресом (INADDR_ANY в данном случае), который сервер использовал в системном вызове bind() при получении номера порта. Я не уверен, что такое суффикс "8.1", но, глядя на вывод rpcinfo, это должно быть связано с тем, что сервер NFS в основном является потоком ядра.

24
27.01.2020, 19:35

Теги

Похожие вопросы