RPC , HOSTS and inetadm commands in detail ( solaris 10 )

The client-server model describes the communication process between two computers or programs.
The client system makes a service request to the server system, then the server system fulfills the request.
Although programs can use the client-server model internally in a single computer, the model is more widely used across a network.
The client-server model provides a way to distribute services efficiently across multiple locations on a network.

The client-server model describes network services and the client programs of those services.


Client Processes

The client is a host or a process that uses services from another host or program, known as a server.


Server Processes

The server is a host or a process that provides services to another program
known as a client.
Client-server computing is a key factor in supporting network computing



Starting Server Processes

Internet Service Daemon (inetd)

The inetd daemon is a special network process that runs on each system and starts server processes that do not automatically start at boot time
The inetd daemon is the server process for both the standard Internet services and Sun Remote Procedure Call (Sun RPC) services

Network services can be independently enabled or disabled using the inetadm command.


# inetadm    ==> to list the current state of all network facilities


Note – When a network service is affected, any related services are also affected. By disabling one service, a number of other services may become unavailable.


# inetadm | grep telnet        ==> to view if telnet is enabled or not

# inetadm -d telnet        ==> to disable the telnet facility

# inetadm | grep telnet

# inetadm -e telnet        ==> to enable the telnet facility

# inetadm | grep telnet

# inetadm -l telnet        ==> to list the details about telnet



Network Ports

Network ports help transport protocols to distinguish between multiple service requests arriving at a given host computer
The TCP and UDP transport protocols identify ports using a positive integer between 1 and 65535, which is called a port number.
Network ports can be divided into two categories, well-known ports and ephemeral (short-lived) ports.

If a port number is not pre-assigned, the operating system allows an application to choose an unused port number.

A client often communicates with a server through a well-known port.

Well-known ports are stored in the /etc/inet/services file.


# grep telnet /etc/inet/services    ==> to view the well-known port of a
                        specific service

# grep mail /etc/inet/services



Starting RPC Services


RPC services are assigned a unique program number by the programmer when they are written.
The RPC services are not typically assigned to well-known ports.
RPC services started at boot time with startup scripts run on available ports above 32768.

The rpcbind process associates RPC program numbers with port numbers.

# grep rpcbind /etc/services



Listing Registered RPC Services

syntax: rpcinfo -p [ host ]

# rpcinfo -p    ==> to list all services registered with rpcbind process

   program vers proto  port service
    100000    4   tcp   111 rpcbind
    100000    3   tcp   111 rpcbind
    100000    3   udp   111 rpcbind
    100000    2   udp   111 rpcbind
    100232   10   udp 32772 sadmind
    100083    1   tcp 32771


       
Deleting RPC Service Registration


syntax: rpcinfo -d prognum versnum

# rpcinfo -d 100012 1     ==> This command unregisters the RPC service with                     program number 100012 and version number 1.

                The deleted RPC service that uses program number
                100012 is sprayd.


To register the sprayd service again, restart the inetd daemon as follows:

# svcadm disable svc:/network/rpp/spray:udp
# svcadm enable svc:/network/rpp/spray:udp


Note – When using the rpcinfo -d command to unregister an RPC service, the RPC service can be identified using either the service name or the program number.