2023/05/01(月)トラブルのメモ

  • 現象:複数のサーバで、DNS権威サーバとUDPでの通信ができない。TCPでは疎通。
    • OSはFreeBSD 13.(1|2)-RELEASE
    • DNSサーバはnsd(from FreeBSD ports)
  • 対策?:現象を深掘りしようと、pfを設定して入ってくるパケットのログ取りをすると、疎通する。しなかった。
なんでやねん。

drill -t @[サーバ] では通るし、traceroute -P UDP -p [ポート番号] で読み捨てるところまでは確認できたんで、単純なIP53Bではなさそう。みると、IP53Bかけてる気配が。FreeBSDのtracerouteって、プローブパケット1つ出すとポート番号変えるのな。GWホストつなげている某プロバイダがこっそりポート番号フィルタリングしたのでは?NetNews盛んな頃こっそりtcp/119フィルタリングしたのを覚えているよ。

2023/01/07(土)またDMZこけた。

取りあえず落ち着いたので、書き留めておく。

1月3日の午後から兆候は出ていた。DMZホスト(FreeBSD13.1R on conoha)へのsshセッションが妙に切れる。postfixやらなにやらがいつの間にやら死んでいる。迷惑メール対策でいろいろ設定をいじっていたので再起動し忘れたかなと思ってた。深夜になると、いよいよつながらなくなる。VPSの制御コンソール経由で再起動かけてもダメ。それどころかブートシーケンスの途中で "out of swap space" とほざいて死んでいく。まだシングルユーザモードでは立ち上がるので、増設ディスク借りてスワップ増量してもだめ。「仕事始めの直前でこれかよ」と思ったよ。

そこで、諦めて次の手を打つ。
  1. 借りた増設ディスクにUFSパーティションを切る。
  2. インストールしたpackageのリストを "pkg info" でとって増設ディスクに保管。
  3. /home, /etc, /usr/local/etc, /usr/local/www (このサイトのデータ)をtarでバックアップして増設ディスクへ。
  4. dumpで / をフルダンプして増設ディスクへ。
  5. VPSの制御コンソールからサーバ再構築。
  6. restore かけてみる。→ 再発。
  7. も一度再構築。freebsd-updateでOSを最新に。
  8. tarとったデータとpackageデータ見ながら、DMZのサービスを1つずつ復元する。
    1. NTP
    2. DNS
    3. postfix
    4. apache
    5. let's encrypt(認証にapacheが必要なので、順序としてはここ。)
    6. Webアプリ
  9. バックアップを圧縮して自宅に待避 ←いまここ
  10. 待避完了したら増設ディスクを返して終了。
postfix復旧した時点で4日の朝3時すぎ。8時には家を出なければ。勘弁してくれよ。仕事始めを済ませてからWeb関連復旧して今日に至る。
xz -9 でdumpイメージ圧縮しているが、終わらない。圧縮後のファイルがまだ5%ぐらいだから、1ヶ月かかるのか。失敗した。先に自宅に移すべきだった。この日記書く裏で思い立って転送始めたが、書いているうちに自宅サーバへの転送終わっちゃった。さあ、増設ディスクを切り離して返却しないと。

2022/08/20(土)Panic!

何が起こったかよく分からないが、FreeBSD 13.1Rなホストの1台で、pkgngのパッケージ管理ファイルがぶっ飛んだ。バックアップを使っても復旧できない。
幸い、portupgrade経由でインストールしたもののログが残っていて、どんなpackageがどんなオプションつけて入っているかは分かっている。
そこで、次の手順で復旧かな。
  1. /var/db/pkg を初期化。
  2. ログを基に入れられるだけportsから再インストール。ただし、perl/ruby/pythonは現在のports正式採用分のみ。
  3. packageのautoremoveフラグを再設定。必要なアプリ以外はautoremoveフラグを立てる。
  4. pkg autoremoveで不要なpackageを削除。

2021/10/30(土)メールが流れない

FreeBSD portsで mail/postfixをアップデート(多分、postfix-3.6.2_1,1)したら、外部のテーブル(/etc/mail/aliases.db)とかのアクセスに失敗して受け取り拒否してる。月末でたまったメール処理に追われて1日気づかなかった。トホホ。
ログ見ても意味不明。ググってもなにも出てこない。postmapやnewaliasesで作り直そうとしてもダメ。
結局、更にアップデート(postfix-3.6.2_2,1)してテーブルを作り直して回復。
さあ、他のホストも緊急メンテだ。

2021/05/03(月)疲れたー

夜中にVPSサーバ(FreeBSD 13.0-R: on Conoha)の設定変更をして、再起動かけたがpingが帰ってこない。
「何事?」ということで、管理ページに飛んでコンソール画面出してみると、ブート途中で止まってる。
管理ページから再起動かけても、同じ場所でこける。シングルユーザモードでも止まらない。
止まった場所からみて、ブートディスクのマウントに失敗している模様。
管理ページで設定をいろいろ変えても、先に進んではくれない。

一時は「詰んだな」と思った。

そこでやったこと。
(1)とりあえず落とす。ゲストOSが落ちるのと、仮想マシンであるVPSが落ちるのとがあわず、妙な感覚になる。
(2)管理ページから、ブートディスクのイメージを別領域に待避させる。
※各種作業用のテンポラリな領域がある。3ヶ月で消されるらしいので注意。50GBの無料分でなんとかなったよ。
(3)追加ドライブを借りて、そっちにイメージを展開する。
※VPSから使えるドライブのかたちでは、200GBで月額2750円(3.9円/時間)だそうで。
(4)追加VPSを借りて、FreeBSD 12.2-Rを立ち上げる。
(5)追加ドライブをfsckしてマウントし、内容確認。まあ、派手に壊れていないようで、良かった。
※この段階で、追加VPSは解約。今思うと、(6)の終了時まで待ってもよかったか。
(6)問題のVPSはFreeBSDを再構築。12.2-Rが立ち上がった!
(7)freebsd-updateで13.0-Rまで更新。portsの更新が不要だと少し楽ですね。
(8)追加ドライブをマウントして、設定を移行する。考えてみればconfig変えていないので、package使用に変更。
権威DNSサーバとメールサーバの移行が終了した段階で、力尽きる。

そしていま、Web関係の修復中。次はLet's Encryptだね。回数制限があるから、じっくりやらないと。

今見てみると、昨日の分だけでは、追加VPS1円,追加ディスク7円。VPSは早い内に返したからそんなにかからないでしょう。ディスクは1日当たり100円ほどだから、早めに修復しないと。