HSRPの設定と確認 / GLBPとVRRPの特徴

CCNAの試験に向けて学習中。
復習に見返せるようにメモしていきます。
ほぼ自分の勉強メモです。
過度な期待はしないでください。


1. HSRP概要
-
#### 1-1.HSRPとは
HSRPとは、<font color="Red"><b>Ciscoが開発した</b></font><font color="green"><b>プロトコルで、デフォルトゲートウェイの冗長化※1を行う為のもの</b></font>です。
実際には、複数存在しているルータを、１つのルータのように見せる事が出来ます。

その為に次のような考え方が取り入れられています。

>
※1 システムの一部に何らかの障害が発生した場合に備えて、障害発生後でもシステム全体の機能を
維持し続けられるように、予備装置を平常時からバックアップとして配置し運用しておくこと。

##### ■1-1-1.HSRPスタンバイグループ
複数のファーストホップルータ※2を含む共通のグループを<font color="Red"><b>HSRPスタンバイグループ</b></font>といい、
HSRPスタンバイグループは、<font color="green"><b>0 ~ 255の番号</b></font>で管理されています。

>
※2 PCから見て最初に通過するルータの事。デフォルトゲートウェイと同様の意味合い。


##### ■1-1-2.仮想IPアドレス
HSRPスタンバイグループには、<font color="Red"><b>仮想IPアドレス</b></font>を割り当てます。
仮想IPアドレスとは、スタンバイグループ内のルータで共有する仮想ルータのIPアドレスです。

>
仮想IPアドレスの注意点として、ルータのインターフェイスに設定されていないIPアドレスを
使用する事。設定に使われているIPアドレスは設定出来ません。

##### ■1-1-3.仮想MACアドレス
HSRPスタンバイグループには、<font color="DodgerBlue"><b>「0000.0C07.AC」</b></font>で始まる<font color="Red"><b>仮想MACアドレス</b></font>を割り当てます。
最後の６オクテット目には、スタンバイグループ番号を16進数にした値が入ります。

>
MACアドレスの表記の仕方は、
XX-XX-XX-XX-XX-XX
XXXX-XXXX-XXXX
のパターンがある。なので、6オクテット目とは上のパターンでの話
>
例えば、グループ番号が13だった場合は、16進数に変換すると「D」となる為、
仮想MACアドレスは、「0000.0C07.AC0D」となる。

##### ■1-1-4.アクティブルータ
HSRPでは、複数のルータを1つの共通のスタンバイグループに割り当てますが、
PCからの通信の転送を行うのは、1台だけです。転送処理を行うルータを<font color="Red"><b>アクティブルータ</b></font>といいます。

アクティブルータは、HSRPスタンバイグループの内で<font color="Red">プライオリティが最も大きいルータ</font>が
選出されます。プライオリティに差がない場合は<font color="Green">HSRPが動作しているインターフェイスの
IPアドレスが最も大きいルータ</font>が選ばれます。
>
※ プライオリティのデフォルトは「100」です。

##### ■1-1-5.スタンバイルータ
アクティブルータのバックアップとなるルータです。

スタンバイルータは、HSRPスタンバイグループの内で<font color="Red">プライオリティが２番目に大きいルータ</font>が
選出されます。プライオリティに差がない場合はアクティブルータと同様に、
<font color="Green">HSRPが動作しているインターフェイスのIPアドレスが２番目に大きい大きいルータ</font>が選ばれます。

<br>
#### 1-2.HSRPの動作
<img width="600" alt="ファイル名" src="https://i.gyazo.com/3843124d2d8cadd355c5f85179eaf878.png">

##### ■1-2-1.HSRPの動作の流れ
① Helloパケッドの交換
ルータは、HSRPの設定を有効にすると、Helloパケット※3 をマルチキャストアドレスの<font color="DodgerBlue"><b>「224.0.0.2」</b></font>に
送信します。Helloパケットによりルータ間でHSRP情報を交換します。
<font color="green"><b>Helloパケットの送信間隔はデフォルトで<font color="Red"><b>「3」</b></font>です。</b></font>

>
※3 Helloパケットは、ネイバーの発見とネイバーの維持を行う

② アクティブルータとスタンバイルータの選出
Helloパケットで送られてきたHSRP情報を基に、アクティブルータとスタンバイルータの選出します。

③ Helloパケットによる生存確認
アクティブルータとスタンバイルータが決定した後は、この2台だけがHelloパケットを
送信します。その他のルータは、受け取るだけの <font color="Red"><b>Listen状態</b></font>になります。

スタンバイルータは、アクティブルータからの<font color="Green"><b>Helloパケットを 10秒間受け取らなかった場合
アクティブルータがダウンした</b></font>と判断し、自身がアクティブルータになります。

④ PCからの通信
PCからのARP※4 要求に対し、<b>アクティブルータ</b>が仮想MACアドレスを含むARP応答を返します。
これにより、PCのARPテーブルに仮想IPアドレスと仮想MACアドレスが登録されます。

>
※4 ARPは、与えられたIPアドレスからMACアドレスを求める為のプロトコル

##### ■1-2-2.アクティブルータで障害発生時の動作
上記で記載しましたが、スタンバイルータは、アクティブルータからの<font color="Green">Helloパケットを
10秒間受け取らなかった場合アクティブルータがダウンした</font>と判断し、自身がアクティブルータに
なります。

アクティブルータになったルータは、スイッチやPCに特殊なARPパケット<font color="Red"><b>（Gratuitous ARP）</b></font>を
送り、MACアドレステーブルの内容を置き換えます。これにより転送される通信が新しい
アクティブルータへ向かうようになります。

##### ■1-2-3.HSRPのステータス遷移
HSRPが設定されているルータでは、以下のステータス遷移が行われます。

|状態　　|定義　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|:---|:---|
|Initial|初期状態。HSRPの設定直後は、この状態になる。|
|Learn|ルータがアクティブルータからHelloパケットを受け取っておらず、仮想IPアドレスを認識していない状態。|
|Listen|アクティブルータ、スタンバイルータにもならなかったルータがなる状態。|
|Speak|Helloパケットを送信して、アクティブルータとスタンバイルータを選出している状態。|
|Standby|スタンドバイルータがこの状態となる。定期的にHelloパケットを送信。|
|Active|アクティブルータがこの状態となる。仮想IPと仮想MACアドレス宛のパケット転送処理を行うステータス。定期的にHelloパケットを送信。|

<br>
#### 1-3.HSRPの機能
##### ■ 1-3-1.プリエンプト
プリエンプトとは、<font color="Green"><b>プライオリティが大きいルータを常にアクティブルータ</b></font>とする機能をいいます。
プリエンプトを有効にすると、一度ダウンしたルータが復旧した際に、
そのルータのプライオリティが最も大きい場合、自動でアクティブルータとして選出します。

##### ■ 1-3-2.インターフェイストラッキング
インターフェーストラッキングとは、HSRPを有効にしていないインターフェースがダウンした時に、
<font color="Green"><b>HSRPを有効にしているインターフェースのHSRPプライオリティ値を小さくして、アクティブルータを
切り替える</b></font>機能をいいます。

下記の画像を使って詳しく説明します。
<img width="550" alt="ファイル名" src="https://i.gyazo.com/9846e3870f5ef4029f82c2a0e8335181.png">
SW1とSW2のHSRPが設定（有効）されている側のインターフェイスが障害発生した場合、
Helloパケットを送信されなくなる為障害が発生した事が分かります。

しかし、HSRPが設定されていないインターフェイスに障害が発生した場合、
どちらのルータもHelloパケットを送信している（HSRPが設定されている）インターフェイスは
問題なく動作している為、生存確認が出来てしまい SW1側がアクティブルータとして動作し続ける事に
なります。しかし、「Gi0/0」がダウンしているのでPCからの通信は届いても異なる
ネットワークには届きません。
そこで、インターフェイストラッキング機能を使用して、
指定したインターフェイス（HSRPを有効にしていない）がダウンした時にプライオリティを下げる事で
プライオリティが大きい他のルータをアクティブルータにする事が出来るようになります。

但し、<font color="Green"><b>インターフェイストラッキングを使用するには、<font color="Red">プリエンプトを有効にする</font>必要が
あります。</b></font>

##### ■ 1-3-3.HSRP認証機能
HSRPには、認証機能があり、パスワードを暗号化しない<font color="Red"><b>プレーンテキスト認証（平文認証）</b></font>と
パスワードを暗号化する <font color="Red"><b>MD5認証</b></font><font color="Red">※5</font>があります。
認証機能により、想定外のルータがスタンバイグループに接続されたとしても仮想IPアドレス等は
学習されません。

>
MD5認証とは、隣接するルータの双方で同じキーID（ 番号 ）とキー（ パスワード ）が
一致した場合に認証は成功してネイバーが確立します。認証に失敗した場合は、
Helloパケットが無視されるのでネイバーが確立せず、既存の経路情報が不正に交換されることを
防ぐ事が出来ます。

##### ■ 1-3-4.HSRPのversion
HSRPには、version1とversion2があります。
HSRPの有効化を行うとデフォルトでは<b>version 1</b>が有効化されています。

主な違いは以下の通りです。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/499dcd0a6d3beb5568a384c5c2fcea14.png">
上記以外にも、version1ではIPv6のサポートがなく、version2ではある等の違いもあります。

>
※ xxには、グループ番号が入ります。

<br>
#### 1-4.HSRPの負荷分散
各ルータを複数のスタンバイグループに参加させ、そして、それぞれのスタンバイグループで
アクティブとなるルータを変える事で負荷の分散を行う事が出来ます。
このHSRP設定を<font color="Red"><b>MHSRP</b></font>と言います。

下記の画像を使って詳しく説明します。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/e0cf7092bd229afbf0a8e693c4d7e1a1.png">
PCは同一のネットワークに属していて、
それぞれのPCには、別々のデフォルトゲートウェイが設定されています。
そして、SW1とSW2は2つスタンバイグループに属しています。


>
▶︎ PC A
スタンバイグループ1（HSRP group 1）には仮想IPアドレスが 172.16.5.253と設定されていて、
PCAは、デフォルトゲートウェイを 172.16.5.253に設定している為、スタンバイグループ1のSWを
経由していく。
スタンバイグループ1のSW1のプライオリティは 105、SW2のプライオリティは 100
なので、PCAは、SW１を経由して異なるネットワークに通信していく。

>
▶︎ PC B
スタンバイグループ2（HSRP group 2）には仮想IPアドレスが 172.16.5.254と設定されていて、
PCBは、デフォルトゲートウェイを 172.16.5.254に設定している為、スタンバイグループ2のSWを
経由していく。
スタンバイグループ2のSW1のプライオリティは 100、SW2のプライオリティは 105
なので、PCAは、SW2を経由して異なるネットワークに通信していく。

このように、複数のスタンバイグループに所属させ、それぞれのグループでアクティブルータ、
スタンバイルータの役割を変える事で、負荷の分散を行う事が出来ます。

2. GLBPとVRRPの特徴
-
#### 2-1.GLBPとは
GLBPとは、HSRP同様、ルータを冗長化させる<font color="Red"><b>Cisco独自</b></font>のプロトコルです。
GLBPでは、<font color="Green">１つのグループ内で利用可能なデフォルトゲートウェイを複数存在させる事が出来る為、
デフォルトゲートウェイの負荷分散を行う</font>事が可能になっています。

GLBPでも共通のグループに属しているルータが連携して、１つの仮想ルータとして見せている
という事には変わりありません。この共通のグループを、<font color="RED">GLBPグループ</font>といいます。
GLBPグループは、<font color="RED"><b>1024</b></font>まで作成可能です。
また、HSRPでは仮想MACアドレスが1つでしたが、<font color="Green"><b>GLBPでは<font color="RED">最大4つ</font>の仮想MACアドレスを
使用します。</b></font>仮想MACアドレスは、<font color="DodgerBlue"><b>「0007.B40X.XXYY」</b></font>の仮想MACアドレスを割り当てます。
>
Xの部分に、GLBPグループ番号を16進数に変換した値が入ります。
Yの部分に、01 ~ 04までの値が使用されます。

つまり、GLBPでは1つの仮想IPアドレスに対して複数の仮想MACアドレスをARP応答で返すので、
負荷分散を行う事が可能になっています。また、これによりクライアントPCは<b>同じ仮想IPアドレスの
デフォルトゲートウェイを指定しながらも、クライアントPCごとに異なるルータに対してパケットを
送信</b>するようになります。


#### 2-2.GLBP動作
GLBPでは、グループ内のルータから <font color="RED"><b>AVG</b></font><font color="RED">※4</font> と最大4台の<font color="RED"><b>AVF</b></font><font color="RED">※5</font> を選出します。
また、GLBPではプライオリティに 1 ~ 255の値を選出する事ができプライオリティの値が
最も高いルータがAVGに選出されます。プライオリティが同じだった場合は、IPアドレスの最も
大きなルータがAVGに選出されます。

>
※4 AVGとは、ARP応答とAVFへの仮想MACアドレスの自動割当を行うルータ
※5 AVFとは、AVGによって仮想MACアドレスを割り当てられたルータで、そのグループでパケットの
転送処理する役割を担っており、1つのグループで<font color="RED">最大4</font>つのAVFが機能（選出）します。

GLBP動作は以下のようになります。

GLBPプライオリティ値がR1のルータの方が大きいことから「R1がAVG、R1とR2がAVF」となっています。
R1はAVGであると同時にAVFとなります。
AVGによって、AVFに対して末尾が異なるMACアドレスがそれぞれに割り当てられます。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/8ab2e68e0f40ec465d5215ba88b38d5f.png">

#### 2-3.VRRP
##### ■2-3-1.VRRPとは
VRRPは、HSRP同様、ルータを冗長化させる為のプロトコルですが、HSRPと異なり
<font color="Green"><b>どのベンダーの機器でも使用</b></font>出来ます。

VRRPは、基本的にHSRP同様で、VRRPグループに属しているルータが連携して、１つの仮想ルータと
して見せているという事や、グループ内の1台がアクティブルータとしてARPの応答やパケットの
転送処理を行っていた等の動きもHSRP同様なので、基本的に動作は同様です。

##### ■2-3-2.VRRPの特徴
呼び名の名称が異なり、アクティブルータを<font color="RED"><b>マスタールータ</b></font>といい、
残りのルータを全て<font color="RED"><b>バックアップルータ</b></font>といいます。

また、VRRPでは<font color="Green"><b>仮想IPアドレスにルータに実際に割り当てられているIPアドレスを設定する事</b></font>が
可能です。割り当てると、そのルータのプライオリティが <font color="RED"><b>255</b></font>と最大になり、必ずマスタールータに
なります。

その他にも、プリエンプトがデフォルトで有効になっている事や、仮想MACアドレスには
<font color="DodgerBlue"><b>「0000.5E00.01××」</b></font>にグループ番号を16進数に変換したもの付加したものを使用します。


3. HSRP、GLBPとVRRPまとめ
-
冗長化のプロトコルのまとめ

|プロトコル名|仕様|負荷分散|冗長構成|仮想MACアドレス|マルチキャストアドレス|
|:---|:---|:---|:---|:---|:---|
|HSRP|Cisco独自|サブネット単位で可能|アクティブ/スタンバイ|0000.0C07.AC|224.0.0.2|
|GLBP|Cisco独自|ホスト単位で可能|AVG/AVF|0007.B40X.XXYY|224.0.0.102|
|VRRP|標準|サブネット単位で可能|マスタ/バックアップ|0000.5E00.01××|224.0.0.18|


<br>
4. HSRPの設定
-
#### 4-1.HSRPの有効化
HSRPの有効化するには、<b>インターフェイスコンフィギュレーションモード</b>で
次の<font color="Red"><b>standby ip コマンド</b></font>を実行します。

```
(config-if）# standby [< スタンバイグループ番号 >] ip [< 仮想IPアドレス >]
```
>
＜スタンバイグループ番号＞には、version 1であれば 0 ~ 255のスタンバイグループの
番号から指定します。省略した場合は 0となります。
＜仮想IPアドレス＞には、仮想IPアドレスを指定します。省略した場合他のルータから
送信されたHelloパケットから仮想IPアドレスを習得します。なので、最低でも
スタンバイグループ内のどれか1つには設定しておく必要があります。

#### 4-2.HSRPプライオリティ値の設定
HSRPプライオリティ値の設定を行うには、<b>インターフェイスコンフィギュレーションモード</b>で
次の<font color="Red"><b>standby priority コマンド</b></font>を実行します。

```
(config-if）# standby [< スタンバイグループ番号 >] priority < プライオリティ値 >
```
>
＜スタンバイグループ番号＞には、HSRPプライオリティ値を設定したい
スタンバイグループ番号を指定します。
＜プライオリティ値＞には、HSRPプライオリティ値を 0 ~ 255の間から指定します。
指定しなかった場合は、デフォルトの <font color="Red">100</font>となります。

#### 4-3.プリエンプトの設定
プリエンプトの設定を行うには、<b>インターフェイスコンフィギュレーションモード</b>で
次の<font color="Red"><b>standby preempt コマンド</b></font>を実行します。

```
(config-if）# standby [< スタンバイグループ番号 >] preempt
```
>
＜スタンバイグループ番号＞には、プリエンプト設定したいスタンバイグループの番号の指定をする。

#### 4-4.インターフェイストラッキングの設定
インターフェイストラッキングの設定は、<b>インターフェイスコンフィギュレーションモード</b>で
次の<font color="Red"><b>standby track コマンド</b></font>を実行します。

```
(config-if）# standby [< スタンバイグループ番号 >] track < インターフェイス > [< 減少値 >]
```
>
＜スタンバイグループ番号＞には、インターフェイストラッキングを設定したいスタンバイグループ番号を指定します。
＜インターフェイス＞には、追跡したいインターフェイスを指定します。
＜減少値＞には、そのインターフェイスがdownした際に減少するHSRPプライオリティ値を
指定します。指定しないとデフォルトの <font color="Red">10</font>となります。

<br>
5.HSRPの設定の確認
-
#### 5-1.HSRPの要約情報の確認
HSRPの要約情報の確認をするには、<b>特権EXECモード</b>で
次の<font color="Red"><b>show standby brief コマンド</b></font>を実行します。

```
# show standby brief
```

show standby brief コマンドの実行結果を確認していきます。
<img width="800" alt="ファイル名" src="https://i.gyazo.com/121be54f18543b25f20bbe572e6df063.png">

|項番　　　　|説明　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|:---|:---|
|Interface|HSRPが有効になっているインターフェイス|
|Grp|グループ番号|
|Prio|プライオリティ値|
|P|プリエンプトが有効になっている事を表す。|
|State|Activeはアクティブルータ、Standbyはスタンバイルータを表す。|
|Active|アクティブルータのIPアドレス。localは、自分自身を表す。|
|Standby|スタンバイルータのIPアドレス。localは、自分自身を表す。|
|Virtual IP|仮想IPアドレス|

#### 5-2.HSRPの詳細情報の確認
HSRPの詳細情報の確認をするには、<b>特権EXECモード</b>で
次の<font color="Red"><b>show standby コマンド</b></font>を実行します。

```
# show standby
```

show standby コマンドの実行結果を確認していきます。
<img width="800" alt="ファイル名" src="https://i.gyazo.com/627da228fd4a91a98276e1ca6743d7af.png">

|項番　　　　|説明　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|:---|:---|
|2行目|有効になっているインターフェイスグループ|
|3行目|ルータの役割|
|5行目|仮想IPアドレス|
|6行目|仮想MACアドレス|
|10行目|プリエンプトが有効になっているかどうか|
|13行目|HARPプライオリティ値|