2012のNICチーミング今回も、保留していたお客様からの質問に対する回答です。2012には、OSネイティブのNICチーミング機能が含まれます。これは、複数のNIC(同一速度のイーサネットに限られます)をまとめた仮想的なNICを作ることで、可用性と性能を向上させる機能です。NICチーミングには、スイッチングハブ(スイッチ)の構成を必要とする「スイッチ依存モード」と、スイッチングハブの設定が不要な「スイッチ非依存モード」があります。スイッチ非依存モードは、同じスイッチでも別々のスイッチでも構成できます。スイッチには、MACアドレステーブルが構成されますが、複数のポートに同じMACアドレスがあることは想定されていません。802標準の規約を利用します。一方のスイッチ非依存モードは、スイッチ側の設定が一切不要です。これは、以下の原理で動作しているためです。インバウンドデータ(チーミングNICへの着信)は、チーミングNIC構成時に自動的に選択された「プライマリNIC」のみが処理します。チーミングNICのMACアドレスはプライマリNICのMACアドレスになります。ARP要求に対する応答は単一NICのみが応答するため、スイッチは混乱しません。負荷分散モードでもプライマリNICは1枚に限定されます。2枚のNICを使ったアクティブ・スタンバイ構成の場合、常にプライマリNICのMACアドレスが使われます。アクティブなNICのリンクがダウンした場合は、プライマリNICのMACアドレスがスタンバイ側で使われるため、チーミングNICのMACアドレスは(およびもちろんIPアドレスも)変化しません。同時には1枚のNICしか使わないので、アウトバウンド(チーミングNICからの発信)でも不都合は生じません。負荷分散をしている場合のアウトバウンド接続(発信)は、指定のアルゴリズムによって負荷分散されます。この時、イーサネットフレームにはNICハードウェア固有のMACアドレスが使われ、スイッチのMACアドレステーブルにはこれが登録されます。単一IPアドレスに複数MACアドレスが対応してしまいますが、これで問題は起きないようです(理由は後述)。図は、スイッチ非依存モード、アドレスによるハッシュでチーミングNICを構成し、負荷分散した状態で、ネットワークデータをキャプチャしたものです。送信元MACアドレスが2つあるので、赤と青で色分けしました。接続ごとに負荷分散されていることが分かります。L2スイッチ内部では、MACアドレスとポートが紐付きますが、IPアドレスとは無関係です。ARPに対する応答はプライマリNICのみが行うため、IPアドレスとMACアドレスの対応も問題ありません。既存のARPテーブルと矛盾を起こす可能性はありますが、IPアドレスとMACアドレスの対応は、もともと変化する可能性があるものなので(たとえばフェールオーバークラスター)、こちらも問題にはならないはずです。以上のことから分かるように、スイッチ非依存モードでは着信の負荷分散ができません。そのため、効果的に利用できるのは以下の場合に限られます。アクティブ/スタンバイモード...2枚のNICのうち、一方のみを使い、障害発生時に自動切り替えサーバーからの発信データが多い場合(たとえばWebサーバー)以上です。見落としている条件があるかもしれませんので、お気づきの点があればブログにコメントをいただくか、メールアドレスをご存じの方はメールでお問い合わせください。回答が遅くなって申し訳ありませんでした。Serverを中心に技術者向けトレーニングを担当。コミュニティにおけるトレノケート社員による発言やコメントは、トレノケートの正式な見解またはコメントではありません。