FAQ
Q11.i5/OSでの PINGコマンドの使い方について教えてください。
System i でも Linux やUNIX, Windows と同様なTCP/IP関連のコマンドを使用できます。PINGコマンドは最も基本的なコマンドの一つですが、TCP/IP通信が正常に動作しているかなどを確認する際に非常に重要です。
PING とは
pingコマンドを使用するとICMPを使用して通信相手とTCP/IP通信が可能か確認することが出来ます。通信相手がルーターなどを経由したリモートネットワーク上にある場合には、System
i側とリモートの通信相手側との双方からpingコマンドを実行することにより、経路指定を含めた両方のTCP/IP設定が正しいか、また途中のルーター等通信機器の設定が正しいかを確認することが出来ます。リモートの通信相手と通信する場合、System
iと通信相手のクライアントのルーティング設定だけでなく、間にあるルーターなどネットワーク機器のルーティング設定も正しい必要があります。pingコマンドをSystem
i側、クライアント側の両方から実行して片方向しかpingが正常に動作しない場合などは、途中のネットワーク機器のルーティング設定などが正しくない、といった原因が考えられます。
* ping は正式には「ピン」と呼びますが日本語では「ピング」と呼ぶことが一般的です。
System i での pingコマンドの使用方法
PINGコマンドの最も一般的な使用方法は以下のように、引数として相手ノードのIPアドレスやホスト名を指定して起動するものです。
コマンド入力 LUCY03
要求レベル : 4
前のコマンドおよびメッセージ :
( 前のコマンドまたはメッセージがない。 )
終わり
コマンドを入力して,実行キーを押してください。
===> PING LUCY02
F3= 終了 F4=プロンプト F9= コマンドの複写 F10= 詳細なメッセージの組み込み
F11= 全画面表示 F12= 取り消し F13= 情報援助 F16=システム・メイン・メニュー
PINGコマンドをQCMD画面から実行した場合は、下図のように結果が表示されます。(PINGコマンドの処理結果は端末画面の最下行にメッセージとして表示される場合があります。その場合は最下行のメッセージにカーソルを合わせてPF1キーを押すか、DSPJOBOLOGコマンドを実行することで詳細な実行結果を表示できます。)

(1) 192.168.15.15 − PINGコマンドで宛先に指定したホスト名(LUCY02)をIPアドレスに変換したものです。ホスト名→IPアドレス変換は、CFGTCP
オプション10のホスト・テーブル(HOSTSファイルに相当)またはCFGTCP オプション12のドメイン・ネーム・サーバー(DNSサーバー)への問い合わせによって変換します。問い合わせの順序はCFGTCPオプション12のホスト名検索優先順位によって決定されます。(下図の例では*LOCALと指定されているので、先にi5/OS上のホスト・テーブルが検索されます。ホスト・テーブルに該当するIPアドレス/ホスト名が登録されていない場合は、ドメイン・ネーム・サーバー の項目に指定されたDNSサーバーに名前解決の問い合わせを行います。下図の例では、ドメイン・ネーム・サーバー
の項目に指定が無いので、外部のDNSサーバーには問い合わせを行いません。つまりCFGTCP
オプション10のホスト・テーブルに登録が無いホスト名・IPアドレスについてはi5/OSからは名前解決できないということになります。
(2) 0 ミリ秒 − PINGコマンドによって送出されたICMPパケットがi5/OSと相手先とを往復するために要した時間です。この例では1ミリ秒未満であったため0ミリ秒と表示されています。例えばネットワーク遅延などが発生している場合、この値が大きくなるため問題判別には有用です。
(3) 256バイト − PINGコマンドによって送出されたICMPパケットの後のデータ(内容は特に意味の無い文字列)が256バイトであることを示しています。i5/OSの場合はデフォルトで256バイトの文字列をデータとして付加しますが、この値はOSによって様々です。ちなみにWindowsでは32バイトとなっています。送出するデータのバイト数を変更することも出来ます。
(4) TTLは64です − TTLとはTime to Live のことです。相手側からi5/OSへpingの応答が戻るまでに、いくつのルーターを通過したかを表します。i5/OSのTTLの初期値はデフォルトが64です。TTLの初期値から、ルーターを1回通過するたびに1ずつ少なくなり、戻ってきたときの値が表示されます。この例ではTTL=64なので192-168.15.15はi5/OSと同一ネットワーク上(ルーターを経由しないローカルLAN上)に存在していることがわかります。TTLの初期値はOS毎に決まっています。例えばi5/OS,
Windowsはともに64です。i5/OSのTTL値は CHGTCPAコマンドのIPTTLパラメーターで変更することが出来ます。
(5) PINGコマンドを実行すると、合計5回ICMPパケットを送出します。その際のICMPパケットの最小往復時間、平均往復時間、最大往復時間を表示します。ネットワークに問題がある場合は、この値の振れ幅が大きめになったりします。また2行目にはICMPパケットが何回正常に送受信できたかが表示されます。昨今のネットワークにおいては、何も問題がなければ100%正常に実行されるはずです。もし1回でもエラーになる場合には、重度のネットワーク遅延の発生などネットワーク上に何らかの問題がある、と考えることができます。
CFGTCP オプション12 DNS名前解決の検索順序、DNSサーバーアドレスの指定画面

(参考) WindowsからのPING実行例
ご参考までにWindows XPからのping実行例を以下に示します。i5/OSの場合と同じ情報が入手できることが分かります。
C:\Documents and Settings\Guest>PING LUCY02
Pinging lucy03 [192.168.15.15] with 32 bytes of data:
Reply from 192.168.15.15: bytes=32 time=2ms TTL=60
Reply from 192.168.15.15: bytes=32 time=1ms TTL=60
Reply from 192.168.15.15: bytes=32 time<1ms TTL=60
Reply from 192.168.15.15: bytes=32 time<1ms TTL=60
Ping statistics for 192.168.15.15:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 2ms, Average = 0ms
C:\Documents and Settings\Guest>
- LUCY02 というシステム名から 192.168.15.15 のIPアドレスに変換してPINGを実行しています。
- 32バイトのデータをICMPパケットに付加して送出しています。
- 4回ICMPパケットを送出しており、最大時間は2ミリ秒、最低時間、平均時間は1ミリ秒未満です。
- TTL=60ですのでこのWindows XPとi5/OS(LUCY02)の通信には4回ルーターを経由していることが判ります。
PINGコマンドでIPアドレスを指定する場合は構文が異なる
Windows や UNIXでは、PING LUCY02 で PING 192.168.15.15 でもどちらも正常に実行されますが、i5/OSのPINGコマンドでは異なります。i5/OSでIPアドレス指定でPINGを実行する場合は、以下のようにパラメーター指定する必要があります。
コマンド入力 LUCY03
要求レベル : 4
前のコマンドおよびメッセージ :
( 前のコマンドまたはメッセージがない。 )
終わり
コマンドを入力して,実行キーを押してください。
===> PING RMTSYS(*INTNETADR) INTNETADR('192.168.15.15')
F3= 終了 F4=プロンプト F9= コマンドの複写 F10= 詳細なメッセージの組み込み
F11= 全画面表示 F12= 取り消し F13= 情報援助 F16=システム・メイン・メニュー
PINGコマンドでIPアドレスを指定するには、PING RMTSYS(*INTNETADR) INTNETADR(‘ IPアドレス ‘) と指定します。
PINGコマンドの追加パラメーター
PINGコマンドには以下のような追加のパラメーターを指定できます。(以下はi5/OS V5R4の場合です。それ以外のバージョンでは若干異なる場合があります。)

アドレス・バージョン形式 − 通常のIPV4形式以外にIPV6形式も使用できます。
応答メッセージの詳細 − *QUIETを指定すると、途中のパケット送出のステータスを表示しなくなり、最後の実行結果のみを表示します。
要約, 応答エラーの場合 − PINGコマンドをCLプログラム等に組み込んでPINGの結果をモニターしたい場合、*ESCAPEとすることでPINGのエラーメッセージをモニターできるようになります。
パケットの長さ − ICMPパケットと同時送出するパケット長を変更することが出来ます。デフォルトは256バイトです。
バケット数 − 一回のPINGコマンドで送出されるICMPパケットの回数を指定します。デフォルトは5回で最大は999回です。
待ち時間 − 送出したICMPパケットが戻ってくるまでの(エコーパケットを待機する)待ち時間(秒)を指定します。この値の時間内にパケットが戻ってこない場合、ICMPパケットの送出がエラーとなります。デフォルトは1秒=1000ミリ秒です。

ローカルIPアドレス − PINGを実行するi5/OS上に複数のIPアドレスがある場合に、PINGの送出元として使用したいIPアドレスを指定します。
IP有効時間(ホップ限界) − PINGコマンドのTTL値を変更することが出来ます。*DFTの場合
CHGTCPAコマンドのIPTTLパラメーターと同一になります。
iSeriesナビゲーターからのpingの実行方法
iSeriesナビゲーターのPing ユーティリティーを使用してGUIで TCP/IP 接続をテストできます。システムを PING するには、以下のステップを実行します。
(1) iSeries ナビゲーターを開始して、iSeries サーバー > 「ネットワーク」を展開します。
(2) 「TCP/IP 構成」を右クリックしてから、「ユーティリティー」を選択します。
(3) 「PING」をクリックして、「PING」ダイアログ・ボックスを表示します。
(4) 「PING」ボックスに、ホスト名 (たとえば、companyname.com) を入力します。
(5) 「今すぐ PING」をクリックします。
「結果」ボックスにメッセージが表示されて、接続状況が示されます。
PINGコマンドのエラー・メッセージ
PINGコマンド実行時の主なi5/OSエラー・メッセージは以下の通りです。
TCP2670 要求を完了することができない。
TCP/IP サービスは使用できません。
TCP/IP がまだ開始していないか、または開始の処理が完了していません。 NETSTAT
コマンドを使用して TCP/IP がアクティブであるか確認してください。
TCP3423 使用可能な TCP/IP サービスがない。
TCP/IP がまだ開始していないか、または開始の処理が完了していません。 NETSTAT
コマンドを使用して TCP/IP がアクティブであるか確認してください。
QSYSWRK サブシステム内のすべてのジョブが開始していない可能性があります。活動ジョブ処理
(WRKACTJOB) コマンドを使用して、QSYSWRK サブシステムおよび関連するジョブがアクティブであるか確認してください。特に、QTCPIP
ジョブはアクティブであることが必要です。これらがアクティブでない場合は、ジョブ・ログまたはシステム・デフォルト出力待ち行列を調べて何かメッセージがないか確認してください。
注: オペレーティング・システムが制限状態にあるときに TCP/IP を使用すると、
QTCPIP ジョブはアクティブにはなりません。
TCP3409 リモート・ホスト・システムとの接続を確立することができない。
NETSTATコマンド等で、System iのIPインターフェースがオンになっているか確認してください。また、それに関連する回線記述、および
TCP/IP 経路(ルーター等)が使用可能かをチェックしてください。
TCP3213 リモート・システムに到達できない。
要求された宛先への経路を検出できませんでした。 NETSTAT のオプション 2 をチェックし、*DFTROUTE
または相手先へのルーティング経路が構成されておりアクティブであるか確認してください。
TCP3206 接続検査 1 リモート・ホストが 10 秒以内に VFYTCPCNNに応答しなかった。
構成は正しいと思われますが、リモート・システムからの応答がありません。リモート・ホストからPINGコマンドでこちらのシステムに到達できるかを確認してください。
両システムのホスト・テーブルまたはリモート・ネーム・サーバー (ネーム・サーバーを使用している場合)、および
TCP/IP のインターフェースと経路をチェックしてください。何らかの理由で、リモート・ネーム・サーバーが正常に機能していない可能性もあります。
イーサネット回線記述で正しいイーサネット標準または *ALL を指定してあることを確認してください。
メッセージ ID TCP3202 VFYTCPCNN: 不明のホスト xxxxxx (xxxxxx はホスト名)
指定したホスト名が、ホスト・テーブルまたはネーム・サーバーのいずれかを使用して、名前解決できませんでした。CFGTCP
オプション10のローカル・ホスト・テーブルまたはCFGTCP オプション12に指定したDNSサーバー
(DNSサーバーを使用している場合) を調べて、リモート・ホストの項目をチェックしてください。
DNSサーバーに Ping を発行して、DNSサーバーに到達できるかを検査してください。
参考 CWBPING
通常のPINGコマンドとは別にCWBPINGコマンドというものもあります。CWBPINGコマンドを実行すると、ターゲットのSystem i 上でSTRHOSTSVRコマンドで開始される各種サーバー・デーモン・ジョブの稼動状況を確認できます。CWBPINGコマンドはiSeries Accessを導入したクライアントから実行することが出来ます。(i5/OS上からは実行できません。)実行はWindowsなどのコマンドプロンプト、または iSeries ナビゲーターから可能です。(下表はiSeriesナビゲーターからの実行例です。System i のアイコンを右クリック→サーバーへの接続→接続を検査 として実行) CWBPINGでSystem iと正常に通信が出来ない場合はi5/OS上でSTRHOSTSVR *ALL コマンドを実行してサーバー・デーモン・ジョブを起動する、TCP/IPネットワーク構成を確認する等を行います。CWBPING コマンドの詳細はSystem i インフォセンターで検索してください。

