100000    2   udp   111 portmapper

100029    1   udp   657 keyserv

100005    1   udp   746 mountd

100005    2   udp   746 mountd

100005    1   tcp   749 mountd

100003    2   udp  2049 nfs

100005    2   tcp   749 mountd

100026    1   udp   761 bootparam

100024    1   udp   764 status

100024    1   tcp   766 status

100021    1   tcp   767 nlockmgr

100021    1   udp  1033 nlockmgr

100021    3   tcp   771 nlockmgr

100021    3   udp  1034 nlockmgr

100020    1   udp  1035 llockmqr

100020    1   tcp   776 llockmgr

100021    2   tcp   779 nlockmgr

100021    2   udp  1036 nlockmgr

100011    1   udp  1070 rquotad

100001    2   udp  1111 rstatd

100001    3   udp  1111 rstatd

100001    4   udp  1111 rstatd

100002    1   udp  1124 rusersd

100002    2   udp  1124 rusersd

100012    1   udp  1127 sprayd

100008    1   udp  1132 walld

Отметим интересный момент: для определения состояния приложения RPC использовалось другое приложение Remote Procedure Call.

Команда rpcinfo -b выполняет широковещательную рассылку в сети, запрашивая все работающие серверы о выполняемых ими программах и версиях этих программ. В приведенном ниже примере запрашиваются сведения о версии 1 программы spray под номером 100012.

> rpcinfo -b 100012 1

128.36.12.1 casper.na.cs.yale.edu 128.36.12.28 tesla.math.yale.edu 128.36.12.6 bink.na.cs.yale.edu

Каждая программа RPC имеет пустую процедуру с номером 0, возвращающую только ответ 'Я активна'. Нижеприведенная команда rpcinfo -u посылает сообщение пустой процедуре программы spray хоста bulldog.cs.yale.edu:

> rpcinfo -u bulldog.cs.yale.edu 100012

program 100012 version 1 ready and waiting

15.7 Программа rpcbind

В последних версиях RPC программа portmapper заменена на rpcbind. Исходная программа portmapper связывалась с UDP или TCP. Rpcbind независима от используемого транспортного протокола. Эта программа возвращает строку ASCII, содержащую адресную информацию, которая не зависит от используемого транспорта и называется форматом универсального адреса (universal address format).

15.7.1 Назначение rpcbind

Программа rpcbind основана на тех же принципах, что и portmapper. При инициализации программы RPC ей выделяется один или несколько динамически назначенных адресов для транспорта. Программа регистрирует полученные адреса в rpcbind, через которую они становятся известными клиентам.

Запрос клиента содержит номер программы и номер версии. Но в ответе rpcbind указывается универсальный адрес, который может предоставлять специальные сведения для NetWare SPX/IPX, SNA, DECnet или AppleTalk, а не для TCP или UDP. Тип предоставленного в ответе транспортного адреса зависит от используемого для запроса транспортного протокола.

Как и к portmapper, к rpcbind обращаются по общеизвестному порту 111 через UDP или TCP. Для других коммуникационных протоколов должен использоваться другой, заранее определенный локальный доступ.

Подобно portmapper, rpcbind поддерживает службу широковещательных рассылок RPC. Рассылки направляются на общеизвестную точку доступа к транспорту, определенную для службы rpcbind, например порт 111 для UDP или TCP. Каждая программа rpcbind, которая отслеживает широковещательные рассылки, может от имени клиента вызвать нужную ей локальную сервисную программу, получить ответ и переслать его клиенту. Версия 4 протокола RPC позволяет клиентам получать через rpcbind такой же вид косвенного обслуживания при многоадресной рассылке, как и при широковещательной.

15.7.2 Процедуры rpcbind

Процедуры программы rpcbind версии 4 представлены в таблице 15.3.

Таблица 15.3 Процедуры rpcbind

Процедура Описание
RPCBPROC_SET Используется службой регистрации программ через локальную RPCBIND.
RPCBPROC_UNSET Используется для отмены регистрации локальной программы.
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату