- 12分読み取り
- d
- d
- n
- v
- g
-
+1
windows management instrumentation(wmi)、sql server、リモート接続中、または一部のmicrosoft管理コンソール(mmc)スナップインに接続すると、rpcサーバーが使用できないエラーが発生することがあります。, 次のイメージはRPCエラーの例です。
これは、ネットワークの世界でよく遭遇するエラーメッセージであり、”内部で”何が起こっているのかについて多くを理解しようとすることなく、非常に速く希望を失うことがあります。
*RPC server unavailable-errorのトラブルシューティングに入る前に、まずエラーに関する基本を理解しましょう。
- Endpoint mapper–ポートとUUIDによってクライアントアプリをサーバーアプリにガイドするサーバー上でリッスンするサービス。,
- Tower-クライアントとサーバーが接続をネゴシエートできるようにするためのRPCプロトコルを説明します。
- Floor-ポート、IPアドレス、識別子などの特定のデータを持つタワーのコンテンツ。
- UUID-RPCアプリケーションを識別するよく知られたGUID。 UUIDは、多くの場合、特定の種類のRPCアプリケーションの会話を表示するために使用するものです。
- Opnum-クライアントがサーバーに実行させたい関数の識別子。 だ十六進番号が良いネットワークアナライザで翻訳機能です。, どちらもわからない場合は、アプリケーションベンダーが
- Port-クライアントおよびサーバーアプリケーションの通信エンドポイント。
- スタブデータ–クライアントとサーバーの間で交換される関数とデータに与えられる情報。 これは、ペイロード、重要な部分です。
注意
上記の情報の多くは、トラブルシューティングに使用されます。,
接続の仕組み
クライアントAは、いくつかの機能を実行したいか、リモートサーバー上で実行されているサービスを利用したい場合は、まず三方ハンドシェイクを行うことにより、リモートサーバーとの接続を確立します。
RPCポートは、特定の範囲からも指定できます。,
RPC動的ポート割り当ての構成
リモートプロシージャコール(RPC)動的ポート割り当ては、サーバーアプリケーションおよび動的ホスト構成プロトコル(DHCP)マネージャー、Windowsインターネットネームサービス(WINS)マネージャー RPC動的ポート割り当ては、RPCプログラムに、使用されるオペレーティングシステムの実装に基づいて、TCPおよびUDP用に設定された範囲内の特定のランダム,
ファイアウォールを使用しているユーザーは、RPCが使用しているポートを制御して、ファイアウォールルーターがこれらの伝送制御プロトコル(UDPおよびTCP)ポートのみ 多くのRPCサーバーをWindowsにインをご指定のサーバーのポートカスタム設定等の登録簿の作品の応募がありました。 専用サーバーポートを指定すると、ファイアウォールを介してホスト間でどのトラフィックが流れるかがわかり、より指示された方法で許可されるトラフィ
サーバーポートとして、以下で指定できる範囲外のポートを選択してください。, Windowsおよび主要なマイクロソフト製品で使用されるサーバーポートの包括的なリストについては、”Windowsのサービスの概要とネットワークポートの要件”の記事を記事も掲載しRPCサーバーをRPCサーバーを設定でき用カスタムサーバのポートの設備のRPC runtime提供いたします。
一部のファイアウォールでは、RPCインターフェイスUUIDに対するRPCエンドポイントマッパー要求から学習するUUIDフィルタリングも可能です。 応答にはサーバーポート番号があり、このポートでの後続のRPCバインドが渡されることが許可されます。,
レジストリエディターを使用すると、RPCの次のパラメーターを変更できます。 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\Entry name Data Type
Ports REG_MULTI_SZ
- インターネットから利用できるすべてのポートまたはインターネットから利用できないすべてのポートから構成されるIPポート範囲 各文字列は、単一のポートまたはポートの包括的なセットを表します。, 例えば、単一のポートは5984で表され、ポートのセットは5000-5100で表されることができる。 いずれかのエントリが0から65535の範囲外にある場合、またはいずれかの文字列を解釈できない場合、RPCランタイムは構成全体を無効として扱います。
PortsInternetAvailable REG_SZ Yまたはn(大文字と小文字は区別されません)
- Yの場合、Portsキーにリストされているポートは、そのコンピューター上のすべてのインターネット Nの場合、Portsキーにリストされているポートは、インターネットで使用できないすべてのポートです。,
UseInternetPorts REG_SZ)YまたはN(大文字と小文字は区別されません)
- システムのデフォルトポリシーを指定します。
- Yの場合、デフォルトを使用するプロセスには、前に定義したように、インターネット利用可能なポートのセットからポートが割り当てられます。
- Nの場合、デフォルトを使用するプロセスには、イントラネット専用ポートのセットからポートが割り当てられます。
例:
この例では、新しいレジストリキーの構成方法を説明するために、5000から6000までのポートを任意に選択しています。, これは、特定のシステムに必要なポートの最小数を推奨するものではありません。
ポート5000より上の範囲のポートを開く必要があります。 ポート番号が以下5000ることのできる利用を他のアプリケーションなどを起こす可能性があり紛争におDCOM用します。 さらに、以前の経験では、いくつかのシステムサービスが相互に通信するためにこれらのRPCポートに依存しているため、最小100ポートを開く必要があること
注
必要なポートの最小数は、コンピュータによって異なる場合があります。, コンピュータの高い交通が行われ、レポート枯渇状況の場合はRPC動的なポートに制限があります。 ポート範囲を制限するときは、これを考慮してください。
警告
ポート構成にエラーがある場合、またはプールに不十分なポートがある場合、Endpoint Mapperサービスは動的エンドポイントを持つRPCサーバーを登録できません。 構成エラーがある場合、エラーコードは87(0x57)ERROR_INVALID_PARAMETERになります。 これは、NetlogonなどのWindows RPCサーバーにも影響する可能性があります。, この場合、イベント5820がログに記録されます。
ログ名:SystemSource:NETLOGONEvent ID:5820Level:ErrorKeywords:ClassicDescription:NetlogonサービスがAuthZ RPCインターフェイスを追加できませんでした。 サービスは終了しました。 次のエラーが発生しました。’
それがどのように機能するかについて深いダイビングをしたい場合は、RPC over IT/Proを参照してください。
RPCエラーのトラブルシューティング
PortQuery
トレースに入る前にRPCの問題を常にトラブルシューティングするのが最善のことは、PortQryのようなツール, コマンドを実行することで、接続できるかどうかをすばやく判断できます。
Portqry.exe -n <ServerIP> -e 135
これにより、探すための出力が多くなりますが、*ip_tcp-と括弧内のポート番号を探している必要があります。EPMから動的ポートを取得して接続することができたかどうかを示し、EPMから動的ポートを取得して接続することができたかどうかを示します。 上記が失敗した場合は、通常、同時ネットワークトレースの収集を開始できます。, “PortQry”の出力から次のようなもの:
Portqry.exe -n 169.254.0.2 -e 135
以下の部分出力:
太字のものは、接続に成功した一時的なポート番号です。
Netsh
以下のコマンドを実行して、windowsの組み込みnetshキャプチャを利用して、同時トレースを収集できます。 “Admin CMD”で以下を実行することを忘れないでください。,
-
クライアント上で
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
-
サーバ上で
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
クライアントマシンから問題を再現しようとし、問題が再現されたと感じたらすぐに、コマンドを使用してトレースを停止します
Netsh trace stop
microsoft network monitor3.4またはメッセージアナライザでトレースを開き、
-
Ipv4.address==<client-ip>
およびipv4.address==<server-ip>
およびtcp.port==135
またはtcp.port==135
, -
“Protocol”列の下にある”EPM”プロトコルを探します。
-
ここで、サーバーから応答を取得しているかどうかを確認します。 応答が表示された場合は、使用するために割り当てられている動的ポート番号をメモしてください。
-
この動的ポートに正常に接続されているかどうかを確認します。,
-
フィルタは次のようになります。
tcp.port==<dynamic-port-allocated>
およびipv4.address==<server-ip>
これは、接続を確認し、ネットワークの問題が見られるかどうかを特定するのに役立ちます。
Port not reachable
RPCサーバーが利用できないと表示される最も一般的な理由は、クライアントが接続しようとする動的ポートが到達可能でない場合です。 クライアント側のトレースでは、動的ポートのTCP SYN再送信が表示されます。,
次のいずれかの理由により、ポートにアクセスできません。
- 動的ポート範囲が環境内のファイアウォールでブロックされています。
- 動的ポート範囲が環境内のファイアウォールでブロックされています。
- 中間デバイスがパケットをドロップしています。
- 宛先サーバーがパケットをドロップしています(WFP drop/NIC drop/Filter driverなど)。
Leave a Reply