ネットワーク機器の管理におけるファイル転送

ルータ・スイッチの運用では、設定ファイル(running-config/startup-config)やIOSイメージ(機器のソフトウェア本体)を、外部のサーバーとの間でやり取りする場面が頻繁にあります。例えば、設定変更前のバックアップを取っておく、複数の機器に同じIOSイメージを配布する、といった用途です。こうしたファイル転送に使われる代表的なプロトコルが、TFTPとFTPです。

TFTP(Trivial File Transfer Protocol)

TFTPは、その名のとおり「簡易な」ファイル転送プロトコルです。最初の要求にはUDPポート69を使用し、認証機能を持たない、非常にシンプルな仕組みになっています。

  • 認証が無いため、設定が簡単で、軽量に動作します。
  • UDPを使いますが、ブロックごとの確認応答(ACK)と、タイムアウト時の再送による信頼性機構をプロトコルとして備えています。TCPのような接続指向の信頼性制御はありません。
  • ネットワーク機器の設定ファイル・IOSイメージのバックアップ/復元という、限られた用途で古くから広く使われています。
Router# copy running-config tftp
Address or name of remote host []? 192.168.1.100
Destination filename [running-config]?

copyコマンドを使い、転送元・転送先としてTFTPサーバーを指定することで、現在の設定(running-config)をTFTPサーバーへバックアップしたり、逆にTFTPサーバー上のIOSイメージをフラッシュメモリへ書き込んだりできます。

FTP(File Transfer Protocol)

FTPは、TFTPより高機能な、汎用的なファイル転送プロトコルです。TCPを使用し、制御用にポート21を使用します。データ転送には、アクティブモードではサーバー側のポート20を使用し、パッシブモードではサーバーが通知する動的ポートを使用します。

  • ユーザー名・パスワードによる認証に対応しています。
  • ディレクトリの一覧表示やファイルの削除など、TFTPより豊富な操作に対応しています。
  • TCPにより、順序制御・再送・フロー制御などをトランスポート層で利用できます。TFTPもACKと再送による簡素な信頼性機構を備えています。
Router# copy running-config ftp
Address or name of remote host []? 192.168.1.100
Destination filename [running-config]?

FTPもTFTPと同様に、IOSのcopyコマンドから利用でき、必要に応じてユーザー名・パスワードの入力を求められます。

TFTPとFTPの比較

観点TFTPFTP
トランスポート層プロトコルUDPTCP
使用ポート最初の要求は69(転送中は動的ポート)21(制御)、20(アクティブモードのデータ)、または動的ポート(パッシブモードのデータ)
認証無しあり(ユーザー名・パスワード)
機能の豊富さ送受信のみのシンプルな機能ディレクトリ操作等、より豊富な機能
主な用途設定ファイル・IOSイメージの簡易なバックアップ/復元認証や、より高度なファイル管理が必要な場面

いずれのプロトコルも、通信内容が暗号化されないという共通の弱点があります。FTPではユーザー名・パスワードを含め平文でやり取りされ、TFTPには認証機能がありません。そのため、可能であれば、暗号化に対応した代替手段(SCP、SFTP等)の利用も検討されますCCNA 200-301の出題範囲としては、TFTP/FTPの用途・機能の理解が対象であり、SCP/SFTPのような暗号化された代替プロトコルの詳細な設定は出題範囲に明記されていません。参考情報として触れるにとどめます。[1]。


補足

  1. CCNA 200-301の出題範囲としては、TFTP/FTPの用途・機能の理解が対象であり、SCP/SFTPのような暗号化された代替プロトコルの詳細な設定は出題範囲に明記されていません。参考情報として触れるにとどめます。 ↩