- 12/06/2018
- 7 minuten te lezen
-
- D
- d
- n
- V
- g
-
+1
Je zou kunnen tegenkomen een RPC-server is niet beschikbaar fout bij het verbinden met Windows Management Instrumentation (WMI), SQL-Server, tijdens de verbinding met een extern of voor sommige MMC (Microsoft Management Console) snap-ins., De volgende afbeelding is een voorbeeld van een RPC-fout.
Dit is een veel voorkomende Foutmelding in de netwerkwereld en men kan de hoop snel verliezen zonder te proberen veel te begrijpen, over wat er ‘onder de motorkap’gebeurt.
voordat we beginnen met het oplossen van problemen met de *RPC server unavailable – error, laten we eerst de basisprincipes van de fout begrijpen. Er zijn een paar belangrijke termen om te begrijpen:
- Endpoint mapper-een service die luistert op de server, die client-apps naar server-apps per poort en UUID leidt.,
- Tower-beschrijft het RPC-protocol, waarmee de client en server een verbinding kunnen onderhandelen.
- Floor-de inhoud van een toren met specifieke gegevens zoals poorten, IP-adressen en identifiers.
- UUID – een bekende GUID die de RPC-toepassing identificeert. De UUID is wat je gebruikt om een specifiek soort RPC applicatie gesprek te zien, omdat er waarschijnlijk veel zijn.
- Opnum – de identifier van een functie die de client wil dat de server uitvoert. Het is gewoon een hexadecimaal getal, maar een goede netwerk analyzer zal de functie voor u vertalen., Als geen van beide Weet, moet uw applicatie leverancier u vertellen.
- poort-de communicatie-eindpunten voor de client-en servertoepassingen.
- Stub data-de informatie die wordt gegeven aan functies en gegevens die worden uitgewisseld tussen de client en de server. Dit is de lading, het belangrijkste deel.
Note
veel van de bovenstaande informatie wordt gebruikt bij het oplossen van problemen, het belangrijkste is het dynamische RPC-poortnummer dat u krijgt tijdens het praten met EPM.,
hoe de verbinding werkt
Client a Wil enkele functies uitvoeren of gebruik maken van een service die draait op de externe server, zal eerst de verbinding met de externe Server tot stand brengen door een Drieweg handshake te doen.
RPC-poorten kunnen ook uit een specifiek bereik worden gegeven.,
RPC dynamische poorttoewijzing configureren
Remote Procedure Call (RPC) dynamische poorttoewijzing wordt gebruikt door servertoepassingen en toepassingen voor extern beheer, zoals DHCP-Beheer (Dynamic Host Configuration Protocol), WINS-Beheer (Windows Internet Name Service), enzovoort. De toewijzing van dynamische RPC-poorten geeft het RPC-programma opdracht om een bepaalde willekeurige poort te gebruiken in het bereik dat is geconfigureerd voor TCP en UDP, op basis van de implementatie van het gebruikte besturingssysteem.,
klanten die firewalls gebruiken willen mogelijk bepalen welke poorten RPC gebruikt, zodat hun firewallrouter kan worden geconfigureerd om alleen deze UDP-en TCP-poorten (Transmission Control Protocol) door te sturen. Veel RPC-servers in Windows laten u de serverpoort opgeven in aangepaste configuratieitems zoals registervermeldingen. Wanneer u een dedicated serverpoort kunt opgeven, weet u welk verkeer tussen de hosts door de firewall stroomt en kunt u op een meer gerichte manier definiëren welk verkeer is toegestaan.
kies Als serverpoort een poort buiten het bereik dat u hieronder wilt opgeven., Een uitgebreide lijst met serverpoorten die worden gebruikt in Windows en belangrijke Microsoft-producten vindt u in het artikel Service overzicht en netwerkpoortvereisten Voor Windows.Het artikel vermeldt ook de RPC-servers en welke RPC-servers kunnen worden geconfigureerd om aangepaste serverpoorten te gebruiken die verder gaan dan de faciliteiten die RPC runtime biedt.
sommige firewalls maken het ook mogelijk om uuid te filteren wanneer het leert van een RPC Endpoint Mapper-verzoek voor een RPC-interface UUID. Het antwoord heeft het serverpoortnummer en een volgende RPC-Binding op deze poort mag dan worden doorgegeven.,
met de Register-Editor kunt u de volgende parameters voor RPC wijzigen. De hieronder besproken RPC-poortsleutelwaarden bevinden zich allemaal in de volgende sleutel in het register:
HKEY_LOCAL_MACHINE\Software\Microsoft\RPC\Internet\ Entry name gegevenstype
poorten REG_MULTI_SZ
- specificeert een reeks IP-poortbereiken die bestaan uit alle poorten die beschikbaar zijn op Internet of alle poorten die niet beschikbaar zijn op Internet. Elke string vertegenwoordigt een enkele poort of een inclusieve set poorten., Een enkele poort kan bijvoorbeeld worden vertegenwoordigd door 5984, en een reeks poorten kan worden vertegenwoordigd door 5000-5100. Als een item zich buiten het bereik van 0 tot 65535 bevindt, of als een string niet kan worden geïnterpreteerd, behandelt de RPC runtime de gehele configuratie als ongeldig.
PortsInternetAvailable REG_SZ Y of N (niet hoofdlettergevoelig)
- indien Y, zijn de poorten in de Portssleutel alle Internet-beschikbare poorten op die computer. Als N, zijn de poorten in de Portssleutel alle poorten die niet beschikbaar zijn voor Internet.,
UseInternetPorts REG_SZ) Y of N (niet hoofdlettergevoelig)
- specificeert het standaardbeleid van het systeem.
- Als Y, zullen de processen die de standaard gebruiken poorten worden toegewezen uit de set van Internet-beschikbare poorten, zoals eerder gedefinieerd.
- indien N, zullen de processen die de standaard gebruiken poorten toegewezen krijgen van de set intranet-only poorten.
voorbeeld:
in dit voorbeeld zijn poorten 5000 tot en met 6000 willekeurig geselecteerd om te illustreren hoe de nieuwe registersleutel kan worden geconfigureerd., Dit is geen aanbeveling voor een minimum aantal poorten die nodig zijn voor een bepaald systeem.
u zou een reeks poorten boven poort 5000 moeten openen. Poortnummers onder 5000 zijn mogelijk al in gebruik bij andere toepassingen en kunnen conflicten veroorzaken met uw DCOM-toepassing(s). Bovendien blijkt uit eerdere ervaring dat minimaal 100 poorten moeten worden geopend, omdat verschillende systeemdiensten afhankelijk zijn van deze RPC-poorten om met elkaar te communiceren.
Note
Het minimum aantal vereiste poorten kan van computer tot computer verschillen., Computers met meer verkeer kunnen in een situatie van uitputting van poorten terechtkomen als de dynamische RPC-poorten beperkt zijn. Houd hiermee rekening bij het beperken van het poortbereik.
waarschuwing
als er een fout is in de poortconfiguratie of er onvoldoende poorten zijn in de pool, kan de Endpoint Mapper-Service geen RPC-servers met dynamische eindpunten registreren. Als er een configuratiefout is, zal de foutcode 87 (0x57) ERROR_INVALID_PARAMETER zijn. Dit kan ook van invloed zijn op Windows RPC-servers, zoals Netlogon., Het zal event 5820 in dit geval loggen:
Log Name: SystemSource: NETLOGONEvent ID: 5820Level: ErrorKeywords:ClassicDescription: de NetLogon service kon de AuthZ RPC interface niet toevoegen. De dienst werd beëindigd. De volgende fout deed zich voor: ‘de parameter is onjuist.’
als je een diepe duik wilt doen over hoe het werkt, zie RPC over IT/Pro.
probleemoplossing RPC-fout
PortQuery
het beste om RPC-problemen altijd op te lossen voordat u zelfs traces krijgt, is door gebruik te maken van hulpmiddelen zoals PortQry., U kunt snel bepalen of u in staat bent om een verbinding te maken door het commando:
Portqry.exe -n <ServerIP> -e 135
Dit zou u veel uitvoer geven om naar te zoeken, maar u zou moeten zoeken naar *ip_tcp – en het poortnummer tussen de haakjes, die aangeeft of u succesvol in staat was om een dynamische poort van EPM te krijgen en er ook een verbinding mee te maken. Als het bovenstaande mislukt, kunt u doorgaans beginnen met het verzamelen van gelijktijdige netwerksporen., Iets als dit uit de uitvoer van “PortQry”:
Portqry.exe -n 169.254.0.2 -e 135
gedeeltelijke uitvoer hieronder:
vetgedrukt is het kortstondige poortnummer waarmee u een verbinding hebt gemaakt.
Netsh
u kunt de onderstaande commando ‘ s uitvoeren om Windows ingebouwde netsh captures te gebruiken, om een gelijktijdige trace te verzamelen. Vergeet niet om de onderstaande uit te voeren op een “Admin CMD”, het vereist elevation.,
-
Op de client
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
-
Op de Server
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
Nu proberen om uw probleem te reproduceren van de cliënt machine en zodra je het gevoel het probleem is gereproduceerd, ga je gang en stop de sporen met behulp van het commando
Netsh trace stop
Open de sporen in Microsoft Network Monitor 3.4 of Bericht Analyzer en filter de trace voor
-
Ipv4.address==<client-ip>
enipv4.address==<server-ip>
entcp.port==135
of nettcp.port==135
moet helpen., -
zoek het” EPM “- Protocol in de kolom” Protocol”.
-
Controleer nu of u een antwoord krijgt van de server. Als u een antwoord krijgt, noteert u het dynamische poortnummer dat u bent toegewezen om te gebruiken.
-
Controleer of we succesvol verbinden met deze dynamische poort.,
-
Het filter zou ongeveer als volgt moeten zijn:
tcp.port==<dynamic-port-allocated>
enipv4.address==<server-ip>
Dit zou u moeten helpen de connectiviteit te controleren en te isoleren of er netwerkproblemen worden gezien.
poort niet bereikbaar
De meest voorkomende reden waarom we zouden zien dat de RPC-server niet beschikbaar is, is wanneer de dynamische poort die de client probeert te verbinden niet bereikbaar is. De client side trace zou dan tonen TCP SYN retransmits voor de dynamische poort.,
De Poort Kan niet bereikbaar zijn om een van de volgende redenen:
- het dynamische poortbereik is geblokkeerd op de firewall in de omgeving.
- een middelste apparaat laat de pakketten vallen.
- de doelserver laat de pakketten vallen (WFP drop / NIC drop/ Filter driver etc).
Leave a Reply