According to the documentation:
The rpcbind utility maps RPC services to the ports on which they listen. RPC processes notify rpcbind when they start, registering the ports they are listening on and the RPC program numbers they expect to serve. The client system then contacts rpcbind on the server with a particular RPC program number. The rpcbind service redirects the client to the proper port number so it can communicate with the requested service
To test this, I set up an NFS server and client and monitored the traffic between them. From what I saw, the client already knew that the NFS service on the server was listening on port 2049.
So when does rcpbind come into play? When I do
rpcinfo on the server, I get the following:
100003 2 udp 0.0.0.0.8.1 nfs superuser 100003 3 udp 0.0.0.0.8.1 nfs superuser 100003 2 udp6 ::.8.1 nfs superuser 100003 3 udp6 ::.8.1 nfs superuser 100003 2 tcp 0.0.0.0.8.1 nfs superuser 100003 3 tcp 0.0.0.0.8.1 nfs superuser 100003 2 tcp6 ::.8.1 nfs superuser 100003 3 tcp6 ::.8.1 nfs superuser
0.0.0.0.8.1 mean in this case? And how does this translate to port 2049?