- 12/06/2018
- 7 minut do odczytania
-
- D
- d
- n
- V
- g
-
+1
możesz napotkać błąd niedostępności serwera RPC podczas łączenia się z oprzyrządowaniem zarządzania Windows (WMI), serwerem SQL, podczas połączenia zdalnego lub w przypadku niektórych przystawek Microsoft Management Console (mmc)., Poniższy obrazek jest przykładem błędu RPC.
jest to często spotykany komunikat o błędzie w świecie sieci i można bardzo szybko stracić nadzieję, nie próbując wiele zrozumieć, co dzieje się „pod maską”.
zanim przejdziemy do rozwiązywania problemów z serwerem *RPC unavailable – error, najpierw zapoznajmy się z podstawami błędu. Jest kilka ważnych terminów do zrozumienia:
- Endpoint mapper – usługa nasłuchująca na serwerze, która prowadzi aplikacje klienckie do aplikacji serwerowych przez port i UUID.,
- Tower-opisuje protokół RPC, umożliwiający klientowi i serwerowi negocjowanie połączenia.
- Floor – zawartość wieży z określonymi danymi, takimi jak porty, adresy IP i identyfikatory.
- UUID-dobrze znany identyfikator GUID identyfikujący aplikację RPC. UUID jest tym, czego używasz, aby zobaczyć konkretny rodzaj rozmowy aplikacji RPC, ponieważ prawdopodobnie jest ich wiele.
- Opnum-identyfikator funkcji, którą klient chce wykonać na serwerze. To tylko liczba szesnastkowa, ale dobry analizator sieci przetłumaczy funkcję za Ciebie., Jeśli żaden z nich nie wie, sprzedawca aplikacji musi ci o tym powiedzieć.
- Port-punkty końcowe komunikacji aplikacji klienckiej i serwerowej.
- dane Stubowe – informacje przekazywane funkcjom i dane wymieniane między Klientem a serwerem. To jest ładunek, ważna część.
Uwaga
wiele z powyższych informacji jest używanych w rozwiązywaniu problemów, najważniejszy jest dynamiczny numer portu RPC otrzymywany podczas rozmowy z EPM.,
jak działa połączenie
klient a chce wykonać niektóre funkcje lub chce skorzystać z usługi działającej na zdalnym serwerze, najpierw nawiąże połączenie ze zdalnym serwerem, wykonując trójdrożny uścisk dłoni.
porty RPC mogą być również podane z określonego zakresu.,
Konfiguracja RPC dynamiczna alokacja portów
Remote Procedure Call (RPC) dynamiczna alokacja portów jest używana przez aplikacje serwerowe i zdalne aplikacje administracyjne, takie jak Menedżer Dynamic Host Configuration Protocol (DHCP), Menedżer Windows Internet Name Service (WINS) i tak dalej. RPC dynamic port allocation poleci programowi RPC użycie określonego portu losowego w zakresie skonfigurowanym dla TCP i UDP, w oparciu o implementację używanego systemu operacyjnego.,
Klienci korzystający z zapór sieciowych mogą chcieć kontrolować, których portów używa RPC, aby ich router zaporowy mógł być skonfigurowany tak, aby przekazywał tylko te porty transmisji (UDP i TCP). Wiele serwerów RPC w systemie Windows pozwala określić port serwera w niestandardowych elementach konfiguracji, takich jak wpisy rejestru. Kiedy możesz określić dedykowany port serwera, wiesz, jaki ruch przepływa między hostami przez zaporę i możesz zdefiniować, jaki ruch jest dozwolony w bardziej ukierunkowany sposób.
jako port serwera wybierz port poza zakresem, który chcesz określić poniżej., Pełną listę portów serwerowych używanych w systemie Windows i głównych produktach firmy Microsoft można znaleźć w artykule Przegląd usług i wymagania dotyczące portów sieciowych dla systemu Windows.W artykule wymieniono również serwery RPC i które serwery RPC mogą być skonfigurowane do korzystania z niestandardowych portów serwerów poza obiektami oferowanymi przez RPC runtime.
niektóre zapory pozwalają również na filtrowanie UUID, gdzie dowiaduje się z żądania RPC Endpoint Mapper o uuid interfejsu RPC. Odpowiedź ma numer portu serwera, a kolejne Wiązanie RPC na tym porcie jest wtedy dozwolone.,
za pomocą Edytora rejestru można modyfikować następujące parametry dla RPC. Wartości klucza portu RPC omówione poniżej znajdują się w następującym kluczu w rejestrze:
HKEY_LOCAL_MACHINE\Software\Microsoft\RPC\Internet\ Entry name typ danych
Ports REG_MULTI_SZ
- określa zestaw zakresów portów IP składający się ze wszystkich portów dostępnych w Internecie lub wszystkich portów niedostępnych w Internecie. Każdy łańcuch reprezentuje pojedynczy port lub zestaw portów., Na przykład pojedynczy port może być reprezentowany przez 5984, a zestaw portów może być reprezentowany przez 5000-5100. Jeśli jakiekolwiek wpisy znajdują się poza zakresem od 0 do 65535 lub jeśli żaden łańcuch znaków nie może być interpretowany, runtime RPC traktuje całą konfigurację jako nieprawidłową.
PortsInternetAvailable REG_SZ y lub n (bez rozróżniania wielkości liter)
- Jeśli y, porty wymienione w kluczu portów są wszystkimi dostępnymi portami internetowymi na tym komputerze. Jeśli N, porty wymienione w kluczu porty są tymi wszystkimi portami, które nie są dostępne w Internecie.,
UseInternetPorts REG_SZ ) Y lub N (bez rozróżniania wielkości liter)
- określa domyślną politykę systemu.
- Jeśli y, procesom używającym domyślnych portów zostaną przypisane porty z zestawu portów dostępnych w Internecie, jak zdefiniowano wcześniej.
- Jeśli N, to procesom używającym domyślnych portów zostaną przypisane porty z zestawu portów intranetowych.
przykład:
w tym przykładzie porty od 5000 do 6000 włącznie zostały dowolnie wybrane, aby zilustrować, w jaki sposób można skonfigurować nowy klucz rejestru., Nie jest to zalecenie minimalnej liczby portów potrzebnych dla danego systemu.
powinieneś otworzyć zakres portów powyżej portu 5000. Numery portów poniżej 5000 mogą być już używane przez inne aplikacje i mogą powodować konflikty z aplikacjami DCOM. Co więcej, wcześniejsze doświadczenia pokazują, że co najmniej 100 portów powinno zostać otwartych, ponieważ kilka usług systemowych opiera się na tych portach RPC, aby komunikować się ze sobą.
Uwaga
minimalna liczba wymaganych portów może się różnić w zależności od komputera., Komputery o większym natężeniu ruchu mogą napotkać sytuację wyczerpania portów, jeśli porty dynamiczne RPC są ograniczone. Weź to pod uwagę przy ograniczaniu zakresu portów.
Ostrzeżenie
Jeśli w konfiguracji portu wystąpi błąd lub w Puli jest niewystarczająca ilość portów, usługa Endpoint Mapper nie będzie mogła zarejestrować serwerów RPC z dynamicznymi punktami końcowymi. Jeśli wystąpi błąd konfiguracji, kod błędu będzie wynosił 87 (0X57) ERROR_INVALID_PARAMETER. Może to mieć również wpływ na serwery RPC systemu Windows, takie jak Netlogon., Zarejestruje Zdarzenie 5820 w tym przypadku:
Log Name: SystemSource: NETLOGONEvent ID: 5820Level: ErrorKeywords: Classicopis:usługa Netlogon nie mogła dodać interfejsu AuthZ RPC. Usługa została zakończona. Wystąpił następujący błąd: 'parametr jest nieprawidłowy.'
Jeśli chcesz zrobić głębokie nurkowanie, Jak to działa, zobacz RPC nad nim / Pro.
Rozwiązywanie problemów z RPC
PortQuery
najlepsze, aby zawsze rozwiązywać problemy z RPC, zanim nawet wejdziesz do traces, jest użycie narzędzi takich jak PortQry., Możesz szybko określić, czy jesteś w stanie nawiązać połączenie, uruchamiając polecenie:
Portqry.exe -n <ServerIP> -e 135
dałoby ci to dużo wyjścia do szukania, ale powinieneś szukać *ip_tcp – i numeru portu w nawiasach, który mówi, czy udało ci się uzyskać dynamiczny port z EPM i nawiązać z nim połączenie. Jeśli powyższe rozwiązanie się nie powiedzie, zazwyczaj można rozpocząć zbieranie jednoczesnych śladów sieci., Coś takiego z wyjścia”PortQry”:
Portqry.exe -n 169.254.0.2 -e 135
częściowe wyjście poniżej:
pogrubiony jest efemeryczny numer portu, z którym nawiązałeś połączenie.
Netsh
możesz uruchomić poniższe polecenia, aby wykorzystać wbudowane w system Windows przechwytywania netsh, aby zebrać jednoczesne śledzenie. Pamiętaj, aby wykonać poniższy NA „cmd admina”, wymaga wzniesienia.,
-
na kliencie
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
-
na serwerze
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
teraz spróbuj odtworzyć swój problem z KOMPUTERA Klienta i gdy tylko poczujesz, że problem został odtworzony, zatrzymaj ślady za pomocą polecenia
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
/p>
Netsh trace stop
otwórz ślady w Microsoft Network Monitor 3.4 lub analizatorze wiadomości i przefiltruj ślad dla
-
Ipv4.address==<client-ip>
Iipv4.address==<server-ip>
Itcp.port==135
lub po prostutcp.port==135
powinno pomóc., -
poszukaj protokołu „EPM” w kolumnie „protokół”.
-
teraz sprawdź, czy otrzymujesz odpowiedź z serwera. Jeśli otrzymasz odpowiedź, zwróć uwagę na dynamiczny numer portu, który został przydzielony do użycia.
-
sprawdź, czy pomyślnie łączymy się z tym dynamicznym portem.,
-
filtr powinien wyglądać następująco:
tcp.port==<dynamic-port-allocated>
Iipv4.address==<server-ip>
powinno to pomóc w weryfikacji łączności i odizolowaniu, jeśli problemy z siecią są widziałem.
Port nieosiągalny
najczęstszym powodem, dla którego serwer RPC jest niedostępny, jest sytuacja, gdy dynamiczny port, który klient próbuje połączyć, jest niedostępny. Ślad po stronie klienta pokazuje retransmity TCP SYN dla dynamicznego portu.,
port nie może być osiągalny z jednego z następujących powodów:
- dynamiczny zakres portów jest blokowany w zaporze sieciowej w środowisku.
- środkowe urządzenie upuszcza Pakiety.
- serwer docelowy upuszcza Pakiety (sterownik WFP drop / NIC drop/ Filter itp.).
Leave a Reply