GLBPの概要

GLBPはCisco独自プロトコルで、デフォルトゲートウェイの冗長化だけではなく負荷分散も実現できることが大きな特徴です。HSRPやVRRPでも負荷分散することはできますが、クライアントPC側のデフォルトゲートウェイの設定も考慮しなければいけません。GLBPであれば、クライアントPC側のデフォルトゲートウェイの設定はすべて共通です。GLBPでも以下のような仮想IPアドレスと仮想MACアドレスがあります。

仮想ルータのIPアドレス: 設定で指定
仮想ルータのMACアドレス: 00-07-b4-00-XX-YY (XX:GLBPグループ番号、YY:01~04)

GLBPグループのルータは、すべて仮想ルータのIPアドレスを共有します。そして、グループ内のそれぞれのルータに仮想MACアドレスが割り当てられます。GLBPでグループ化できるルータは最大4台です。つまり、1つの仮想IPアドレスに対して最大4台のルータで負荷分散が可能です。

PCやサーバのデフォルトゲートウェイのIPアドレスには、HSRPやVRRPと同様に仮想IPアドレスを指定します。仮想IPアドレスに対するMACアドレスは、それぞれのルータの仮想MACアドレスに解決されます。その結果、クライアントPCからの他のネットワーク宛ての通信はそれぞれのルータへ負荷分散されるようになります。


GLBPの仕組みを理解するには、ARPが重要です。ARPについて、以下の記事で解説しています。

HSRPでの負荷分散について、以下の記事で解説しています。


GLBPのIPアドレスとポート番号

GLBPメッセージはUDPポート3222でカプセル化されています。また、GLBPメッセージの送信先IPアドレスは、224.0.0.102のマルチキャストアドレスです。

図 GLBPのカプセル化
図 GLBPのカプセル化

GLBPの仕組み

GLBPでは、ルータの役割としてAVG(Active Virtual Gateway)とAVF(Active Virtual Forwarder)があります。

  • AVG
    GLBPグループ全体を管理するルータです。AVGはAVFへの仮想MACアドレスを割り当てます。そして、仮想IPアドレスに対するARPリクエストに応答します。応答するMACアドレスはAVGが選択したAVFの仮想MACアドレスです。
  • AVF
    AVGも含めてGLBPグループのルータはAVFとなります。すべてのAVFは仮想IPアドレスを共有していますが、仮想MACアドレスはそれぞれ個別のMACアドレスです。自身に割り当てられている仮想MACアドレスのイーサネットフレームを受信して、パケットをルーティングします。

AVGは最もプライオリティが高いルータです。GLBPを有効にするとGLBP Helloメッセージを交換して、グループ内のルータで仮想ルータの仮想IPアドレスを共有しAVGを決定します。そして、AVGがAVFに対して仮想MACアドレスを割り当てます。

以下の図では、R1、R2 Fa0/0でGLBPを有効化しています。GLBP Helloメッセージを交換して、仮想ルータのIPアドレスを共有し、プライオリティが高いR1がAVGになります。そして、AVGが自身も含めた各AVFへ仮想MACアドレスを割り当てている様子です。R1にはAVF1として00-07-b4-00-01-01、R2にはAVF2として00-07-b4-00-01-02という仮想MACアドレスが割り当てられています。

図 GLBPの仕組み その1
図 GLBPの仕組み その1

PCのデフォルトゲートウェイには仮想ルータのIPアドレスを指定します。PCが他のネットワーク宛てに通信をするときには、デフォルトゲートウェイである仮想ルータのIPアドレスに対するMACアドレスを解決するためARPリクエストを送信します。これに応答するのがAVGです。AVGは、負荷分散アルゴリズムにしたがってAVFの仮想MACアドレスを返します。

GLBPの負荷分散アルゴリズムは以下の3つあります。

  • host-dependent
    同じホスト(同じ送信元MACアドレス)に対しては同じ仮想MACアドレスを返すようにします。
  • round-robin
    ホストのARPリクエストに対して、AVFの仮想MACアドレスを順番に返します。デフォルトの負荷分散アルゴリズムです。
  • weighted
    AVFに設定しているWeight値に基づいてAVFの仮想MACアドレスを返します。

GLBPの動作の例

round-robin負荷分散アルゴリズムを想定して、具体的な例を考えます。図のPC1が他のネットワーク宛てにパケットを送信するために、デフォルトゲートウェイの192.168.1.5に対するARPリクエストを実行したとします。AVGがARPリクエストに応答して、AVF1(R1)に割り当てられた仮想MACアドレス00-07-b4-00-01-01を返します。PC1はイーサネットフレームの宛先MACアドレスに解決したMACアドレス00-07-b4-00-01-01を指定して、他のネットワーク宛てのパケットを送信します。このパケットは、R1へと転送されてR1がルーティングします。

図 GLBPの仕組み その2
図 GLBPの仕組み その2

続いて、図のPC2が他のネットワーク宛てにパケットを送信するために、デフォルトゲートウェイの192.168.1.5に対するARPリクエストを実行したとします。AVGがARPリクエストに応答します。このとき、round-robinなのでAVFの仮想MACアドレスを順番に返します。今度はAVF2(R2)の仮想MACアドレス00-07-b4-00-01-02を返します。PC2はイーサネットフレームの宛先MACアドレスに解決したMACアドレス00-07-b4-00-01-02を指定して、他のネットワーク宛てのパケットを送信します。このパケットはR1へと転送されたR2がルーティングします。

このようにAVGが仮想IPアドレスに対するARPリクエストについて、AVFの仮想MACアドレスを返すことで負荷分散を実現しています。

図 GLBPの仕組み その3
図 GLBPの仕組み その3

ルータがダウンした場合

AVGであるR1がダウンすると、R2が新しいAVGになります。また、AVF1の仮想MACアドレス00-07-b4-01-01もR2が引き継ぎます。デフォルトゲートウェイのIPアドレスに対してAVF1の仮想MACアドレスを解決したPC1は、R1がダウンしても継続して他のネットワーク宛ての通信が可能です。

図 GLBPの仕組み その4
図 GLBPの仕組み その4

また、R2がダウンした場合は、R1がAVF2の仮想MACアドレス00-07-b4-01-02を引継ぎます。デフォルトゲートウェイのIPアドレスに対してAVF2の仮想MACアドレスを解決したPC2は、R2がダウンしても継続して他のネットワーク宛ての通信が可能です。

図 GLBPの仕組み その5
図 GLBPの仕組み その5

GLBPでもトラッキングの設定ができます。GLBPの場合は、トラッキングによって何らかのネットワーク構成の変更に応じてAVFとしての動作を停止させるようになります。

IPルーティングのキホン