本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-NetNeighbor」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ネットワークアダプターのARP(Address Resolution Protocol)テーブルを取得する「Get-NetNeighbor」コマンドレットです。
IPネットワークの通信経路は、異なるネットワーク(サブネット)宛ての通信であればサブネット間を接続する「ルーター」を介して行われます。その際の宛先はIPアドレスで指定され、コンピュータはルーターにIPアドレスで転送を依頼し、ルーターが適切な経路にパケットを転送します。
IPアドレスはいわゆるOSI(Open Systems Interconnection)参照モデルではレイヤー3(ネットワーク層)のアドレスとなりますが、同一サブネット上のルーターをはじめとする他のコンピュータと通信するには、IPアドレスとレイヤー2(データリンク層)のアドレスである「MACアドレス」(Media Access Control address)とひも付けて管理する必要があります。
通信先のIPアドレスを持つMACアドレスを取得するために使用されるプロトコルが「ARP(Address Resolution Protocol)」ですが、通信を開始するたびに毎回ARPを利用してIPアドレスに対応するMACアドレスを取得するのは非常に効率が悪く、ネットワークにも負荷をかけてしまうため望ましくありません。
そのため、OS側でメモリ上にIPアドレスとMACアドレスをひも付けたデータをキャッシュとして一定期間保持し、頻繁にARP解決が行われないようにしています。
「Get-NetNeighbor」は、このキャッシュされたARPテーブルを参照するコマンドレットです。Get-NetNeighborコマンドレットは、従来コマンドプロンプトで使用していた「arp」コマンドの「-a」オプション付き実行と同等のものとなります。
なお、データリンク層、ネットワーク層といったOSI参照モデルの詳細に関しては、「ネットワーク用語辞典」を参照してください。
オプション | 意味 |
---|---|
-IPAddress | ARPテーブルから参照したいIPアドレスを指定する。省略可能 |
-InterfaceIndex | 情報を取得するネットワークアダプターの番号を指定する。省略可能 |
-State | ARPのステート(状態)を指定して、該当するステートのARPテーブルのみ取得する。7種類のステートから指定する。省略可能 |
-LinkLayerAddress | ARPテーブルから参照したいMACアドレスを指定する。省略可能 |
-AddressFamily | プロトコル(IPv4/IPv6)を指定する。省略可能 |
Get-NetNeighborコマンドレットをオプションなしで実行すると、プロトコル(IPv4、IPv6)を問わず、コンピュータが保持している全てのARPテーブルを取得します(画面1)。
Copyright © ITmedia, Inc. All Rights Reserved.