Windows/Linux

ARPって何だ・・?新入社員が調べてみた(Linux版)

この記事は投稿日から2年以上経過しています。

今回は新入社員研修の一環として、ナレッジステアを書こうという事で作成しました。

若手エンジニア志望者を募集!支度金あり

テーマは「ARPとは何?」で、経緯としては先輩方からARP、特にGARPをよく使うとの事で、この機会に勉強しながら書いてみようと思い、本記事では以下の事をまとめました。

1.ARPとは何か

2.ARPテーブルについて

3.コマンドを使って実践

目的・・
ARPを知らない方がこの記事を見て、一通りの知識を得て、更に知識を深める足がかりとなる記事を目指します。

ARPとは何か

ARPは「Address(住所) Resolution(解決) Protocol(プロトコル)」、の略で「アープ」と呼ばれます。役割としてはIPアドレスを手掛かりにMACアドレスを見つけようとする際に使用されます。

流れとしては、同一セグメント上の各機器にARPリクエストがブロードキャストされ、ARPリクエスト内のIPアドレスと一致した機器のみがARPリプライとして回答をユニキャストで返します。

どんな種類があるか

ARPは全部で4種類あり、ARP・RARP・GARP・ProxyARPでそれぞれ機能が異なります。

ARP・・
IPアドレスを手掛かりに、そのIPアドレスに対応したMACアドレスを見つけます。

Reverse ARP・・
MACアドレスを手掛かりにMACアドレスに対応したIPアドレスを見つけます。

Gratuitous-ARP・・
自身に設定されているIPアドレスを使用した自発的なARP。(業務でよく使うとの事)

例1・自身のIPアドレスが重複していないかの確認。(IPアドレスを設定後に実施)

例2・同一セグメント上のARPキャッシュの更新

(Act-Stbの冗長構成などでマスター機が切替わった事を通知)

ProxyARP・・
ルーターが異なるセグメント宛てのARP要求に対し、対象のIPアドレス宛のルートを知っていれば、その対象のIPアドレスの代わりにARP応答を返す機能です。

※ARPキャッシュ・・ARPテーブルの別名

ARPテーブルについて

ARPを行う際に、何度も問い合わせを行わなくても済むように、回答を一時的に記録しておく表がARPテーブルです。尚、ARPテーブルには有効期限があり、期限が来ると破棄され、再度問い合わせる必要があります。

表示方法

環境・・
AlmaLinux 8.7

コマンド・・

ip n又はip neigh show

ARPテーブルの見方

構成・・

  • IPアドレス
  • dev 自ノードのインターフェース名
  • lladdr MACアドレス
  • ステータス STALE(更新してからしばらく経っていますよ)
  • REACHABLE(最近更新されましたよ)

現在このLinuxサーバはMACアドレスを4つ知っているという事が分かります。

コマンドを使って実践

実際に各種類のARPを実践します。

環境図

※Proxy ARPとRARPは検証環境の都合上、今回は割愛します。

ARPの実践

目的・サーバー03でサーバー04のIPアドレスに対応したMACアドレスを求めます。

使用コマンド・・

arping -c(送信回数) IPアドレス

IPアドレスに紐づいているMACアドレスが表示されました。

GARPの実践

手動の場合

目的・・
サーバー03で使用するIPアドレスの重複が無いか確認

使用コマンド・・

arping -D  -c (送信回数)  -I インターフェース名 IPアドレス

※―DはIPアドレスの重複検知 -Iはインターフェースが複数ある際に指定します。単体しかなければ省略しても問題ありません。

サーバー04で該当のIPアドレスを使用している為、返答が来ました。

 

存在しないIPアドレスだと・・・・

誰も使っていないので返答がありません。

 

IPアドレス変更の場合

目的・・
ネットワークマネージャーを使用してserver03のIPアドレスを変更した際にGARPが使用されている事の確認

ネットワークマネージャーを起動

使用コマンド・・

nmtui

IPアドレスを変更

設定したインターフェースの再起動

使用コマンド・・

nmcli con up インターフェース名

サーバー04からtcpdumpを用いて再起動時のパケットを確認

(一部抜粋・必要に応じてtcpdumpをインストール)

使用コマンド・・

tcpdump -I インターフェース名 (プロトコルの指定)

※今回は分かり易くする為にgrepで必要な部分のみ表示しています。

パケットから「172.23.61.163を持っている機器はあるのか?あれば172.23.61.163へ伝える事」と読み取れます。

GARPの特徴として、重複を確認するIPアドレスと回答を返すIPアドレスが同じになります。つまりIPアドレスを変更する際の機能の1つとしてGARPが組み込まれている事が分かります。

ARPを学んで・・・

ARPは知識としては知っていましたが具体的にどの様に扱うのかをこの機会に実践しながら学び、改めてARPの用途、仕組み、種類などを知りました。その上で業務ではなぜ必要なのかを考える良い機会になりました。

 

参考

【図解】GARP の機能や仕組み 〜 Linux での動作やciscoでの設定〜

FortiGateのGARP(Gratuitous ARP)の送信タイミングについて検証してみた!

【 ip 】コマンド(応用編)――ARPテーブルを管理する

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

arpingコマンドの使い方

若手エンジニア志望者を募集!支度金あり

LogStare Collector 無償版

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

【FortiGate】CLIコンソールでのログの表示方法前のページ

tracerouteの使用方法とオプションについて次のページ

ピックアップ記事

  1. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  2. ログフォワーダー「okurun.jar」について
  3. Zabbixヒストリデータのレポート生成について
  4. IoT機器「Raspberry pi」とLogStare Collectorで温…

関連記事

  1. Windows/Linux

    [Linux/Windows]IPアドレスとルーティング確認方法

    本記事では、初心者用として、LinuxとWindowsを用いてIPアド…

  2. Windows/Linux

    テキストマッチングを利用したAudit.logの監視について

    当記事では、LogStare Collector(以下、LSCと記載)…

  3. Windows/Linux

    SSH接続切断時にプログラムが停止する理由と対処法

    処理に時間のかかるプログラムをSSHから実行していたのですが、別の作業…

  4. Windows/Linux

    Windows ServerのDHCPログをLSCにて収集する方法

    当記事では、Windows ServerのDHCPログをLogStar…

  5. Windows/Linux

    .bash_historyの出力内容をLSCにて収集する方法

    当記事では、.bash_historyの出力内容をLogStare C…

  6. Windows/Linux

    rsyslogをホスト名、IPアドレスごとにフォルダー分けする方法

    当記事では、rsyslogで受信したログを送信元ホスト名、IPアドレス…

若手エンジニア志望者を募集!
LogStare Collector 無償版
クラウド活用の「困った」「焦った」事例
月額200円でM356の監査ログの運用レベルUP LogStare M365
AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
  2. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について
  3. NW機器

    PaloAltoのIPsec IKEv1 Phase1におけるトラブルシューティ…
  4. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  5. 実践記事

    DNSキャッシュポイズニングやってみた
PAGE TOP