ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
TFTP とは
TFTP (Trivial File Transfer Protocol) は、1981 年 RFC 783、現行版 RFC 1350 で定義された極めて軽量なファイル転送プロトコルです。UDP/69 上で動き、認証や暗号化を持たず、コードサイズが非常に小さいためROM に直接焼けるほどです。
| 項目 | TFTP | FTP | SFTP |
|---|---|---|---|
| プロトコル | UDP/69 | TCP/21 (制御), 20 (データ) | TCP/22 (SSH) |
| 認証 | 無し | パスワード / 匿名 | SSH 鍵 / パスワード |
| 暗号化 | 無し | 無し | あり |
| コード規模 | ★ 極小 | 中 | 大 |
| 用途 | 組込み・PXE | ファイル共有 | 安全な転送 |
TFTP の利用シーン
- PXE (Preboot Execution Environment) Boot: ネットワークから OS をブート(DHCP 経由で next-server / filename を取得 → TFTP でロード)
- ネットワーク機器: Cisco / Juniper の設定ファイル (running-config / startup-config) のバックアップ / リストア
- 組込み機器のファームウェア更新: WAP / VoIP 電話 / プリンタ
- VoIP 電話 (Cisco IP Phone): 起動時に
SEP<MAC>.cnf.xmlを TFTP 取得 - シンクライアント: イメージのダウンロード
プロトコル詳細
TFTP は 5 種類のパケット (オペコード) で構成されます。
| Opcode | 名前 | 用途 |
|---|---|---|
| 1 | RRQ (Read Request) | クライアント → サーバ。ファイル取得要求 |
| 2 | WRQ (Write Request) | クライアント → サーバ。ファイル送信要求 |
| 3 | DATA | 512 byte ブロック (最後だけ 0-511 byte) |
| 4 | ACK | 各 DATA への確認応答 |
| 5 | ERROR | エラー通知 |
転送シーケンス例 (Read)
Client Server (UDP/69)
| RRQ "boot.img" "octet" |
|--------------------------------->|
| DATA block#1 (512 byte) | (動的ポート, 以後 UDP/N で通信)
|<---------------------------------|
| ACK block#1 |
|--------------------------------->|
| DATA block#2 (512 byte) |
|<---------------------------------|
| ACK block#2 |
|--------------------------------->|
| ... |
| DATA block#N (< 512 byte) | ← 最後のブロックは 512 未満
|<---------------------------------|
| ACK block#N |
|--------------------------------->|
サイズ制限と拡張
ブロック番号が 16bit で 1 ブロック 512 byte のため、最大 65535 × 512 ≒ 32MB。これを超えるファイルは原則送れません。
| 拡張 | RFC | 機能 |
|---|---|---|
| blksize オプション | RFC 2348 | ブロックサイズを 512 → 65464 まで拡大 |
| timeout オプション | RFC 2349 | タイムアウト値交渉 |
| tsize オプション | RFC 2349 | ファイルサイズ事前通知 |
| windowsize | RFC 7440 | 複数 DATA をまとめて送ってから ACK = スループット向上 |
Linux での TFTP サーバ構築 (tftpd-hpa)
# インストール
sudo apt-get install tftpd-hpa tftp-hpa
# 設定ファイル
sudo vi /etc/default/tftpd-hpa
# TFTP_USERNAME="tftp"
# TFTP_DIRECTORY="/srv/tftp"
# TFTP_ADDRESS=":69"
# TFTP_OPTIONS="--secure --create" # --create で WRQ 受付
# 公開ディレクトリ
sudo mkdir -p /srv/tftp
sudo chown tftp:tftp /srv/tftp
sudo chmod 755 /srv/tftp
# サービス起動
sudo systemctl restart tftpd-hpa
sudo systemctl enable tftpd-hpa
# 動作確認 (クライアント)
tftp 192.168.1.10
tftp> get boot.img
tftp> put config.txt
tftp> quit
# ファイアウォール
sudo ufw allow 69/udp
xinetd 版 (古い RHEL 系)
sudo yum install xinetd tftp-server
sudo vi /etc/xinetd.d/tftp
# disable = no
# server_args = -s /var/lib/tftpboot
sudo systemctl restart xinetd
Windows での TFTP サーバ
| ソフト | 特徴 |
|---|---|
| SolarWinds TFTP Server | 無償。GUI 設定。商用機器ベンダー推奨多数 |
| Tftpd64 / Tftpd32 | 軽量。DHCP / Syslog 機能も統合 |
| WinAgents TFTP Server | 商用、Windows サービス化 |
| Windows 標準 TFTP クライアント | 「プログラムと機能」→ Windows 機能の有効化 で追加 |
Cisco 機器での TFTP 活用
# 設定をバックアップ
Router# copy running-config tftp:
Address or name of remote host []? 192.168.1.10
Destination filename [router-confg]? r1-2026-06-11.cfg
# 設定を投入
Router# copy tftp: running-config
Address or name of remote host []? 192.168.1.10
Source filename []? r1-2026-06-11.cfg
# IOS イメージのアップグレード
Router# copy tftp: flash:
Source filename []? c2900-universalk9-mz.SPA.157-3.M5.bin
# 失敗時の確認
Router# debug tftp
Router# show version
セキュリティの問題
| リスク | 内容 |
|---|---|
| 認証なし | 同一ネットワークから誰でもファイル取得可 |
| 平文転送 | 盗聴で全データ漏洩 |
| UDP のため改ざん検知弱 | 中間者攻撃が容易 |
| WRQ 受付時の上書き | 悪意ある設定ファイル投入 |
対策: 管理 LAN セグメントに限定 / ファイアウォール厳格化 / 一時的起動のみ / 機微情報は置かない。
代替プロトコル
| 用途 | 推奨代替 |
|---|---|
| 機器設定転送 | SCP / SFTP (SSH ベース) |
| 大量ファイル | SFTP / HTTPS |
| PXE Boot 強化 | iPXE 経由で HTTPS Boot |
| 組込み更新 | HTTPS + 署名検証 |
FAQ
Q: TFTP が「Timeout」で繋がらない
A: 多くはファイアウォール。TFTP は最初 UDP/69 → サーバが動的ポートで応答する特殊仕様のため、conntrack 用ヘルパーモジュール (nf_conntrack_tftp) を読み込まないと NAT 越えで失敗します。
Q: ファイルが 32MB を超えて転送できない
A: blksize オプションでブロックサイズを上げる、または windowsize 拡張対応サーバ / クライアントを使います。Cisco IOS は基本的に対応。
Q: TFTP と FTP の名前は似ているが互換性はある?
A: ありません。FTP は TCP 認証ありの全く別プロトコル。TFTP は名前のとおり「Trivial (簡素化)」版で別仕様です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?