“Al trabajar con sistemas distribuidos, es posible que se encuentre con llamadas RPC. La llamada RPC -como su nombre lo define- Remote Procedural Calls es un procedimiento para llamar a los procedimientos presentes en el sistema remoto. Se conoce comúnmente como llamada de subrutina o llamada de función. En este artículo, examinaremos los dos comandos de llamada RPC, rpcinfo y rpcbind, en el sistema operativo Linux”.
Este artículo girará en torno a estos dos comandos mientras proporciona algunos ejemplos simples para ayudarlo a comprender las funciones de las funciones rpcinfo y rpcbind.
¿Qué es RPC y cómo funciona?
Una RPC (llamada de procedimiento remoto) es un protocolo de comunicación de software que se utiliza para llamar a un programa ubicado en otra red. La computadora está disponible en la red para solicitar un servicio sin comprender los detalles de la red. El RPC llama al proceso en el sistema remoto y solicita un servicio requerido basado en el modelo cliente-servidor. El sistema que realiza una solicitud de RPC es el cliente, y el sistema que proporciona o cumple con el servicio es el servidor de la red.
La llamada RPC es una operación síncrona, lo que significa que el sistema cliente debe suspenderse hasta que el sistema servidor cumpla con la solicitud. Utiliza la API (Interfaz de programación de aplicaciones) especificada por el IDL (Lenguaje de definición de interfaz) para realizar los procedimientos remotos. El IDL proporciona un puente entre el cliente y la máquina servidor, que puede estar utilizando diferentes sistemas operativos y lenguajes de programación.
¿Qué son los comandos rpcinfo y rpcbind en Linux?
Las siguientes secciones discutirán los comandos rpcinfo y rpcbind en detalle.
Comando rpcinfo en Linux
El rpcinfo es un comando provisto en el sistema operativo Linux para obtener la información del RPC. Hace una llamada directa al servidor RPC y devuelve lo que encuentra. Por lo general, informa sobre el estado del servidor RPC, ya sea que esté listo, en espera o inactivo. El comando rpcinfo devuelve la información específica que solicita, ya que proporciona varias opciones para elegir. Por ejemplo, si necesita llamar a una versión específica, especificará la versión de destino y rpcinfo llamará a esa versión del programa especificado. Por otro lado, si no especifica la versión, la función rpcinfo encontrará todas las versiones registradas del programa.
Sintaxis del comando rpcinfo
La sintaxis del comando rpcinfo se muestra a continuación:
Las opciones para el comando rpcinfo son -a, -b, -d, -l, -m, -n portnum, -p, etc. La dirección IP y el puerto del host se proporcionan a través de la opción -a. La opción -b se utiliza para realizar una transmisión RPC al procedimiento 0 y devolver todos los hosts que responden. La opción -d se utiliza para eliminar el registro del servicio RPC especificado por versum y prognum. La opción -l se usa para listar las entradas de versum y prognum contra un host específico.
La opción -m imprime la tabla de operaciones del mapa de puertos. La opción -n utiliza portnum como el número de puerto. La opción -p sondea el servicio de mapas de puertos en el host. Todas las opciones del comando rpcinfo se pueden presentar mediante el comando –help. El siguiente comando se utilizará para mostrar la lista de opciones disponibles para el comando rpcinfo:
Esto le dará una lista completa de opciones con su descripción. Vea la lista a continuación:
Pero antes de ejecutar cualquier comando RPC, debe asegurarse de que esté preinstalado en su sistema. Si su sistema no lo tiene preinstalado, puede hacerlo con el comando «sudo apt install». Use el siguiente comando e instale la caja de herramientas RPC en su sistema:
Esto instalará rpcinfo, rpcbind, así como todos los demás comandos RPC en su sistema. Vea el resultado a continuación:
Ahora su sistema está listo para ejecutar el comando rpcinfo. Veamos qué nos devuelve el comando rpcinfo:
Si no usa ninguna opción ni especifica nada con el comando rpcinfo, simplemente devolverá todos los servicios RPC del host local. Confirmemos esto con el resultado que se muestra a continuación:
Mostremos todos los servicios RPC registrados con el protocolo rpcbind en la máquina local. Así es como puedes hacer eso:
La opción -p le dará el siguiente resultado:
Comando rpcbind en Linux
El rpcbind es un comando provisto en el sistema operativo Linux para enlazar el programa RPC con direcciones universales. Es una utilidad RPC que se utiliza para convertir el número de programa RPC en direcciones universales específicas. La utilidad rpcbind debe estar ejecutándose en el host para que pueda realizar llamadas RPC a las máquinas del servidor. El servicio RPC proporciona a la utilidad rpcbind dos piezas de información cuando se inicia: el número de programa que está listo para servir y la dirección donde está escuchando. Cuando un cliente necesita realizar una llamada RPC, se comunica con el rpcbind para obtener la dirección donde se debe realizar la llamada RPC. El punto a recordar aquí es que la utilidad rpcbind debe estar en un estado activo antes de intentar usar cualquier otro servicio RPC.
Sintaxis del comando rpcbind
La sintaxis del comando rpcbind en el sistema operativo Linux es la siguiente:
Las opciones disponibles para el comando rpcbind son -a, -d, -f, -h, -i, etc. La opción -a se usa para hacer que el servicio se cancele con errores durante la depuración. Cuando ejecuta el comando rpcbind con la opción -a, el sistema se cancelará en caso de que ocurra algún error. La opción -d del comando rpcbind le permite ejecutar la utilidad en modo de depuración. La opción -f hará que el proceso se ejecute en segundo plano y no se bifurque. La opción -h se utiliza para definir las direcciones IP a vincular. Para usar cualquiera de las opciones con rpcbind, debe asegurarse de que el servicio rpcbind esté activo. Puede hacerlo comprobando el estado de la utilidad rpcbind con el siguiente comando:
Esto le indicará el estado de la utilidad rpcbind para que pueda reiniciarla si no está activa. Y si está en un estado activo, obtendrá el siguiente resultado:
Conclusión
Este artículo proporcionó un recorrido por las funciones rpcbind y rpcinfo de la utilidad RPC. El RPC es un protocolo de comunicación de software y proporciona rpcbind, rpcinfo y varias otras utilidades. La utilidad rpcinfo se usa para obtener la información completa del RPC del servidor RPC. La utilidad rpcbind se usa para mapear el número de programa RPC en las direcciones universales. Este artículo explica brevemente ambas utilidades y las usa como ejemplos para entender sus funcionalidades.