goo blog サービス終了のお知らせ 

ぢろーらものおもちゃ箱:引っ越し後

写真付きで日記や趣味を書くならgooブログ

Gratuitous ARP

2010-07-13 22:35:03 | IT(OS)

ええと、最初みたときまず「読み方がよくわからない」という感じです。確かどなたかは「ぐらなんちゃら」って言ってたな・・・・(汗)。

一応、http://dictionary.goo.ne.jp/leaf/ej3/37133/m0u/gratuitous/ の発音などを聞く限り、ぢろーらもはその読み方に近いかな・・・ということで「グラテュアタス(アープ)」とと読んでます。まあ、「GARP」と読んでしまうのが誤解がないかも・・・。

もちろん、日本で使う場合には「英語読み」が一般的とは限りません。たとえばルータもアメリカでは「ラウター」のほうが発音は近いようです。

ま、発音のことはいいとして・・・。

Gratuitous ARPは自分のIPあてに送信するARPです。パケットの中身が実際どうなっているかについてはhttp://sites.google.com/site/fitelnetmanabukun/home/gratuitous-arp などにも紹介されているようです。

”gratuitous”は”必要のない、無駄な”という意味もあるとおり、本来は自分のIPに対するARPは無駄なように思います。だって、自分のMACアドレスだったら自分でわかるはずですし。でも、割と使われている場面は多いんです。

もっとも身近な例でいえば、http://net-juku.org/tcpip/tcpip82.html などにあるように、Windows端末のIPアドレス重複検出が思い浮かびます。Windows端末はネットワークに接続するとGratuitousARPをネットワークに送信します。で、それに対して他の端末から応答がある、ということは「自分が使おうとしているIPアドレスをすでに使っている端末がある」ということになります。当然その場合にはIPアドレス変更しないといけません。

まあ、本当に重複していればそりゃ「重複してます」といわれて当たり前なのですが、ぢろーらもは実際IPアドレス違う端末を接続しているはずなのに「重複してます」って言われて困ったことがありました。このときの原因としては、どうもネットワーク機器でProxy-ARPが有効にしてあり、しかもその機器のスタティックルートが間違っていた、というような理由でした。

たとえば、ネットワーク機器のセグメントを2つにわけている状態で、Windows端末を(IPセグメント的に)本来属するほうでないセグメントに接続してしまったら何が起こるでしょうか?要するに、Windows端末が接続されたときに送信したGratuitousARPに対してProxy-ARPを有効にしたネットワーク機器が答えてしまうため、IP検出と間違ってしまう、ということになります。これも正しく端末を配置すれば済む話ですが、原理がわかっていないと混乱してしまいます。

あと、GratuitousARPが使われる例としては、冗長化構成で同じ仮想IPを共有している機器がFailover(ふぇーるオーバー:Active-Standbyの切り替わり)する場合、新しくActiveになった機器のMACアドレスをまわりの端末や上位/下位のスイッチやルータに学習させるために送信する、というのもあります(そうしないと、MACアドレスのエージングタイム(数分~数時間)の間通信できない場合もあります)。

たとえば例としてはhttp://www.atmarkit.co.jp/fnetwork/rensai/lb03/lb01.html です。この例はロードバランサですね。あと、WindowsサーバのMSCS(Microsoft Cluster Service)でもFailover時はGratuitousARPでMACアドレスの再学習を促しています。

ロードバランサにせよルータにせよファイアウォールにせよ、VRRPベースで冗長化を行なっているものが多いですが、その場合だと冗長化の際にIPアドレスだけでなくMACアドレスも機器の実MACではなく仮想MACを使っているものも多くあります。仮想MACを使っていればFailover前後でMACアドレスもかわらないので、そもそもGratuitousARPは必要ないかもしれません。

ただ、スイッチによっては「”このMACアドレスはどの物理ポートで学習したか”」なんて情報も保持している場合があり、その場合には仮想MACを使用していてもFailover後にしばらく通信ができなくなる場合もあります。その場合、やはり仮想MACを使うのであってもGratuitousARPに対応しているほうが望ましいことになるかと思います。

また、仮想MACにはマルチキャストMACアドレス(01-00-5Eではじまるもの)が使用されることも多いのですが、スイッチによってはこのアドレスがうまく学習できない場合もあります。たとえばCiscoのCatalystでは、http://www.cisco.com/JP/support/public/ht/tac/100/1008459/arp-cam-tableissues-j.shtml の最後あたりにあるように、「マルチキャストMACはIPマルチキャスト(クラスD)でのみ使う」ことが前提となっているようで、機器を冗長化する場合のように「仮想IPはクラスA~Cの(通常の範囲)、MACアドレスはマルチキャスト」という組み合わせだとうまく学習ができないため、回避策としてはスイッチ側に静的MACをあらかじめ追加しておく、という回避策が必要になります。

余談ですが、この”Gratuitous”もそうですが、ITでよく出てくる言葉だとほかにも「どちらかというとネガティブな言葉だな・・・」というものはあります。CLIのコマンドオプションで詳細な情報を表示するための”Verbose”というのも、「くどい、冗長な」という意味です。単純で軽量でネットワーク機器に搭載しやすいことからネットワーク機器のコンフィグやファームウェアのアップグレードなどによく使われるTFTPも、Tは「Trivial=ささいな、とるにたらない」という意味です。特にTFTPなんかは重要なんですけどねぇ・・・。

それを言ったら、我々がよく使う、安全なネットワークを構築する上では絶対に欠かせない「冗長化」というのも、「話が冗長だ」といったらネガティブな意味ですしねぇ・・・。

ええと、これ以上話すと冗長になりそうなので、やめておきます(笑)。


この記事が気に入りましたら、また、お役に立ちましたら、以下のアイコンをクリックしていただけると嬉しいです(^^)

ブログランキング・にほんブログ村へ

最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
GARPについて参考になりました。 (浜村拓夫)
2010-10-09 22:30:14
GARPについて参考になりました。
どうもありがとうございます。
返信する
>浜村拓夫さん (ぢろーらも)
2010-10-10 00:11:55
>浜村拓夫さん
ありがとうございます。そうおっしゃっていただけると、こちらも記事にした甲斐があります。

ネットワークスペシャリスト試験がんばってくださいね。
返信する

コメントを投稿