
HSRPの作成上限とその対策について
こんにちは。クレスコデジタルテクノロジーズ、N.Iです。
今回は『HSRPの作成上限とその対策について』と題し、私が実際にネットワークシステムの運用現場で経験した事象に基づき『HSRP設定の注意点』をご紹介します。
最後までお読みいただければ幸いです。
■あわせて読まれている資料:
対応事例やネットワークサービス一覧を掲載!
→ネットワークテクノロジーサービス
目次[非表示]
- 1.HSRPとは
- 2.HSRPグループの設定上限
- 2.1.HSRPの設定上限に気づいた背景
- 2.2.HSRPグループの上限
- 2.3.HSRPグループの上限確認
- 3.グループ上限到達時の対策
- 3.1.HSRPグループ上限到達時の対策
- 3.2.HSRPグループ番号の統合
- 4.まとめ
- 5.引用元
HSRPとは
HSRPとは
HSRP(Hot Standby Router Protocol)とは、ネットワークの可用性を向上させるために、デフォルトゲートウェイを冗長化する、Cisco独自のプロトコルのことです。
これでは少しわかりづらいと思うので、もう少し具体的に説明します。
以下のように、端末Aのデフォルトゲートウェイ(以降、DGWとする)がR1に向けられた構成で、端末A⇒端末Bへ継続的な通信を行う場合を想定します。この時、端末A⇒端末Bの通信は、DGWであるR1を経由して行われるのですが、もしR1が故障したら通信断が発生してしまいます。
機器の故障に対応するためには、物理的に機器を用意するだけでなく、自動で経路を切り替えるような仕組みが必要です。
HSRPは、物理的に複数台あるルータをグループ化し、仮想IPアドレスと、仮想MACアドレスを持つ1つの仮想ルータを構成することで、片方のルータが故障しても継続的に通信が行えるようにします。
つまり、仮想ルータを端末AのDGWとすることで、R1が故障した場合は、R2で通信を処理するようになるのです。
(HSRPは、ルータだけでなく、L3SWでも使用可能なプロトコルですが、本記事ではルータで統一して記載しています。)
HSRPの仕組み
HSRPは、”同一のグループ番号”、”同一のセグメント”、”同一の仮想IPアドレス”が設定されたルータ同士でグループ化され、1つの仮想ルータを構成します。この時、実際に通信を処理するのは1つの物理ルータとなります。
通信を処理するルータを”アクティブルータ”と言い、アクティブルータに何かしらの障害が発生した際に、その役割を引き継ぐルータを”スタンバイルータ”と言います。
“アクティブルータ”は、以下基準で選出されます。
1.HSRPプライオリティが最も大きいルータ
2.プライオリティが同一であった場合、IPアドレスが大きいルータ
尚、”アクティブルータ”と、”スタンバイルータ”はグループ内に1台ずつで、3台目以降は、アクティブでもスタンバイでもない”Listen”という状態になります。
HSRPグループの設定上限
HSRPの設定上限に気づいた背景
HSRPの説明を簡単にしたところで、以下より私が実際に経験した事象についてお話します。
当時、私が担当していた環境は、各システムの接続方法として、ルータの物理IFにサブIFを作成してVLANを分けることでセグメント分割していました。そのため、新システムが接続される際は、ルータの物理IFに新規でサブIFを作成して対応するような運用方法を用いていたのです。
しかし、ある新システムの追加の際、設定変更作業途中にエラーが発生しました。
エラーは、以下設定を投入したタイミングで発生し、同時に以下エラー文も表示されました。
==========================================
[ホスト名](conf)#interface gi0/1.xx
[ホスト名](conf-if) #standby xxx ip 10.0.xx.254
% Warning: Interface MAC address filter only supports 28 additional addresses % and 28 HSRP groups are already configured.
The HSRP MAC address may not be % added to the MAC address filter if the group becomes active.
==========================================
エラー文は、”HSRPグループの作成上限を越えたため、これ以上HSRPグループを作成できないこと”を意味しています。
この時に、私はHSRPの設定上限が機器ごとに異なることに気付きました。
HSRPグループの上限
HSRPで作成できるグループ数は、HSRP version1では256グループ、HSRP version2では4096グループあります。しかし、これらは理論値であり、機種によって物理ポート毎にグループ作成値の上限が決められています。
これは、MAC address filterの登録可能な最大値が、機種によって異なるためです。
前述のとおり、HSRPグループを作成する際には、仮想IPアドレスと、仮想MACアドレスが必要となります。このHSRPグループを作成した際の仮想MACアドレスがMAC address filterに登録されるのです。上記エラー文で、HSRPグループと共に、MAC address filterにも言及されているのはそのためです。
以下では、その上限とエラーが出た際の対策方法についてお伝えしていきます。
HSRPグループの上限確認
HSRP上限数を調べるコマンドとして、”show standby capability”があります。
上記コマンドの出力結果の「Potential Max Groups per subin」に上限数が表示されるので、ぜひ機会があればご確認ください。また、下記参考URLに一部機種の上限が載っているので、こちらもご参照ください。
URL上で記載がある機種は以下となります。
- ASR1000 Series
- ISR4000 Series
- C890 Series
上記機種の中で、例えばISR4431は、物理ポート当たりのHSRP作成上限は”25”であり、
MAC address filterは、筐体全体で”28”となっています。
この場合、ISR4431のHSRPグループの作成上限は、”28”となります。
また、HSRPグループの上限として、ルータは物理IFにHSRPを適用するために上限が少なく、L3SWはVLAN IFへ適用するため上限数が多いように見受けられます。複数システムを集約して分割する役割を持たせる機器を選定する際には、このような観点で判断することも必要といえるでしょう。
グループ上限到達時の対策
物理ポート毎にHSRP設定上限が定められており、機種によって上限数が異なることが分かりましたが、上限に到達した際はどのように対応すればよいのでしょうか。
物理ポート毎、最大”25”のHSRPグループ上限が設定されている、ISR4431を例に考えていきます。
HSRPグループ上限到達時の対策
ISR4431において、サブIFを用いて1つの物理ポート上に既にHSRPグループが25個設定されている場合、”26個目”のHSRPグループを同じ物理ポートに作成することはできません。26個目以降のHSRPグループは、異なる物理ポートに作成していく必要があるのです。
しかし、ここで26個目のHSRPグループを作成できたとしても、すぐにMac address filterの上限に達してしまいます。(ISR4431のMac address filter上限値は、28)
つまり、29個目のHSRPグループ作成時は、HSRPグループの作成自体はできても、HSRPを組むときに作成される仮想MACアドレスの上限値を超えたことにより、作成不可となります。(尚、”物理ポート当たりのHSRP作成上限”と、”MAC address filterの上限”は、それぞれ値が異なりますが、どちらも上限を越えてしまった場合は、一言一句違わぬエラー文が表示されます。)
では、このような場合はどうすればよいのでしょうか。当時の私の対応を基にお話しします。
仮想MACアドレスの上限に到達してしまった場合、解決方法は以下の3つです。
- 不要なHSRPグループを削除する
- HSRPグループのグループ番号を統合する(=仮想MACアドレスの減少)
- 機器増設や機器アップグレードを用いた物理的な対応
1の案は現実的に難しいケースが多いと思われ、3の案が有力になりそうですが、
当時の私の状況では、新システムのリリースが間近であったことから、機器購入のリードタイムは許容できませんでした。
そのため、既存のHSRPグループを削除せず、設定変更で対応が可能な2の案を採用することになりました。
しかし、2の案は、「HSRPグループ番号を統合すると、仮想MACアドレスもまとめられるため、Mac address filterの上限を回避できる」、という理屈なのですが、本当に可能なのでしょうか。
Ciscoのサポート回答を基に、以下でご説明いたします。
(尚、以降は機種やOSver、環境によっても異なる可能性があるため、実装の前には検証をすることを推奨します。)
HSRPグループ番号の統合
「HSRPグループ番号を統合する理屈は分かったが、そもそもグループ番号を統合して大丈夫なのか?」、といった疑問があるかと思いますので、ご説明いたします。
結論から話しますと、同一グループ番号であっても、セグメントが異なっていれば動作に問題はありません。それぞれ異なるHSRPグループとしてアクティブルータ、スタンバイルータの選出が行われるのです。
前提となる、グループ番号の重複によるHSRPの動作への影響はないことが分かりましたので、ここでグループ番号をまとめると、仮想MACアドレスの数も減らせる理由についてお話しします。
HSRPグループを構成したときに作成される仮想MACアドレスは、以下のようになります。
- HSRP version1 0000.0c07.acXX
- HSRP version2 0000.0c9f.fXX
(XX=HSRPグループ番号)
尚、MACアドレスは16進数で表記されるので、グループ番号と仮想MACアドレスは以下となります。
- HSRPグループ番号が「1」の場合、仮想MACアドレス「0000.0c07.ac01」
- HSRPグループ番号が「17」の場合、仮想MACアドレス「0000.0c07.ac11」
- HSRPグループ番号が「255」の場合、仮想MACアドレス「0000.0c07.acff」
上記のように、HSRPの仮想MACアドレスは、グループ番号によって決定されるため、グループ番号を統合することで仮想MACアドレスもまとめることができます。
この仕組みにより、Mac address filterの上限値を超えないように設計できるため、物理ポートにおけるHSRPグループの上限値だけを考慮すればよくなります。
まとめ
以上、HSRP設定時の注意点についてご紹介しました。
しかし、今回ご紹介した「HSRPグループ番号の統合」は、一時的な対策にはなるものの、拡張性や管理性、可用性を低下させるリスクがあるため、慎重に検討する必要があります。
機器選定時の比較検討で、事前に上限を考慮しておくことや、スケールアウトによる機器増設で対応できることがベストかと思われます。また、HSRPグループ番号を統合する場合は、実装の前に検証することを推奨します。
本記事が、HSRP機能の理解を深める一助となり、導入機器の検討や設計段階での拡張性を考慮する際の参考になれば幸いです。
最後までお読みいただきありがとうございます。
■サービス資料一覧はこちら↓
引用元
・HSRPとは
・HSRP グループ数のハードウェア制限について - Cisco Community
・Cisco 4000 シリーズ ISR ソフトウェア コンフィギュレーション ガイド、Cisco IOS XE 17 - ルータの基本設定 [Cisco 4000 シリーズ サービス統合型ルータ] - Cisco