- 12/06/2018
- 7 minuter att läsa
-
- d
- d
- n
- v
- g
-
+1
Du kan stöta på ett RPC-server som inte är tillgängligt när du ansluter till Windows Management Instrumentation (WMI), SQL Server, under en fjärranslutning, eller för vissa Microsoft Management Console (MMC) Snap-ins., Följande bild är ett exempel på ett RPC-fel.
detta är ett vanligt förekommande felmeddelande i nätverksvärlden och man kan förlora hoppet mycket snabbt utan att försöka förstå mycket, om vad som händer ”under huven”.
innan du går in för att felsöka *RPC – servern otillgänglig-fel, låt oss först förstå grunderna om felet. Det finns några viktiga villkor att förstå:
- Endpoint mapper – en tjänst som lyssnar på servern, som guidar klientappar till serverprogram via port och UUID.,
- Tower – beskriver RPC-protokollet, så att klienten och servern kan förhandla om en anslutning.
- golv – innehållet i ett torn med specifika data som portar, IP-adresser och identifierare.
- UUID – en välkänd GUID som identifierar RPC-programmet. UUID är vad du använder för att se en viss typ av RPC-applikationssamtal, eftersom det sannolikt kommer att finnas många.
- Opnum – identifieraren för en funktion som klienten vill att servern ska köras. Det är bara ett hexadecimalt tal, men en bra nätverksanalysator kommer att översätta funktionen för dig., Om varken vet, din ansökan leverantör måste berätta.
- Port – kommunikationslutpunkterna för klient-och serverprogrammen.
- Stub data – den information som ges till funktioner och data som utbyts mellan klienten och servern. Detta är nyttolasten, den viktiga delen.
Obs
mycket av ovanstående information används vid felsökning, det viktigaste är det dynamiska RPC-portnumret du får när du pratar med EPM.,
hur anslutningen fungerar
klient A vill utföra vissa funktioner eller vill använda sig av en tjänst som körs på fjärrservern, kommer först att upprätta anslutningen med fjärrservern genom att göra en trevägs handslag.
RPC-portar kan också ges från ett visst intervall.,
konfigurera RPC dynamisk portallokering
Remote Procedure Call (RPC) dynamisk portallokering används av serverprogram och fjärradministrationsprogram som Dynamic Host Configuration Protocol (DHCP) Manager, Windows Internet Name Service (WINS) Manager och så vidare. RPC dynamic Port allocation kommer att instruera RPC-programmet att använda en viss slumpmässig port i intervallet konfigurerat för TCP och UDP, baserat på genomförandet av det operativsystem som används.,
kunder som använder brandväggar kanske vill styra vilka portar RPC använder så att deras brandväggsrouter kan konfigureras för att vidarebefordra endast dessa Transmission Control Protocol (UDP och TCP) – portar. Många RPC-servrar i Windows låter dig ange serverporten i anpassade konfigurationsobjekt som registerposter. När du kan ange en dedikerad serverport vet du vilken trafik som strömmar mellan värdarna i brandväggen, och du kan definiera vilken trafik som är tillåten på ett mer riktat sätt.
som en serverport, välj en port utanför det intervall du kanske vill ange nedan., Du kan hitta en omfattande lista över serverportar som används i Windows och stora Microsoft-produkter i artikeln serviceöversikt och nätverksportkrav för Windows.Artikeln listar också RPC-servrar och vilka RPC-servrar kan konfigureras för att använda anpassade serverportar utöver de faciliteter RPC runtime erbjuder.
vissa brandväggar tillåter också UUID filtrering där den lär sig från en RPC Endpoint Mapper begäran om en RPC-gränssnitt UUID. Svaret har serverns portnummer, och en efterföljande RPC-bindning på den här porten får sedan passera.,
med Registereditorn kan du ändra följande parametrar för RPC. De RPC-portnyckelvärden som diskuteras nedan finns alla i följande nyckel i registret:
HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\ Entry name Data Type
Ports REG_MULTI_SZ
- anger en uppsättning IP-portområden som består av antingen alla portar som är tillgängliga från Internet eller alla portar som inte är tillgängliga från Internet. Varje sträng representerar en enda port eller en inkluderande uppsättning portar., Till exempel kan en enda port representeras av 5984, och en uppsättning portar kan representeras av 5000-5100. Om några poster ligger utanför intervallet 0 till 65535, eller om någon sträng inte kan tolkas, behandlar RPC runtime hela konfigurationen som ogiltig.
PortsInternetAvailable REG_SZ Y eller N (inte skiftlägeskänslig)
- Om Y är portarna som anges i Ports-tangenten alla Internet-tillgängliga portar på den datorn. Om N är portarna som anges i Ports-nyckeln alla de portar som inte är Internet-tillgängliga.,
UseInternetPorts REG_SZ ) Y eller N (inte skiftlägeskänslig)
- anger systemets standardpolicy.
- Om Y, kommer de processer som använder standard tilldelas portar från uppsättningen internet-tillgängliga portar, som definierats tidigare.
- Om N, kommer de processer som använder standard tilldelas portar från uppsättningen av intranät-endast portar.
exempel:
i detta exempel har portar 5000 till 6000 inkluderande valts godtyckligt för att illustrera hur den nya registernyckeln kan konfigureras., Detta är inte en rekommendation om ett minsta antal portar som behövs för ett visst system.
Du bör öppna ett antal portar över Port 5000. Portnummer under 5000 kan redan användas av andra program och kan orsaka konflikter med DCOM-program. Dessutom visar tidigare erfarenheter att minst 100 portar bör öppnas, eftersom flera systemtjänster är beroende av dessa RPC-portar för att kommunicera med varandra.
Obs
det minsta antalet portar som krävs kan skilja sig från dator till dator., Datorer med högre trafik kan hamna i en utmattningssituation för port om RPC – dynamiska portar är begränsade. Ta hänsyn till detta när du begränsar portområdet.
Varning
om det finns ett fel i portkonfigurationen eller om det inte finns tillräckligt med portar i poolen kommer tjänsten Endpoint Mapper inte att kunna registrera RPC-servrar med dynamiska slutpunkter. När det finns ett konfigurationsfel kommer felkoden att vara 87 (0x57) ERROR_INVALID_PARAMETER. Detta kan påverka Windows RPC-servrar, till exempel Netlogon., Det kommer att logga in händelsen 5820 i detta fall:
Logga Namn: SystemSource: NETLOGONEvent ID: 5820Level: ErrorKeywords: ClassicDescription:tjänsten Netlogon kunde inte lägga den AuthZ RPC-gränssnitt. Tjänsten avslutades. Följande fel uppstod: ’parametern är felaktig.’
om du vill göra ett djupt dyk om hur det fungerar, se RPC över det/Pro.
felsökning av RPC-fel
PortQuery
det bästa är att alltid felsöka RPC-problem innan du ens kommer in på spår genom att använda verktyg som PortQry., Du kan snabbt avgöra om du kan göra en anslutning genom att köra kommandot:
Portqry.exe -n <ServerIP> -e 135
detta skulle ge dig mycket utmatning att leta efter, men du borde leta efter *ip_tcp – och portnumret i parenteserna, vilket berättar om du lyckades få en dynamisk port från EPM och också göra en anslutning till den. Om ovanstående misslyckas kan du vanligtvis börja samla samtidiga nätverksspår., Något som detta från utgången av”PortQry”:
Portqry.exe -n 169.254.0.2 -e 135
partiell utgång nedan:
den i fetstil är det efemära portnummer som du gjorde en anslutning till framgångsrikt.
Netsh
Du kan köra kommandona nedan för att utnyttja Windows inbyggda netsh-fångar, för att samla in ett samtidigt spår. Kom ihåg att utföra nedanstående på en ”Admin CMD”, det kräver höjd.,
-
på klienten
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
-
på servern
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
försök nu att reproducera ditt problem från klientmaskinen och så snart du känner att problemet har reproducerats, fortsätt och stoppa spåren med kommandot
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
försök nu att reproducera ditt problem från klientmaskinen och så fort du känner att problemet har återgetts, fortsätt och stoppa spåren med kommandot
Netsh trace stop
öppna spåren i Microsoft Network Monitor 3.4 eller Message Analyzer och filtrera spåret för
-
Ipv4.address==<client-ip>
ochipv4.address==<server-ip>
ochtcp.port==135
eller baratcp.port==135
ska hjälpa., -
leta efter ”EPM” – protokollet Under kolumnen ”protokoll”.
-
Kontrollera nu om du får ett svar från servern. Om du får ett svar, notera det dynamiska portnummer som du har tilldelats för att använda.
-
kontrollera om vi ansluter framgångsrikt till denna dynamiska port.,
-
filtret ska vara så här:
tcp.port==<dynamic-port-allocated>
ochipv4.address==<server-ip>
detta bör hjälpa dig att verifiera anslutningen och isolera om några nätverksproblem ses.
porten kan inte nås
den vanligaste anledningen till att vi skulle se RPC-servern otillgänglig är när den dynamiska porten som klienten försöker ansluta inte är nåbar. Klientsidan spår skulle sedan visa TCP SYN retransmits för den dynamiska porten.,
porten kan inte nås på grund av någon av följande skäl:
- det dynamiska portområdet är blockerat på brandväggen i miljön.
- en mellanenhet släpper paketen.
- målservern släpper paketen (WFP drop/ NIC drop / Filter driver etc).
Leave a Reply