工事中・・・・・
(5)LAN内の端末の確認方法
・ARPテーブル(LAN内端末のIPアドレスとMACアドレスの対照表)の確認
ここで、問題となる端末が所属するLANのネットワークアドレスが192.168.0.1/24であるという仮定を入れておきます。
まず、端末がすでに持っているARPテーブルが完全でない(情報が古い、網羅できていない)を仮定して、ARPテーブルを作りなおさせるコマンドを打ちます。コマンドプロンプトで入力します。現状で一度ARPテーブルを確認したいときは、pingを打つ前にarpコマンドを実施しても構いません。変化が見られたら面白いです。
ping 192.168.0.255 (操作端末からブロードキャストへpingを打つ)
※ブロードキャストへのパケットはルータを超えることはできないこと。電源が入っていないかネットワークに接続できていない端末の情報は得ることはできない。無線接続で使っている端末でARPを取得すると、完全なものは取得できない時もあります。プライバシーセパレータ機能以外にも、APの制限や不具合でLAN内端末の全ての情報を取得できない場合もあります。有線接続した端末で行うのが望ましい。
arp -a (操作端末が持つARPテーブルを取得します)
結果のサンプル **には本当は0から9までの数字かaからfまでの英字が入っています。
Interface: 192.168.0.6 --- 0x2 コマンド操作している端末のIPです。
Internet Address Physical Address Type
192.168.0.1 10-**-**-**-**-** dynamic
192.168.0.2 34-76-**-**-**-** dynamic
192.168.0.4 00-c0-**-**-**-** dynamic
192.168.0.8 00-a0-**-**-**-** dynamic
MACアドレスは Physical Addressと表記されます。上位24バイトの部分(例:10-**-**)はベンダーコードと言われ、製造メーカを判別できる固有の値が入っています。これだけでも、各IPアドレスを取得している端末の予想はつきますが、もう一歩進めましょう。
192.168.0.4はどうもPCらしいので、次のコマンドを打って見ましょう
nbtstat -a 192.168.0.4
結果のサンプル
インターフェース名(イーサネットやWi-Fi等)
Node IpAddress: [192.168.0.6] Scope Id: []
NetBIOS Remote Machine Name Table
Name Type Status
---------------------------------------------
DESKTOP-******* <00> UNIQUE Registered
DESKTOP-******* <03> UNIQUE Registered
DESKTOP-******* <20> UNIQUE Registered
..__MSBROWSE__.<01> GROUP Registered
WORKGROUP <00> GROUP Registered
WORKGROUP <1D> UNIQUE Registered
WORKGROUP <1E> GROUP Registered
IPアドレスからデバイス名(NETBIOS名やPC名といったりする)をNETBIOSで公開している端末、WindowsPCやNASなどを見つけることができます。
プロキシサーバや、セキュリティ機器(IPSやIDS、UTMなど)などのログからLAN内で不審な通信を行っている端末のIPアドレスを突き止めれば、どの端末であるかもコマンド操作でわかるようになっています。機器によってはログにDESKTOP-*******といったデバイス名がはじめから記載されているものもあります。
LAN内のPCのIPアドレスを全て固定で設定している場合、誤って別の機器のIPを使用している端末を割り出すことにも使えます。
(参考)
コマンドプロンプトからNetBios名のわかっているPCのIPを調べつつ、疎通も確かめる
ping -4 DESKTOP-*******(デバイス名、Netbios名) IPv4アドレスに変換してPINGしてくれるので画面結果から判別できる。-4はIPv4という意味。
ping DESKTOP-*******(デバイス名、Netbios名) Vista以降はこのコマンドではデバイス名をIPv6アドレスに変換してPINGしてくれる。xp以前ではping -4と同じになる。ping宛先のIPv6アドレスがわかる。
(6)pingやtracert、arpを使ったネットワークの切り分け
・pingの実行結果の詳細な見方
Windowsでping (IPアドレス)を実施した場合 4回のping送信が行われ、その回答(戻りパケット)があった場合は受信とカウントし、パケットがロスして、回答がなかった場合は損失としてカウントし、その結果を表示します。
重要なことは、回答があった場合でも、様々な種類のものがあるということです。192.168.0.1は試験端末のデフォルトゲートウェイとなっているルータのIPアドレスです。このルータに異常なければ、通常は、次のような結果です。
(正常なPingの結果の例)
192.168.0.1 に ping を送信しています 32 バイトのデータ:
192.168.0.1 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.1 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.1 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.1 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms
(異常なpingの例−1)
ping 192.168.0.21をコマンドプロンプトで実行します
・IPアドレスが192.168.0.21という機器が実在しますが、電源を入れ忘れていました。192.168.0.5は試験端末のIPアドレスです。前の例と異なり、pingの対象からは応答がなく、pingを送信している自分のPCが192.168.0.21に対してICMPで送信したが届きませんでしたよというのが以下の結果です。この場合は回答が帰ってきているので、損失は0です。
192.168.0.21 に ping を送信しています 32 バイトのデータ:
192.168.0.5 からの応答: 宛先ホストに到達できません。
192.168.0.5 からの応答: 宛先ホストに到達できません。
192.168.0.5 からの応答: 宛先ホストに到達できません。
192.168.0.5 からの応答: 宛先ホストに到達できません。
192.168.0.21 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
(異常なpingの例−2)
・今度は検証環境では存在しないネットワークセグメントに対して、pingを打ちます。
Ping 192.168.1.1を実行します。
192.168.1.1 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
192.168.1.1 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、
192.168.1.1も192.168.0.21もpingに応答できなかったわけですが前者は損失0で後者は損失4です。この違いはどこになるのか、tracertコマンドの結果を比較して見ます。
(異常なpingの例−1)
(異常なpingの例−2)
192.168.1.1 へのルートをトレースしています。経由するホップ数は最大 30 です
1 <1 ms <1 ms <1 ms 192.168.0.1
2 3 ms 2 ms 2 ms ISPがルータに払い出しているIPアドレス
3 3 ms 2 ms 3 ms
4 3 ms 3 ms 3 ms 61.205.119.81
5 * * * 要求がタイムアウトしました。
6 * * * 要求がタイムアウトしました。
7 * * * 要求がタイムアウトしました。
(省略)
29 * * * 要求がタイムアウトしました。
30 * * * 要求がタイムアウトしました。
トレースを完了しました。
パケットの最大ホップ数を超過したので、パケットは消えてしまいました。デフォルトゲートウェイ(192.168.0.1)が知らないネットワーク(192.168.1.0/24)上192.168.1.1へのPingは192.168.0.1のでデフォルトゲートウェイである