SYNクッキー
SYNフラッドに対するDDoS対策。SYNごとにバッファを確保する代わりに、ハンドシェイクに必要な情報をすべて特殊なシーケンス番号(クッキー)に埋め込んでSYN+ACKで返す。クライアントが応答するまで、カーネルは状態を一切保持しない。
考案はダニエル・J・バーンスタインで、1996年。Linuxではnet.ipv4.tcp_syncookies = 1で有効にし、SYNが急増すると自動的に作動する。クッキーはSHA1(送信元IP, 宛先IP, 送信元ポート, 宛先ポート, MSSインデックス, タイムスタンプ)から作る。クライアントがACKを返した時点でクッキーを検証し、初めて状態を確保する。代償として、TCPオプション(タイムスタンプ、SACK、ウィンドウスケーリング)が失われるフォールバック動作になる。DDoSに対する完全な防御ではなく、クッキーの検証にはCPUコストがかかる。補完策はエッジでのDDoS対策(CloudflareやAWS Shield)だ。