Windows Server 2016 の FTP サーバーにファイルを転送するとデータが破損することがある

Last Update: feedback 共有

こんにちは、日本マイクロソフト Windows プラットフォーム サポートです。
今回は特定の条件下で FTP で転送したファイルの内容が変更される事象についてご説明します。

事象

Windows Server 2016 の IIS で FTP サーバーを利用している場合、FTP サーバーに転送 (PUT) されたファイルの内容が変更されることがあります。

発生条件

以下の条件を全て満たしている場合に発生することがあります。

  • FTP クライアントで TCP 通信の DF (Don’t Fragment) ビットがオフとなっている。
  • 通信経路上でクライアントが送信した FTP データ通信のパケットがフラグメントされる。

※ FTP クライアントが Windows OS の場合、TCP 通信で DF ビットがオフになることがないため、この事象は発生しません。

原因

Windows Server 2016 の tcpip.sys ドライバーでフラグメントパケットが不正にリアセンブルされ、転送されたファイルの内容が変更されることがあります。

対応策

以下のいずれかの方法で対応ください。

  • FTP クライアントで TCP 通信の DF ビットをオンに設定する。
  • 通信経路の機器でパケットがフラグメントされないように、MTU (Maximum Transmission Unit) サイズを調整する。

対象 OS

  • Windows Server 2016

※ Windows Server 2019 以降では発生しません。


更新履歴
2022/04/28 : 本 Blog の公開
2022/04/28 : MTU サイズの調整による対応策を追記

[特記事項]
本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。