ARCHIVESDRIVE HB

オイラはホームベーカリー!

possible SYN flooding on port XXXX. Sending cookies.

慌てないのが一番です。 ぼくは徹夜でリリースなのと、前日夜に風邪を発症して全身が痛いでしゅ……。

Serverから応答がない!

httpの監視をしていたサービスが急遽failedを送信してきました。 そのサーバはいつも夜間のバックアップやバッチ実行時、よくスワップアウトして度々警告がくる環境です。 たぶんそんな環境もあるでしょう。

ここで慌てずdmesgです。

[root@localhost ~]# dmesg
...
possible SYN flooding on port 3306. Sending cookies.
possible SYN flooding on port 3306. Sending cookies.
possible SYN flooding on port 3306. Sending cookies.
possible SYN flooding on port 3306. Sending cookies.
possible SYN flooding on port 3306. Sending cookies.
possible SYN flooding on port 3306. Sending cookies.
possible SYN flooding on port 3306. Sending cookies.
possible SYN flooding on port 3306. Sending cookies.

OOM Killerかと思いましたが違うようですね。3306といえばMySQLです。グローバルに開放はしていませんがどうしたのでしょう。プロセスの状態を確認してみます。

[root@localhost ~]# /etc/init.d/mysqld status
mysqld (pid 11451) is running...

動作していますね? ではSYN floodingとはなんでしょう。以下の記述が参考になります。

小岩以上アキバ未満~記憶のディザスター~: CentOS6などでdmesgにpossible SYN flooding on port(SYN flooding警告)が出た場合の対策方法を考えてみるテスト

サーバーで受け付けられない(受け付けてない)SYNが大量に来た場合にサーバーがどうしたかを教えてくれている模様。

どこからかアタックを食らったのかもしれませんね。 MySQLのプロセスを再起動してみましょう。

[root@localhost ~]# /etc/init.d/mysqld stop
[root@localhost ~]# /etc/init.d/mysqld start

restartしないのはサーバのSWAPが9割食われてて一度失敗したからです。 これで再起動できた後しばらくおけば、正常にアクセスできるようになるはずです。