11/5にDDoS食らいました

11/5の16:00頃に、リモート接続がやけに不安定になったなと思って、ルーターをリブートしたら、全く繋がらなくなる。

帰宅後に調べてみたらPPPoEのI/Fが全くパケットやりとりをしなくなっていたので、繋ぎ直し。

しばらく動いていたと思ったらPPPoEのRxが急に600Mbpsぐらいまで跳ね上がり、FireWallのコネクション数も30000とかになってまた回線不安定に。

あれ?これDDoS?と思って、回線リセットしてIPアドレス変えてもDDNSの更新が反映される頃にまた同じ挙動。

そうこうしている間にONUのI/FがLinkUpしなくなったのでISPに電話。VoIP用のポートは生きていたので切り替えたところやっぱりダメ。VoIP側もLinkUpしなくなる。

11/6 19:00頃にISPから電話があり、異常なトラフィックを検知したから回線切ったとのこと、屋内配線とか色々聞かれて回復。

11/6 21:00頃にやっぱりDDoSがあったので、DDNSの更新を切って対策検討開始。CloudFlare無料プラン加入&ドメイン切り替え作業開始。

11/6 22:30頃にどどんとふが回復したので、復旧連絡。

その後、CloudFlare経由だとうまく動かない機能(直リンクよけのリファラーチェック、オンセンのキャラクターシート取得、ねこ卓のWebSocketなど)の対処をしつつ、他ドメインを順次CloudFlareに切り替え、CloudFlareが使えそうにないものはさくらのVPSにHAProxyを建ててSSLパススルーで自宅鯖を徹底的に隠蔽。

色々勉強にもなったけど、めっちゃ疲れた。DDoSダメ絶対。

オンセツールいろいろ

昨日ツイートしたオンセツールについて色々と補足

PC向けP2Pタイプ(自鯖可)

WebRTC+SkyWayなP2P通信なので、サーバー上には共有データやコード等の静的コンテンツのみなので、当然自鯖設置可。APIキーさえ取得できればレンタルサーバーだけでも可。NTT-COMのSkywayが前提なのと、WebRTCのP2P通信はフルメッシュなので同一部屋の利用者数が増えるとトラフィックが爆増し、誰か一人でも重い回線の人がいると全員の応答が悪くなる。


  • ユドナリウム・・・3Dマップがカッコイイ。大きな不具合も少なく非常に多機能。ただしPCが貧弱だと辛い&スマホ不可

  • Quoridorn・・・UIはどどんとふそっくり。まだ開発初期なのでかなりの機能が未実装かつ不具合もそれなり。スマホ不可

スマホ可なオンセツール(自鯖可)


  • オンセン・・・PHP+Ruby。PHPのみだとダイスボット利用不可。ソース公開されているのはセッション機能のみ、SNS機能は本家と連携する必要あり。

  • ねこ卓・・・nodejs+MongoDBまたは、静的HTML/js+Firebase。PCでも遊べるけどスマホ寄り。

  • Onset!・・・PHPでDB不要。ダイスボット利用にはBCDice-APIまたはRubyCGIが必要。チャット機能+ダイスボットのみなのでめっちゃ軽量。ただし、ここ1,2年はメンテされていないっぽい

  • Saider・・・nodejs+redis。共有メモとダイスロールのみでチャット機能すらない尖ったツール。ただし、ここ1,2年はメンテされていないっぽい

  • どどんてぃ・・・nodejs。残念ながら実用段階前のまま開発止まってます

  • HTML5版どどんとふ・・・スマホ利用はかなり厳しい。どどんとふの自鯖にHTML5版を置くとFlashなしでも遊べるようになる。要どどんとふ自鯖。全ての機能が移植されているわけではない。rubyのサーバー部分もnodejsへの移植を実施されているけどこちらはまだ開発初期で実用前

  • ひよんとふ、Lotus・・・どどんとふのスマホ向けHTMLのフロントエンド。ただのフロントエンドなので別途どどんとふ自鯖が必要。


上記のうち、どどんてぃ以外はどどんとふ公式鯖でお試し可能。

スマホ可なオンセツール

クローズソースなので自前設置不可&コード見られないのでよく知らない


  • ココフォリア・・・ただしオープンソース化する可能性はあるとのこと

  • Roll20・・・海外の商用サービスなので基本英語。一部機能は有料。利用者数はぶっちぎり世界一。

  • たぶるく

  • 炬燵・・・Javaアプリ。自鯖設置はポート開放が必要。

どどんとふ公式鯖の派手な障害やらかし

どどんとふ公式鯖稼働系の物理サーバーのファイルシステムが溢れたことにより稼働系仮想マシンのファイルシステム破損が発生し待機系に切り替わったものの稼働系と待機系のデータ同期が一部不完全だったことから部屋データと画像データの不一致が発生しておりました。

状況を調査した結果、どどんとふ公式鯖の全部屋データを不整合がない状態の最新バックアップである2018/05/21 23:30時点に全データのロールバックを行いました。 避難所についても同様の状況であることから、救済措置として第壱~第四鯖の部屋削除日数を5→10日に延長しております。 (第五、第六鯖はもとから10日のため)

部屋データの消失およびロールバックが発生した原因というか経緯は以下の通りです

  • 5/21に発生した障害時にramdisk→hddへのコミット処理が多重起動防止のフラグを残したまま異常終了。
  • 多重起動防止フラグが残っているので同期処理が実行されなかった
  • ramdiskのデータが未コミットのため、待機系へのデータ同期、避難所へのコピー、日次バックアップについては、 ramdisk上の部屋データのみ全て5/21時点しかない
  • サーバー再起動時にはフラグファイル有無に関係なくコミット処理を行うため、5/21 23:00のリカバリー時に実行した再起動時の状態が唯一整合性のある状態
  • 5/26 14:50 稼働系の画像データがあるSSD領域のファイルシステムが溢れたことによってどどんとふ公式鯖の稼働系が停止し、待機系に切り替わった
    • ファイルシステム溢れの原因は5/19のメンテナンス後にバックアップを取得した際に実行したsnapshotが残存していたため、公式鯖の画像データの増減によりbtrfsのmetadataが削除されず蓄積され続けたため
  • 待機系は部屋データの同期が5/21時点で止まっていたため、部屋データは5/21なのに画像データは日次バックアップにより5/26が最新という不整合状態になっていた

また、全ての部屋データとキャラクターデータの整合性確認は現在の運用体制では不可能ですので、申し訳ございませんが、 上記以外の不整合や不備がありましても個別のリカバリー等には応じかねます。

で、以下のような再発防止策を実施しています。

  • 日次バックアップ処理の改良
    • ramdisk→hddへのコミット処理を多重起動防止のフラグ有無関係なしに実施
    • 多重起動防止のフラグをリセット(日次バックアップ時は定期コミットをそもそも動かしていないため多重起動しようがない)
  • 5/19の不安定化になった原因はKernel更新により対策済
  • ファイルシステム溢れの原因となったsnapshotを削除

水耕栽培装置届いた

会社から帰宅したら、何やら巨大な段ボールが届いていました。

欲しい物リストにあるとある品がなくなっているのを見て確信。水耕栽培装置でした。これです。

どどんとふ公式鯖管理人の欲しい物リストに入れていたので、どなたかが贈ってくださったのでしょう。マーケットプレイス業者からの直送なので、どなたからかはわかりませんでしたが、こんなに高額なものをありがとうございます。早速開封します。

ほぼパイプなわけですが、予想通り工作精度はめっちゃ悪いしなんか汚いです。まあ、屋外で使う物なので気にしません。

栽培用のカップですが、かなりの量がバッキバキだったのは予想外ですが、使えなくはない。

ポンプとタイマーは中華仕様なので、これはゴミ箱直行。リーベックスのプログラムタイマーと観賞魚用のポンプは既に持っていますので大丈夫です。

とりあえず、組み立ててみましたが組み立てがとにかく大変です。何せ工作精度が悪くてパイプの接合が堅いし歪んでいます。かといって、ハンマーとかで力尽くでやると割れそうなので、とりあえず気合いで押し込みました。風呂上がりなのに汗だく&変な力の入れ方をしたせいか節々が痛い。

で、あとは苗をスポンジに入れて水を流すのですが、まず苗を発芽させなければなりません。とりあえず手持ちのほうれん草とバジルの種を濡らしたキッチンペーパーの上で発芽させることにします。ちなみに、本体以外の付属品は、「バッキバキに割れたカップ」「200V仕様のポンプ」「中国規格の電圧不明なタイマー」「ピンセット」「説明書(中国語)」でした。うーん、ホームハイポニカとかに比べたら確かに安いし、国産品にはない立体的に72個の苗を一気に育てられるのと、塩ビ管を自分で加工する手間を考えると妥当な気がするが、2万あればかなりの量の野菜がスーパーで買えてしまうので、需要は極めて少ないと思う。