- - PR -
MACアドレスを共有する冗長化における、スイッチのMAC学習の影響
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-17 10:14
お初にお目にかかります。angelと申します。
基盤系/ネットワーク系の構築を主に手がけるエンジニアです。 以前、LinuxでNICを冗長化したシステム構築を行う際、 接続するスイッチでは、MACエージング時間を短くする という設定を行いました。元ネタはHPのQ&Aです。 自分の中で、この理由としては、 異なるNICで同一のMACアドレスを共有する関係上、スイッチに残ったMACアドレスの情報が切り替わりに影響を与えるため と納得したのですが、ここで他の疑問が浮かんできました。 HSRP(VRRPも?)・NSRPやBIG-IPの独自方式等でアクティブ-スタンバイの冗長化を行う際、MACアドレスを対象の機器間で共有する方式が取れるようなのですが、これらではスイッチのMAC学習の影響を考慮する必要はないのでしょうか? 各機器のマニュアルで、接続するスイッチの設定について触れている箇所を見つけたことが無いため、判断をつけかねている状況です。 構成としては次のような図を想定しています。
なお、冒頭で申し上げた、LinuxでのNIC冗長化は次のような構成でした。
以上、よろしくお願い致します。 ※何度か編集したのですが、図が見辛くて申し訳ないです。 [ メッセージ編集済み 編集者: angel 編集日時 2005-03-17 10:24 ] [ メッセージ編集済み 編集者: angel 編集日時 2005-03-17 10:26 ] | ||||||||||||||||
|
投稿日時: 2005-03-17 23:07
こんばんわ。
HSRPの構成でActiveとStandbyが切り替わった時点で、gratuitous ARP が送出され、 MACアドレスの変更が通知されます。 スイッチ側でこのARPを受け取ったときにARP Tableの変更を行えるものであれば、 ARP TableのMACアドレス情報は書き換わります。 おそらく、他の二重化プロトコルも同様な動作を行うと思われます。
この構成の場合、切り替え時に送信されたgratuitous ARP がそれぞれのインターフェイスが 接続しているスイッチにしか届きません。その為、切り替わりの前に動作していたスイッチ側には 前の情報が保持されたままになります。 これを避けるにはそれぞれのスイッチにたすき掛けの要領で接続するか、あるいは スタック接続された2台のスイッチにそれぞれ接続する方がよいでしょう。 | ||||||||||||||||
|
投稿日時: 2005-03-18 00:11
こんばんわ。
gratuitous ARP は、ブロードキャストなので、L2スイッチで構成されたangelさんの ネットワークでも問題なく、変更できます。 端末と勘違いしていました。すみません。 | ||||||||||||||||
|
投稿日時: 2005-03-18 11:49
くおんさん、お返事ありがとうございます。
ところで、
とあるのですが、MACアドレスを共有する場合は、各機器のARPテーブルを更新する必要がない(仮想IP・仮想MACはそのままのため)、と考えていたのですが、その場合でもgratuitous ARPが送出されるのでしょうか? # 仮想MAC = 実MAC とする場合は、切り替わりのタイミングで仮想MACが変化するため、gratuitous ARPが送出されるという資料は見つかったのですが… 送出されるのであれば、
にあるように、スイッチ上のMAC情報が書き換わって、以後の通信に問題は出なさそうに思います。 | ||||||||||||||||
|
投稿日時: 2005-03-19 08:46
おはようございます。
gratuitous ARP がでないとスイッチに接続されているポートの切り替えが出来ません。 実際の動作で切り替わっても問題なく動作できているので、gratuitous ARP は送出され ているものと思います。 記憶違いかもしれないので、RFCを見てみました。 RFC 2281のマトリックス表を見ると コンフィグでpreempが設定(これが設定されていないと切り替わらないので設定 は必ず行います。)されている状態で、 gratuitous ARP は状態遷移中にアクティブルータから出るようになっています。 和訳を間違えていなければ・・・。 | ||||||||||||||||
|
投稿日時: 2005-03-19 15:27
はじめまして
私も実際、gratuitous ARPは送出されていると思います。 ただ、HSRPのアクティブルータ切り替え時に重要なのはgratuitous ARPが送出されるかではなく仮想MACをソースアドレスとするパケットを送出することになのではないでしょうか? gratuitous ARPの本来の目的であるセグメント内の端末へのMACアドレス変更の通知は、仮想MACを共有しているのであれば必要はないのですが、くおんサンのおっしゃるとおりセグメント内のスイッチで仮想MACを送出するポートの切り替えができません。 このためにARPに使用するEthernetフレームの送信MACアドレスに仮想MACを使用することで スイッチのMAC Address Tableを切り替えるのではないでしょうか。 | ||||||||||||||||
|
投稿日時: 2005-03-22 10:18
おはようございます。
やはりRFCにあたるのが確実そうですね…。訳があっているかどうか自信が無いのですが、読んでみました。
RFC2281 5.7章「状態遷移」の表を見ると、 ・状態 5(スタンバイ)の時に ・イベントc,h,i、それぞれ、 設定時間以上のアクティブルータからの音信不通 アクティブルータから自分より低い優先度を通知された アクティブルータからresignを通知された が起こると、 ・アクション I、すなわち、仮想MACをソースとした gratuitous ARP を送出する。(他のアクションは省略しています) とあるようですね。 ※各数字やアルファベットは、5.3章「状態」、5.5章「イベント」、5.6章「アクション」に則して書いています。
RFC2281 6章「MACアドレスに関する考察」の 6.1「全般」、最終段落を見ますと、
と言っているようですね…。実MAC=仮想MAC というのは、実はかなり特殊なのでしょうか? そうすると、gratuitous ARPは、ARPテーブルの書き換えが主目的では無いと思えてきます。 また、その2つ前の段落で、
このthemselvesの中身は、さらに2つ前の段落にあった“which LAN segment the virtual MAC address currently belongs to”で良いのでしょうか…。 以上を総合すると、 ・gratuitous ARPは、ARPテーブルではなく、ブリッジのMAC情報更新が主目的 ・gratuitous ARPは、実MAC=仮想MAC かどうかに関わらず送出される ・普通のスイッチ(ブリッジ)なら、MAC情報の更新に関して気に病む必要はない ということでしょうか? | ||||||||||||||||
|
投稿日時: 2005-03-22 11:02
あ…、先程自分が誤読していたことに気付いてしまいました。
RFC2281 6.1章第4段落で、
とあって、5.7章の状態遷移の表を改めて見直すと、状態 5 (スタンバイ) であるルータは、 ・イベント c (アクティブルータからのHelloが途絶えた) の場合 アクション C, D, F, I を行って状態 6 (アクティブ) へ遷移 ・イベント h (アクティブルータから自分より低い優先度を通知された) の場合 アクション B, G, F, I を行って状態 6 (アクティブ) へ遷移 ※ただし、preemptを設定している場合 ・イベント i (アクティブルータからresignを通知された) の場合 アクション C, F, I を行って状態 6 (アクティブ) へ遷移 という挙動を行うようなのですが、この中のアクション F が、「Helloメッセージの送信」となっています。 ということは、 ・切り替わりの時に、Helloメッセージが送信される ・Helloメッセージにより、スイッチはMAC情報を学習する ・よって、普通のスイッチであれば、切り替わり時のMAC情報の変更を気に病む必要はない でしょうか? |