- 12/06/2018
- 7 minutos de lectura
-
- D
- d
- n
- v
- g
-
+1
error de servidor RPC no disponible al conectarse a Windows Management Instrumentation (WMI), SQL Server, durante una conexión remota o para algunos complementos de Microsoft Management Console (MMC)., La siguiente imagen es un ejemplo de un error RPC.
Este es un mensaje de error comúnmente encontrado en el mundo de las redes y uno puede perder la esperanza muy rápido sin tratar de entender mucho, en cuanto a lo que está sucediendo ‘bajo el capó’.
antes de comenzar a solucionar el error *RPC server unavailable – error, primero entendamos lo básico sobre el error. Hay algunos términos importantes para entender:
- Endpoint mapper: un servicio que escucha en el servidor, que guía las aplicaciones cliente a las aplicaciones de servidor por puerto y UUID.,
- Tower-describe el protocolo RPC, para permitir que el cliente y el servidor negocien una conexión.
- Floor-el contenido de una torre con datos específicos como puertos, direcciones IP e identificadores.
- UUID – un GUID bien conocido que identifica la aplicación RPC. El UUID es lo que se usa para ver un tipo específico de conversación de aplicación RPC, ya que es probable que haya muchas.
- Opnum – el identificador de una función que el cliente quiere que el servidor ejecute. Es solo un número hexadecimal, pero un buen Analizador de red traducirá la función por usted., Si ninguno de los dos lo sabe, el proveedor de su aplicación debe informarle.
- Port-los puntos finales de comunicación para las aplicaciones cliente y servidor.
- Stub data – la información dada a las funciones y datos intercambiados entre el cliente y el servidor. Esta es la carga útil, la parte importante.
Nota
mucha de la información anterior se utiliza en la solución de problemas, la más importante es el número de puerto RPC dinámico que obtiene mientras habla con EPM.,
cómo funciona la conexión
El cliente a quiere ejecutar algunas funciones o quiere hacer uso de un servicio que se ejecuta en el servidor remoto, primero establecerá la conexión con el servidor remoto haciendo un apretón de manos de tres vías.
Los puertos RPC también se pueden dar desde un rango específico.,
configurar asignación dinámica de puertos RPC
llamada a procedimiento remoto (RPC) la asignación dinámica de puertos es utilizada por aplicaciones de servidor y aplicaciones de administración remota, como el Administrador del Protocolo de configuración dinámica de Host (DHCP), el Administrador del servicio de nombres de Internet de Windows (WINS), etc. RPC dynamic port allocation le indicará al programa RPC que use un puerto aleatorio particular en el rango configurado para TCP y UDP, basado en la implementación del sistema operativo utilizado.,
Los clientes que usan firewalls pueden querer controlar qué puertos está utilizando RPC para que su enrutador de firewall se pueda configurar para reenviar solo estos puertos de Protocolo de control de transmisión (UDP y TCP). Muchos servidores RPC en Windows permiten especificar el puerto del servidor en elementos de configuración personalizados, como entradas del registro. Cuando puede especificar un puerto de servidor dedicado, sabe qué tráfico fluye entre los hosts a través del firewall y puede definir qué tráfico se permite de una manera más dirigida.
como puerto de servidor, elija un puerto fuera del rango que desee especificar a continuación., Puede encontrar una lista completa de los puertos de servidor que se utilizan en Windows y los principales productos de Microsoft en el artículo Descripción general del servicio y requisitos del puerto de red Para Windows.El artículo también enumera los servidores RPC y qué servidores RPC se pueden configurar para usar puertos de servidor personalizados más allá de las instalaciones que ofrece el tiempo de ejecución de RPC.
algunos firewalls también permiten el filtrado de UUID donde aprende de una solicitud de mapeador de punto final RPC para un UUID de interfaz RPC. La respuesta tiene el número de Puerto del servidor, y luego se permite pasar un enlace RPC posterior en este puerto.,
con el Editor del Registro, puede modificar los siguientes parámetros para RPC. Los valores de la clave de puerto RPC que se analizan a continuación se encuentran en la siguiente clave del Registro:
HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\ Internet \ Entry name Data Type
Ports REG_MULTI_SZ
- especifica un conjunto de rangos de puertos IP que consta de todos los puertos disponibles en Internet o de todos los puertos no disponibles en Internet. Cada cadena representa un único puerto o un conjunto inclusivo de puertos., Por ejemplo, un solo puerto puede estar representado por 5984, y un conjunto de puertos puede estar representado por 5000-5100. Si alguna entrada está fuera del rango de 0 a 65535, o si alguna cadena no se puede interpretar, el tiempo de ejecución de RPC trata toda la configuración como no válida.
PortsInternetAvailable REG_SZ y o N (no distingue entre mayúsculas y minúsculas)
- Si Y, los puertos enumerados en la clave de puertos son todos los puertos disponibles en Internet en ese equipo. Si N, los puertos enumerados en la clave puertos son todos aquellos puertos que no están disponibles en Internet.,
UseInternetPorts REG_SZ) y O N (no distingue entre mayúsculas y minúsculas)
- especifica la directiva predeterminada del sistema.
- Si Y, a los procesos que usan el valor predeterminado se les asignarán puertos del conjunto de puertos disponibles en Internet, como se definió anteriormente.
- Si N, a los procesos que usan el valor predeterminado se les asignarán puertos del conjunto de puertos solo para intranet.
Ejemplo:
en este ejemplo se han seleccionado arbitrariamente los puertos 5000 a 6000 inclusive para ayudar a ilustrar cómo se puede configurar la nueva clave del registro., Esto no es una recomendación de un número mínimo de puertos necesarios para un sistema en particular.
debe abrir un rango de puertos por encima del puerto 5000. Los números de puerto por debajo de 5000 ya pueden estar en uso por otras aplicaciones y podrían causar conflictos con su(s) aplicación (es) de DCOM. Además, la experiencia anterior muestra que se deben abrir un mínimo de 100 puertos, ya que varios servicios del sistema dependen de estos puertos RPC para comunicarse entre sí.
Nota
El número mínimo de puertos puede variar de un equipo a otro., Los equipos con mayor tráfico pueden encontrarse con una situación de agotamiento de Puertos si los puertos dinámicos RPC están restringidos. Tenga esto en cuenta al restringir el rango de puertos.
advertencia
si hay un error en la configuración del puerto o no hay puertos suficientes en el grupo, el servicio Endpoint Mapper no podrá registrar servidores RPC con endpoints dinámicos. Cuando hay un error de configuración, el código de error será 87 (0x57) ERROR_INVALID_PARAMETER. Esto también puede afectar a los servidores RPC de Windows, como Netlogon., Registrará el evento 5820 en este caso:
nombre de Registro: SystemSource: NETLOGONEvent ID: 5820Level: ErrorKeywords:Classicdescripción: el servicio Netlogon no pudo agregar la interfaz AuthZ RPC. El servicio fue terminado. Se ha producido el siguiente error: ‘el parámetro es incorrecto.’
si desea hacer una inmersión profunda en cuanto a cómo funciona, consulte RPC sobre IT/Pro.
solución de problemas de error de RPC
PortQuery
lo mejor para solucionar siempre problemas de RPC antes incluso de entrar en traces es haciendo uso de herramientas como PortQry., Puede determinar rápidamente si puede hacer una conexión ejecutando el comando:
Portqry.exe -n <ServerIP> -e 135
esto le daría una gran cantidad de salida para buscar, pero debería buscar *ip_tcp – y el número de Puerto entre corchetes, que indica si pudo obtener un puerto dinámico de EPM y también hacer una conexión con él. Si lo anterior falla, normalmente puede comenzar a recopilar trazas de red simultáneas., Algo como esto de la salida de «PortQry»:
Portqry.exe -n 169.254.0.2 -e 135
salida parcial a continuación:
el que está en negrita es el número de puerto efímero al que hizo una conexión con éxito.
Netsh
puede ejecutar los comandos a continuación para aprovechar las capturas netsh incorporadas de Windows, para recopilar un seguimiento simultáneo. Recuerde ejecutar lo siguiente en un «Admin CMD», requiere elevación.,
-
en el cliente
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
-
en el servidor
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
ahora intente reproducir su problema desde la máquina cliente y tan pronto como sienta que el problema se ha reproducido, siga adelante y detenga los rastros utilizando el comando/p>
Netsh trace stop
abra las trazas en Microsoft Network Monitor 3.4 o Message Analyzer y filtre la traza para
-
Ipv4.address==<client-ip>
yipv4.address==<server-ip>
ytcp.port==135
o simplementetcp.port==135
debería ayudar., -
busque el protocolo » EPM «en la columna «Protocol».
-
Ahora compruebe si está recibiendo una respuesta del servidor. Si recibe una respuesta, tenga en cuenta el número de puerto dinámico que se le ha asignado para usar.
-
compruebe si nos estamos conectando correctamente a este puerto dinámico con éxito.,
-
El filtro debería ser algo como esto:
tcp.port==<dynamic-port-allocated>
yipv4.address==<server-ip>
Esto debería ayudarle a comprobar la conectividad y aislar en caso de cualquier problema de red se ven.
puerto no accesible
la razón más común por la que veríamos el servidor RPC no disponible es cuando el puerto dinámico que el cliente intenta conectar no es accesible. El seguimiento del lado del cliente mostraría las retransmisiones TCP SYN para el puerto dinámico.,
no se puede acceder al puerto debido a una de las siguientes razones:
- el rango de puertos dinámicos está bloqueado en el firewall en el entorno.
- Un dispositivo central está soltando los paquetes.
- El servidor de destino está soltando los paquetes (WFP drop/ NIC drop / Filter driver, etc.).
Leave a Reply