RPC, NFS, automounter

Marek Kumpošt, xkumpost@fi.muni.cz


Obsah


RPC

Remote procedure call je systém pro vzdálené volání procedur, kterou vyvinula v roce 1985 společnost Sun Microsystems. Aplikace jako NFS (network file system) a NIS (network information system) jsou založeny právě na bázi RPC. RPC server poskytuje množinu procedur, které mohou klienti vzdáleně volat. Server provede zavolanou proceduru a klient obdrží patřičný výsledek. Množina procedur, které RPC server poskytuje, se nazývá program a je identifikován číslem programu.

Portmapper

RPC server musí nějakým způsobem informovat své okolí o tom, které služby a jakým způsobem poskytuje. Tuto činnost provádí tzv. portmapper, což je jakýsi správce RPC. Portmapper je démon, který běží na portu TCP/IP 111 a je typicky umístěn v /sbin/portmap. Seznam služeb a jejich číselných označení je umístěn v souboru /etc/rpc, který je s případnou nově nabízenou službou nutno ručně editovat. Otázkou zůstává, jak jsou RPC službám přidělovány porty. Tato situace je řešena při každém startu portmapperu a porty jsou službám, které běží pod jeho správou, přiděleny víceméně náhodně podle toho, které porty jsou v daný okamžik dostupné. Může se tedy lehce stát, že jednou bude mít služba port 256 a po rebootu stroje např. 815. Klienti tyto informace samozřejmě potřebují zjistit, takže před vlastním použitím služby zašlou dotaz na portmapper s požadavkem na informace o dané službě.

$cat /etc/rpc
# RPC program number data base
# $Revision: 1.5 $	 (from 88/08/01 4.0 RPCSRC)
#
portmapper      100000  portmap sunrpc
rstatd          100001  rstat rup perfmeter
rusersd         100002  rusers
nfs             100003  nfsprog
ypserv          100004  ypprog
mountd          100005  mount showmount
ypbind          100007
walld           100008  rwall shutdown
yppasswdd       100009  yppasswd
etherstatd      100010  etherstat
rquotad         100011  rquotaprog quota rquota
Příkazem rpcinfo -p ověříme funkčnost portmapperu a zároveň zjistíme, které služby běží pod jeho správou a další informace.