現在の環境
tftp server
hyper-v上に建てたcentosに、tftp serverをインストールしています。
tftp cliant
とあるIoT機器です。 busyboxが動いています。
+-------------------------+
| Hyper-V Host |
| |
| +--------------+ |
| | CentOS VM | |
| | | |
| | IP | |
| | 192.168.11.12| |
| | | |
| | TFTP Server | |
| +--------------+ |
| | |
| | |
| | |
| +--------------+ |
| | IoT Device | |
| | | |
| | IP: | |
| | 192.168.11.19| |
| | | |
| +--------------+ |
| TFTP Client |
| |
+-------------------------+
tftp serverのインストール、設定の変更
yum -y install tftp-server xinetd
/etc/xinetd.d/tftp を以下のように変更してください
変更項目は
- server : -s /var/lib/tftpboot -> -c -u root -s /var/lib/tftpboot
- disable : yes -> no
この2つです。
cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -c -u root -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
設定が完了後は、起動!
sudo systemctl statart xinetd
送信したいファイルをtftp serverの指定の場所に置く
ファイルを置く場所は、以下の場所です。
pwd
/var/lib/tftpboot
ファイルをIoT機器(cliant)の方からgetしてみます。
tftp serverのファイル状態
/tftp_server
|-- hello.txt
|-- helloworld.o
IoT機器(cliant)のファイル状態
/IoT機器
|-- (None files)
IoTの方からgetしてみます。
tftp -g 192.168.11.12 -l hello.txt
ls
hello.txt
cat hello.txt
hello
無事、ファイルの転送ができました。
最後に
組み込み機器はbusyboxが入っていますが、SCPのような使い慣れたツールは入っておらず、後天的にパッケージをインストールすることもできないので、tftpというものを使いました。
getだけではなく、putもできるようなので、時間があれば記事の方を更新します。
参考にしたサイト様