本文へ移動

インフラ転職コンパス難しいインフラ技術を動画と図解で解説

メニュー

FTPはTCP?UDP?ポート21・20とパッシブモードの違いを図解

FTPは、パソコンとサーバーの間でファイルを送ったり受け取ったりするための通信ルールです。読み方は「エフティーピー」。CCNAの学習では、FTPはTCPを使うことと、命令用・データ用の接続が分かれていることを押さえると、ポート番号の暗記が仕組みの理解につながります。

たとえば、FTPソフトでログインはできたのに、フォルダーの中身が表示されないことがあります。これは矛盾した動きではありません。ログインに使う接続と、一覧やファイルを運ぶ接続が別だからです。この記事では、その2本を図で追っていきます。

図のクライアントは172.27.81.15、FTPサーバーは172.27.92.25です。クライアントはサービスを使う側、サーバーは提供する側と読んでください。IPや一部のポート番号は説明用の値です。

FTPクライアント、FW、サーバーの接続と、アクティブはサーバー開始、パッシブはクライアント開始となるデータ接続の比較図
接続構成と方式の比較:制御接続は共通です。下の2図はデータ接続を開始する向きの比較で、3本の通信を順番に実行する時系列ではありません。 タップで拡大できます。IP・数値は説明用です。

FTPには制御接続とデータ接続がある

FTPでは、ユーザー名やパスワード、取得するファイルの指定などを制御接続でやり取りします。「何をしてほしいか」を伝える接続です。通常、クライアントからサーバーのTCPポート21へ接続を始めます。

一方、ファイルの中身やフォルダーの一覧はデータ接続で運びます。ログインができた時点で確認できたのは、制御接続の側です。データ接続を通す条件が足りなければ、その後の一覧表示や転送が失敗します。

図を見るときは、まず共通の制御接続を見てください。その次に、下側のアクティブとパッシブを比べます。この2方式を続けて実行する図ではなく、データ接続の始め方を比較した図です。

アクティブとパッシブは、誰がデータ接続を始めるかが違う

アクティブとパッシブの違いは、データ接続をどちらから始めるかです。どちらもファイルを送受信できます。「ダウンロードはパッシブ、アップロードはアクティブ」という分け方ではありません。

アクティブでは、クライアントが「ここで受け取る」とIPとポートを伝え、サーバーから接続を始めます。パッシブでは、サーバーがデータ用のポートを用意して伝え、クライアントから接続を始めます。表の矢印は、ファイルの移動方向ではなく、接続を始める方向です。

方式 接続を始める側 データ接続の例
アクティブ サーバー サーバー:20 → クライアント:51001
パッシブ クライアント クライアント:51001 → サーバー:50000

アクティブのサーバー側送信元ポートは通常20です。ただし相手側は、そのときクライアントが指定したポートです。図の51001は説明用なので、両側とも20番になるわけではありません。

パッシブの50000も固定番号ではありません。サーバーに設定された範囲などから選ばれたデータ用ポートを使います。制御用の21番だけを許可しても、そのポートへ接続できなければファイルは運べません。

ログに出るPORTはクライアントが受け口を知らせる命令、PASVやEPSVはパッシブ用の受け口をサーバーに求める命令です。最初は文字を丸暗記するより、「誰が受け口を知らせ、誰が接続するか」で読んでください。

仕様の確認:RFC 959:FTPの制御・データ接続。

仕様の確認:RFC 2428:EPRTとEPSV。

ログインできるのに転送できないときの確認順

ログインできたのに転送できない場合は、最初にFTPソフトがアクティブ・パッシブのどちらを使っているか確認します。次にログから、データ接続に使うIPとポートを探します。「FTPだから20番の問題」と決めて調べると、パッシブで使う別のポートを見落とします。

観測したこと 次に確認すること
制御のTCP/21が成立しない 経路、FW、サーバーの待ち受け
制御は成立しデータ側のSYNだけ再送 通知ポート、FWの許可、NAT後の宛先
データ側も接続できるが転送失敗 権限、保存先、容量、FTP応答コード
パッシブ通知が内部IPになっている PASV通知設定、NAT、FTP補助機能の対応

たとえばパッシブで50000番が通知されたなら、クライアントからサーバーの50000番へ接続を試しているかを確認します。通知されたIPが、クライアントから届かない別のネットワークのIPになっている場合もあります。NATを使う構成では、この通知内容も確認対象です。

パケットを取得できるなら、接続を始めるSYNが出ているか、サーバーまで届くか、応答が戻るかを順に見ます。取得は「キャプチャ」と呼ばれます。FWのログも試験時刻を合わせて読むと、別の通信と取り違えにくくなります。

検証するときは、方式・送信元・宛先・時刻を控えてから一つずつ条件を変えます。FWを全面的に無効にした結果だけでは、どの許可条件が不足していたかを説明できません。

FTP・FTPS・SFTP・TFTPを区別する

FTP、FTPS、SFTP、TFTPは名前が似ていますが、同じ仕組みではありません。とくにSFTPは「FTPをそのままSSHで暗号化したもの」と覚えないようにしてください。SSHの上で動く別のファイル転送の仕組みです。下の表は、それぞれの入口を比べたものです。

名前 通信の特徴 代表的な入口
FTP 制御とデータが別のTCP接続 TCP/21
FTPS FTPをTLSで保護。データ接続も別に確認 明示的TLSは通常TCP/21、暗黙的TLSは通常TCP/990
SFTP SSH上のファイル転送。FTPとは別の仕組み 通常TCP/22
TFTP 簡易転送。FTPのUDP版という扱いはしない 初回要求はUDP/69

FTPは標準では認証情報やデータを暗号化しません。FTPSはFTPにTLSによる保護を加える方式ですが、制御とデータを分ける考え方は残ります。SFTPは通常SSHのTCP/22を使い、TFTPはUDPを使います。

仕様の確認:RFC 1350:TFTPの転送識別子。

ネットワーク用語の正式名と読み方

機器の説明や現場の会話では略語がよく出ます。最初から正式名を全部言える必要はありませんが、読み方と役割がつながっていると話を追いやすくなります。FTPの学習で出た用語を、下の表で確認してください。

略語 読み方 役割
TCP ティーシーピー Transmission Control Protocol。接続・順序・再送を扱う
UDP ユーディーピー User Datagram Protocol。データグラムを運ぶ
FTP エフティーピー File Transfer Protocol。ファイル転送
DNS ディーエヌエス Domain Name System。名前解決など
ARP アープ Address Resolution Protocol。IPv4隣接機器のMAC解決
VLAN ブイラン Virtual LAN。L2ネットワークの論理的な分割
ACL エーシーエル Access Control List。通信などの許可条件
NAT ナット Network Address Translation。アドレス変換

表の「L2」はOSI参照モデルの第2層、つまり同じLAN内でMACアドレスを使って転送する範囲です。VLANはスイッチの中で、そのLANのグループを論理的に分ける仕組みです。「MAC解決」は、IPから同じLAN内の相手のMACを調べることを指します。

機器の設定はconfig(コンフィグ)、CiscoのOSはIOS(アイオーエス)、光ケーブルをつなぐ小型モジュールはSFP(エスエフピー)と呼ばれます。読み方に現場差がある用語は、英字も見せて確認すると取り違えを減らせます。

確認したいポイント

ここまで読んだら、「FTPサーバーの21番へログインできた。これでパッシブのファイル転送も確認できたか」と考えてみてください。答えは、まだ確認できていません。データ用ポートへの別の接続が必要だからです。

次は紙に、制御接続とデータ接続を別の矢印で描いてみてください。アクティブではデータ接続をサーバーから、パッシブではクライアントから始めます。各矢印にTCP、送信元ポート、宛先ポートを書ければ、番号だけを覚えた状態から一歩進めています。

実際のFW条件を読むときも、この図に通知されたIPとポートを入れて確認します。接続が始まる方向とファイルを送る方向を分けて考えるのが、この仕組みを理解するコツです。

最近の記事
ピックアップ