CiscoルータのGARP送出タイミング

ルータのリプレース案件があり、ARPクリアとかしなきゃかなぁ?と考えていた。
リプレースのタイミングでルータがGARPを出してくれれば問題ないのだが、
どういうタイミングでGARPを出すのか、なんとなくしか覚えていなかった。

ちょうど良い機会なので、調べたりキャプチャしたりで情報を集めてみた。
新たな発見もあったので、早速メモしておく。


GARPとは?


その前に軽くGARPについてまとめてみた。

GARPとは、正式には「Gratuitous ARP(グラチュータス・アープ)」といい、
簡単に言うと自分自身のIPアドレスに対するARPのことである。

主な役割としては、下記2点が挙げられる。

 ①自分自身に設定されているIPアドレスに対する同一セグメント内での重複有無確認
②同一セグメント内の機器の古いARPキャッシュを自分のMACアドレスで更新させる


GARPが上手く働かないと、古いARPキャッシュのままになるので、
自動か手動でARPクリアをしない限り通信が不可になるのである。
Ciscoだとデフォルト4時間で自動クリアされる。
4時間経過する前に作業失敗で切り戻しになるのが目に見えている・・・恐ろしや。

ちなみにWikipediaには下記のように記載されている。

Gratuitous ARP (GARP)はARPの一つで、ARPパケットの送信元ホスト自身のIPアドレスに対するARP(IPアドレスに対応するMACアドレスの取得)である。

主に、ホストにIPアドレスを割り当てる際に、他のホストがすでに同じIPアドレスを使用していないか確認したり、相手の通信機器のARPテーブルに送信元ホストのIPアドレスとMACアドレスを追加させるために使用する。ARP本来の目的である相手の接続機器のIPアドレスに対するMACアドレスの取得のために使用するわけではない。

※引用:Gratuitous ARP(Wikipedia)

もう少し噛み砕いてみると・・・
「このIPアドレス誰の~?」とブロードキャストするのが通常のARPであるが、
これに対しGARPは「このIP俺のだけど誰か使っている奴おる~?」と問合せて、
「特にいなければこれ俺のIPだから登録よろしく!」って投げかけている感じになる。

実際には、自分自身のIPアドレスをARPリクエストして、
誰も答えなければ重複なしと判断して、そのまま使用するという感じ。

"Gratuitous"は"無意味な、余計な"という意味の英単語である。
自分自身のIPアドレスをARPリクエストすることからついた名前らしい。
実際はものすごく大切なことをしているので、全然無意味ではないんだけどね。


CiscoルータのGARP送出タイミング


さて本題に戻る。

昔はルータリプレースとなると、各所でARPクリアして、
対象IPアドレスと古いMACアドレスの紐付けを解除していたのだが、
最近でもやはりやらなければいけないのだろうか?

とりあえず、ルータがGARPを出すタイミングをざっくりまとめてみた。
これがすべてでは無いと思うが、代表的なところだと思う。

  • 機器の起動時(再起動も含む)
  • ケーブル結線時のInterfaceのLink Up時
  • Interfaceを"no shut(shut/no shut)"した時
  • InterfaceのIPアドレスを付け替えた時
  • HSRPやVRRPのアクティブ機が切り替わった時


"no shut"時とIPアドレスの付け替え時は半信半疑だったが、
キャプチャしてみたらちゃんとGARPを吐いていた。
まじか!知らなかったや。

となると、ますますどんなときにARPクリアしなくてはならないかが謎だな。

古いIOSなどは、もしかしたらGARPを出さないことも多かったのかもしれない。
最近のIOSでは問題ないということであれば納得だ。

L3スイッチもほぼほぼ同じようなものだと思っているが、SVIとかはどうなるんだろ?
調べきれていないのであまり言及はしないことにしよう・・・。


とりあえず、今回は以上で。



初心者のためのCiscoルータ運用ガイド
最速でCiscoルータを理解するための解説書


この記事へのコメント