DigiLoog

PC関係の事なら何でもいけるそんな処

Archive for the ‘PC’ Category

keepalivedアップグレードとIPv6 DADのコンボで仮想IP割当がバグった

2021年06月06日(日) - 22:15 | カテゴリ: Linux

ロードバランサ兼リバースプロキシとして利用しているサーバでは、
仮想IPの管理にCentOS8のAppStreamで配布しているバージョンのkeepalivedを走らせていた。
今まで不具合も出ずに動いていたので普段通りにOSのアップグレードを実行したら、
想定外の仮想IPが割り当たらなくなる不具合に当たった。

“ns-lab BB”のロードバランサ構成は以前書いた紹介記事を読んで貰えばわかるが、
一応説明を書くと、NICを2個接続してインライン構成にしつつ、
それぞれのNICでVRRPv3を喋ってIPv4・IPv6仮想IPを付与する構成となる。

今回の問題が発生したのは2021/06/04の早朝。
上に書いた通りパッケージのアップグレードを実施したら、
プライベートIPを付与しているNIC(eth0)側のIPv4のみ仮想IPが突然消えた。
ログは何も出ていなかったのでパケットを見たが正常にパケットは飛んできていた。
straceを読む余裕が無かったので不明だが、恐らく仮想IPを渡す所で不具合が発生したのでは無いかと思われる。

今までサーバを運用してきた直感だと、IPv6 Duplicate Address Detection・Non Local Bindあたりが怪しかった。
その上でデバッグログを有効化したりしてみたら、それっぽいログが出ていた事が判明。

Jun 4 07:04:54 server ***: (eth0-ipv4) removing VIPs.
Jun 4 07:04:54 server ***: (eth0-ipv6) removing VIPs.
Jun 4 07:04:54 server ***: (eth1-ipv4) removing VIPs.
Jun 4 07:04:54 server ***: (eth1-ipv6) removing VIPs.
Jun 4 07:04:54 server ***: bind unicast_src Unicast-IPv6 failed 22 - Invalid argument
Jun 4 07:04:54 server ***: (eth0-ipv6): entering FAULT state (src address not configured)
Jun 4 07:04:54 server ***: (eth0-ipv6) Entering FAULT STATE
Jun 4 07:04:54 server ***: VRRP_Group(eth0-vip) Syncing instances to FAULT state
Jun 4 07:04:54 server ***: (eth0-ipv4) Entering FAULT STATE
Jun 4 07:04:54 server ***: VRRP sockpool: [ifindex(  2), family(IPv4), proto(112), fd(14,15), unicast, address(Private-IPv4)]
Jun 4 07:04:54 server ***: VRRP sockpool: [ifindex(  2), family(IPv6), proto(112), fd(-1,-1), unicast, address(Unicast-IPv6)]
Jun 4 07:04:54 server ***: VRRP sockpool: [ifindex(  3), family(IPv4), proto(112), fd(16,17), unicast, address(Global-IPv4)]
Jun 4 07:04:54 server ***: VRRP sockpool: [ifindex(  3), family(IPv6), proto(112), fd(18,19), unicast, address(Unicast-IPv6)]
Jun 4 07:04:54 server ***: VRRP_Script(healthcheck) succeeded

keepalivedでvrrp_sync_groupやtrack_interfaceは入れてあるのでエラーが出ているIPv6が落ちるのは判るが、
IPv4・IPv6の片方だけ生き残るのは想定外だった。

今回は復旧優先という事もあり、IPv6 DADの無効化を入れつつkeepalivedをソースビルドに変更して復旧させた。
サービスのハブとなっているサーバなので冗長化していたのだが、まさか冗長化部分が壊れるのは想定外。
根本的な原因は不明だが、アプリケーションアップグレードのレアケースとして良い経験になった。


自宅監視鯖をzabbix 5.4にアップグレードしてみた

2021年05月23日(日) - 19:41 | カテゴリ: Linux

2021年5月17日にzabbix 5.4が公開されたので、自宅の監視サーバもアップグレードしてみた。
いつも通りにソースコードからビルドしたが、v5.0・v5.2系統と同じソースビルドが行えた。

インストール後の初回起動時にはデータベースのアップグレードが実行されるので、
サーバプロセスの立ち上げに時間を要する。
アップグレード状況は、zabbix-serverやzabbix-proxyのシステムログに出力される。


という事でアップグレードした結果はこちら。フッター部分のzabbixバージョンが5.4.0に上がった。

今回のバージョンで大きな変更は2つ。
1個目は、zabbixのスクリーン機能が廃止されてダッシュボードに機能統合された事。
スクリーンの方でピクセル単位のレイアウトデザインを実施していると、
ダッシュボード統合時に崩れるので注意しておいた方が良いかもしれない。
2個目は、トリガー条件などの評価式や演算子が変わった事。
筆者の環境では問題が生じなかったが、細かい条件を組んでいる環境ではこちらも確認した方が良い。

今回はトラブル無く普通にアップグレード出来たのでナレッジ的な事は書けないが、
ある意味、安全にアップグレード出来るバージョンとも言える。
ポイントリリースを毎回追いかけている人は少ないと思うが、
迷っている人はアップグレードして試してみると良いと思う。


VultrのサーバでBGPフルルートを受信してみた

2021年05月15日(土) - 22:07 | カテゴリ: Network

ネットワークをある程度囓った事のある人ならBGPフルルートに憧れる物だが、
実際に弄ってトラフィックを操作している人は限られるのが現状。
フルルートを弄る為に有志が集まってAS運用したり個人でAS番号を取得するガチ勢もいるが、
本格的に設備を構えず手軽にフルルートを弄ってみたい人も多いと思う。

以前も書いた通りVultrでフルルート受信リクエストを出せば実際にフルルートを貰えるので、
Vultrで仮想サーバを契約してIPv4とIPv6のBGPフルルートを受信してみた。

先陣も多く申請手順はググれば出てくるが、御自宅でフルルートの記事が一番わかりやすかった。
記事にも書いてない細かい調整は必要だが誤自宅の人なら不明点も自力で解決出来ると思うので、
筆者がハマったポイントと実際に利用したFRRoutingのコンフィグを載せようと思う。


  • 応援中

    D.C.5 Sweet Happiness ~ダ・カーポ5~スイートハピネス 2025年3月28日(金)発売予定 予約受付中
    バカップル・サプリメント