UC●MのLocusnetworksのスイッチがGARPを無視する場合の対処法

UC●Mが使用しているLocusnetworksの謎スイッチがkeepalivedのGARPを無視してフェイルオーバーできない場合の対処として、仮想MACを利用する以外にも比較的簡単な方法があります。

ちなみにL2おろしのサービスなので、MACアドレスが直で見れるので見てみたところLocusnetworksという謎のスイッチでした。

以前の検証でフェイルオーバーできないIPもIPエイリアスではなく、実IPをふりなおせば問題なく使えることは確認できていました。
もしやと思い、ソースIPを指定してLocusnetworksの謎スイッチのアドレスにpingを送ったところ、その瞬間にLocusnetworksの謎スイッチのARPテーブルが更新されて疎通できるようになりました。

ping -I [VIP] [UC●M GW IP]

GARPは無視するけど、なんらかの形で存在を教えてあげると切り替わってくれるみたいです。

フェイルオーバー後にkeepalivedがUC●MのGWにVIPをソースIPとしてpingを打てばとりあえずフェイルオーバーできない問題は解消しそうです。

仕組みはいろいろできると思いますが、keepalivedのnotify_masterを使います。

vrrp_instance IV_1 {
    state BACKUP
    interface eth0
    virtual_router_id 1
    priority 50
    advert_int 1
    notify_master /usr/local/bin/to_master.sh
    authentication {
        auth_type PASS
        auth_pass papapass
    }
    virtual_ipaddress {
        192.168.144.254
    }
}

/usr/local/bin/to_master.sh の中身はこんな感じです。

#!/bin/bash
ping -I [VIP] -c 10 [UC●M GW]

keepalivedがマスターに昇格したら自動でVIPをソースにしてpingをうちます。これでLocusnetworksの謎スイッチのARPテーブルが更新されて疎通できるようになります。
(-c10 は不信感の表れです)

この件でUC●M側の対応としてはファームアップだったみたいですが、ファームアップ後もしっかり再現したのでこのような実装を思いつきました。
「他のお客様はアプライアンスを使っていてみなさん仮想MACなので問題ない」とのありがたい言葉もUC●Mからいただいております。

この程度の金額のサービスで仮想MACが使えるアプライアンスを維持できるお客様しかいないもんでしょうかね。

コメントを残す

メールアドレスが公開されることはありません。


*