1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【YAMAHAルーター】RTX1300を2台でHA構成。VRRPの応用編keepalive等(2回目)

1
Posted at

前回(第1回)はVRRPの基本動作と、標準設定でもあるpreempt(自動切り戻し)が有効な状態でのフェイルオーバーの動きを実機ログつきで解説しました。

今回はその 第2回(応用編) です!
実際の現場(特に拠点間接続や商用環境)で重要になる
「Keepaliveを使った静的ルート死活監視との連動」
と、
「あえてpreempt=off(自動切り戻し無効)にして回線のバタつきを防ぐ設計」
について、ご紹介したいと思います。


1. 今回の検証構成と目的

システム構成図

現場でよくあるのが、「ルーターのポート自体はLink Upしているのに、その先のONUやメディアコンバータ(MC)、あるいはキャリア網内で障害が起きていて通信が通らない」という障害です。

物理リンクが落ちないため、単純なVRRPだけでは切り替わってくれません。そこで、ICMP EchoによるkeepaliveでRT等の対向装置死活監視を行います。

keepalive01.JPG
監視のpingが通らなくなったら静的ルート(ip route)を削除。それをトリガーにしてvrrp shutdown triggerを発動させ、安全に予備機へ切り替える構成を組みます。(詳細後述)

正常時(主回線経由で通信)

主回線側のKeepalive(ICMP Echo)が正常に通っており、RTX1300-1(Priority: 200)がMasterとして通信を搬送します。

keepalive02.JPG

障害発生時(主回線の途中障害をKeepaliveで検知)

途中経路の断線等でKeepaliveが落ちると、RTX1300-1の静的ルートが消滅。VRRPトリガーによってRTX1300-2(Priority: 100)がMasterへと昇格します。

keepalive03.JPG


2. 主な設定ポイント(Config解説)

両ルーターの主要Config抜粋です。

RTX1300-1(主系 / Priority: 200)

ip route 10.20.20.0/24 gateway 10.30.30.21 keepalive 1
ip keepalive 1 icmp-echo 3 3 10.30.30.21 local-address=10.30.30.11
ip lan1 address 10.10.10.11/24
ip lan1 vrrp 110 10.10.10.254 priority=200 preempt=off
ip lan1 vrrp shutdown trigger 110 lan2
ip lan1 vrrp shutdown trigger 110 route 10.20.20.0/24

RTX1300-2(副系 / Priority: 100)

ip route 10.20.20.0/24 gateway 10.40.40.22 keepalive 1
ip keepalive 1 icmp-echo 3 3 10.40.40.22 local-address=10.40.40.12
ip lan1 address 10.10.10.12/24
ip lan1 vrrp 110 10.10.10.254 priority=100 preempt=off
ip lan1 vrrp shutdown trigger 110 lan2
ip lan1 vrrp shutdown trigger 110 route 10.20.20.0/24

config中のここがポイント!

  1. ip keepalive 1 icmp-echo ...
    対向(10.30.30.21)へ3秒間隔でPingを打ち、3回連続で返ってこなければ(計9秒)「障害発生」と判断します。
  2. ip route ... keepalive 1
    Keepalive ID 1の死活とルート情報を連動させます。通信不可になればルーティングテーブルからこの経路が消えます。
  3. ip lan1 vrrp shutdown trigger 110 route 10.20.20.0/24
    指定したルートが消えた瞬間、VRRPプロセス自体をシャットダウンして自らBackupへ降格します。
  4. preempt=off
    優先度(Priority)が高い主系(RTX1300-1)が復旧しても、勝手にMasterへ戻らない(Non-Preempt)設定にしておきます。

💡 メモ:なぜYAMAHAはCiscoみたいにPriority減算(Tracking)をやらないのか?

CiscoのHSRPやVRRPに慣れていると「アップリンクが落ちたらPriorityの値を▲xxx 減算して副機に逆転させる」というトラッキング設計をよく使いますが、YAMAHAの仕様にはPriorityを動的に減算させる機能はありません。 (luaスクリプトで作りこまない限りは)

YAMAHAの場合は、Priorityを操作するのではなく vrrp shutdown trigger でVRRPプロセスそのものをシャットダウン(停止)させる という割り切った設計になっています。

公式仕様(YAMAHAドキュメント: マスタールーター動作時のシャットダウントリガを設定する)で指定できるトリガーは以下の通りです:

  • LAN 形式: LANポートの物理リンクダウン
  • pp 形式: 回線切断や LCP/PP Keepalive による対向ダウン検知
  • tunnel 形式: IPsec / L2TP / PPTP / IPIP などのトンネルKeepaliveによるダウン検知
  • route 形式: 対象の経路(Static/Dynamic)がルーティングテーブルから消滅、または指定GWに向かなくなった場合

今回は route 形式を使って「Keepalive不可 ➔ ルート消滅 ➔ VRRPシャットダウン」というコンボを組んでいます。


3. 実機コマンドによる動作検証

試験用RTX1300のコンソールから採取したログです。

Phase 1:初期状態(正常時)

RTX1300-1(Priority: 200)がMaster、RTX1300-2(Priority: 100)がBackupとして問題なく稼働している状態です。

  • RTX1300-1 (主系)
  RTX1300-1# show status ip keepalive  

   ID  STATE TARGET                                  REACH TIMER COUNT
  ------------------------------------------------------------------------
     1   up  10.30.30.21                               yes     3     3

  RTX1300-1# show status vrrp  
   LAN1 ID:110  仮想IPアドレス: 10.10.10.254
    現在のマスター: 10.10.10.11 優先度: 200
        自分の状態: Master / 優先度: 200  Non-Preempt  認証: NONE  タイマ: 1
  • RTX1300-2 (副系)
  RTX1300-2# show status vrrp  
   LAN1 ID:110  仮想IPアドレス: 10.10.10.254
    現在のマスター: 10.10.10.11 優先度: 200
        自分の状態: Backup / 優先度: 100  Non-Preempt  認証: NONE  タイマ: 1

Phase 2:途中経路断線(障害発生)

RTX1300-1のLAN2先にある途中経路(直結となるONUやMCの先にある何かを想定)を落としてみます。

1. Keepaliveが落ちていくリアルな推移

show status ip keepalive を叩き続けると、カウントダウンしながらダウン確定へ向かうのが分かります。

1. STATE: up    (REACH: yes / COUNT: 3)
2. STATE: up    (REACH: yes / COUNT: 1)  ← 応答なし!カウント開始
3. STATE: down? (REACH: no  / COUNT: -)  ← 仮Down(応答なし継続)
4. STATE: down  (REACH: no  / COUNT: -)  ← 確定Down!

2. VRRP切り替えとSyslog

Keepaliveがdownになった瞬間、静的ルートが消えてVRRPシャットダウンがトリガーされます。

  • RTX1300-1のSyslog (show log)
  2026/08/02 15:01:14: [KEEPALIVE 1] STATUS LED is OFF
  2026/08/02 15:01:14: [VRRP LAN1:110] (version 2) MASTER -> INITIALIZE

主系(RTX1300-1)がINITIALIZE状態(停止)になったため、VRRPアドバタイズメントが途絶え、副系(RTX1300-2)が即座にMasterへ昇格しました。切り替え成功です!:angel_tone1:


Phase 3:途中経路戻し(障害復旧時の挙動)

ではここからは今回変えた preempt=off の挙動です。障害回線を復旧させてみます。

1. Keepaliveの復旧

物理線を戻すとKeepaliveがupに復帰し、静的ルートもルーティングテーブルに書き戻されます。

RTX1300-1# show status ip keepalive  

 ID  STATE TARGET                                  REACH TIMER COUNT
------------------------------------------------------------------------
   1   up  10.30.30.21                               yes     3     3
  • RTX1300-1のSyslog (show log)
  2026/08/02 15:05:34: [KEEPALIVE 1] STATUS LED is ON
  2026/08/02 15:05:34: [VRRP LAN1:110] (version 2) INITIALIZE -> BACKUP

2. VRRPステータスの確認(切り戻しが起きない!)

復旧後のステータスを両方確認します。

  • RTX1300-1 (主系:Priority 200)
  RTX1300-1# show status vrrp  
   LAN1 ID:110  仮想IPアドレス: 10.10.10.254
    現在のマスター: 10.10.10.12 優先度: 100
        自分の状態: Backup / 優先度: 200  Non-Preempt  認証: NONE  タイマ: 1
  • RTX1300-2 (副系:Priority 100)
  RTX1300-2# show status vrrp  
   LAN1 ID:110  仮想IPアドレス: 10.10.10.254
    現在のマスター: 10.10.10.12 優先度: 100
        自分の状態: Master / 優先度: 100  Non-Preempt  認証: NONE  タイマ: 1

なぜPriority 200の主系がMasterに戻らないのか?

これが preempt=off(Non-Preempt)の狙い通りだからです!
主系:angel:が息を吹き返しても、現在Masterを務めている副系(RTX1300-2)が元気に動いている限り、 後から割り込んでMaster権限を奪い返さない(切り戻さない) :angel_tone1:という動作になります。


まとめポイント:point_up_tone2:

1. Keepaliveはサイレント障害の命綱

回線業者側の障害や途中のL2スイッチ障害は、ポートのLink Upだけ見ていても絶対に検知できません。ICMP EchoによるKeepaliveとvrrp shutdown trigger routeの組み合わせは、YAMAHAでHA構成を組むなら有用なテクニックかと思います。

2. なぜ実務では preempt=off が好まれるのか?

デフォルトのpreempt=onだと、主回線が「切れかかっている状態(断続的なバタつき」の時に、通信が主系と副系を行ったり来たりしてネットワークが大混乱します。

preempt=off にしておけば:

  • 障害時に一度副系へ倒れたら、主系が復旧しても勝手に切り戻らない。
  • 業務時間中の不要なセッション切断を防止できる。
  • 夜間やメンテナンス時間など、作業者が手動で安全に主系へ戻す運用ができる。

というメリットがあります。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?