◆そもそもFTPとは
FTP(File Transfer Protocol)とは、サーバーとクライアント間で、
ファイルなどの送受信する通信プロトコルのことです。
◆そもそもNATとは
NAT(Network Address Translation)とは、IPヘッダーに格納されている
IPアドレスを変換する技術です。
一般的には
・グローバルIPアドレスをプライベートIPアドレスに変換する
・プライベートIPアドレスをグローバルIPアドレスに変換する
技術のことです。
なお、NAPT(Network Address Port Translation)とは、IPアドレスの変換に
加えて、TCP/UDPヘッダーポート番号の変換を行う技術です。一般的に、
インターネットへ接続する環境で、NAPTの技術を利用します。
◆データ部にもアドレス情報が格納される
IPヘッダー以外のデータ部分(ペイロード部分)にもアドレス情報を
格納するアプリケーション(FTPなど)があります。
FTPなどに共通する特徴は、IPアドレスやポート番号などの情報が
IPヘッダーやTCPヘッダー以外の部分にも格納されます。
つまり、データ部分(ペイロード部分)にもIPアドレスやポート番号などの
情報が格納されます。
そこで、そういったアプリケーション(FTPなど)でNATを行い、
IPヘッダーなどを書き換えた場合には、データ部分(ペイロード部分)も
書き換えないと、通信エラーとなります。
◆Cisco IOS デフォルトの動作
Cisco IOS デフォルトの動作では、NATを行う際にそのTCPポートがFTP
だった場合には、IPヘッダーなどに加えて、データ部分(ペイロード部分)も
書き換えるとのことです。
—– 以下 シスコ社ドキュメント内容抜粋 —–
初期の Cisco IOS ソフトウェア バージョンでは、NAT 対応ルータが
NAT 変換する必要のある IP アドレスを持ったパケットを受け取り、
標準 TCP ポート番号が FTP 制御接続(21)用である場合に、ルータは
そのパケットを FTP パケットとして認識し、パケットのペイロード内で
必要な変換を実行します。
NAT による非標準 FTP ポート番号の使用方法
—– 以上 シスコ社ドキュメント内容抜粋 —–
◆Cisco NAT非標準FTPポート番号の場合
FTP サーバが非標準 FTP ポート番号を使用している場合には、
NAT はパケットのデータ部分(ペイロード部分)の書き換えを実行しない
とのことです。
そのため、非標準ポート番号を使用している場合は注意が必要です。
NAT非標準FTPポート番号の使用方法についての詳細は以下に記載されています。
—– 以下 シスコ社ドキュメント内容抜粋 —–
FTP サーバが非標準 FTP ポート番号を使用している場合には、
NAT はパケットのペイロードを無視します。
これは、FTP データ接続の確立を妨げることがあります。
NAT による非標準 FTP ポート番号の使用方法
—– 以上 シスコ社ドキュメント内容抜粋 —–