DigiLoog

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

Archive for 2021年06月

2021年06月の月末エ○ゲ購入物

2021年06月26日(土) - 21:23 | カテゴリ: ゲーム

今月も例にもれず月末の日としてゲームが届いた。
普段なら実店舗で買うのだが、今回は得点も目当てだったので公式通販で購入。
色々と忙しいので簡単な報告のみ記載。


という事で、竜姫ぐーたらいふ2を購入。
右の方は梱枝りこ先生の品で、偶然同じ日に届いたので撮影。

最近は忙しすぎてゲームをプレイする時間が無いのだが、
今回はロープライスという事もあり比較的楽にプレイ出来る部類なので少しずつ進める予定。



関西から抜ける自宅デフォルトルートを断念

2021年06月19日(土) - 21:50 | カテゴリ: 雑談

常用出来る関西から抜けるNW経路を半年考えていたのだが、
ルーティング設計が複雑になる上、費用が想像以上にかかるので今回は諦める事にした。

当初はVXLANでバックボーンを跨ぎ直接抜けられる形で構築しようとしていたが、
VXLANを喋れる安いルータが見つからなかったのもある。
また、運よく対応している物理ルータを購入しても維持費用で折り合いが付かなかった。
さらに、時代はVXLANでL2を繋ぐよりもL3でECMPさせる事が多いのでニーズも合わなかった。

ただし、導入する為にNW設計をして現構成の課題がポロポロ見つかったので収穫はあった。
次に自宅NW基盤を大規模に変更するのは先になるので課題解決をいきなり出来ないが、
拡張工事は大体1年に1回は実施しているので少しずつ機能追加して課題を取っ払おうと思う。



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をソースビルドに変更して復旧させた。
サービスのハブとなっているサーバなので冗長化していたのだが、まさか冗長化部分が壊れるのは想定外。
根本的な原因は不明だが、アプリケーションアップグレードのレアケースとして良い経験になった。



  • 応援中

    はじめるセカイの理想論 -goodbye world index-