サーバ/インフラを支える技術 第3章 止まらないインフラを目指すさらなる工夫 その2

  • ネットワークの冗長化
    • L1/L2 構成要素の冗長化
    • LANケーブル、NIC、ネットワークスイッチのポート → リンク故障(サーバとスイッチ間の故障)、スイッチ間接続の故障
    • ネットワークスイッチの故障 → スイッチ故障
  • リンク故障の対策としてリンクの冗長化
    • Bonding
      • Bonding って帯域確保のためにやるものというイメージでしたが冗長化のためのしくみでもあるんですね
      • NIC 故障の検出には MII 監視(Link Down を検出する)と ARP 監視(実際に指定の送信先ARPを送出してリプライがあるか見る)がある
    • スイッチの冗長化
      • Bonding の各 NIC の接続先を別のスイッチにする
      • スイッチ間の接続も用意する
        • スイッチ間接続はリンク故障時に、逆向きのパケットがスイッチ-サーバ間のリンク故障で送信できない時にスイッチ間で転送して送信するために利用される
          • Server1 -- L1 --> SW1 --> SW2 -- L2 --> Server2 (Server2 と SW1 の間のリンクが故障している場合)
      • スイッチ間接続も冗長化
        • ポートトランキング
        • リンクアグリゲーション
    • スイッチの増設
      • カスケード接続
        • スイッチをカスケード接続した場合監視を ARP 監視にして監視対象を考慮(別のスイッチを経由する対象も監視対象にする)必要がある
    • RSTP (Rapid Spanning Tree Protocol)
      • カスケード接続したスイッチの子同士のスイッチ間接続をつくるには、ループ経路による問題を解消する必要がある
      • スイッチ間が協調してループを検出し、冗長な接続を自動で遮断するためのプロトコル
      • スイッチが BPDU (Bridge Protocol Data Unit)パケットをやりとりする
        • より上位のブリッジ(ここではスイッチと同意)を決める。最も上位のブリッジがルートブリッジになる
        • ブリッジの順序は各スイッチに割り当てたプライオリティを元に決める
      • ポートの役割を割り振り、普段は使わないポートを決める

RSTP はとてもおもしろいしくみですが詳細は少し割愛します。なんとなく Alloy の本で読んだリング上のノードで優先順位を決める方法に似ていますね。