tftpdを削除してtftpd-hpaを入れ直す
$ sudo apt install -y tftpd-hpa # tftpdも一緒に削除される
経緯
cobblerサーバをメンテしていたらtftpdが起動していないことに気がついた。
tftpdはxinetd(!)経由で起動されているので jounalctl -fu xinetd
したところ以下のエラーが出ていた。
Oct 19 12:02:45 cobbler tftpd[21149]: unknown option -?
なんじゃこりゃと思って色々調べていたが全くわからんとなっていた…。 そこでふとtftpd-hpaを入れるとどうなるじゃろ?とやったら瞬く間に解決できてしまったのであった。
tftpd-hpaのhpaとは?
tftpdとtftpd-hpaでどう違うのか?と気になってしまった。 オプションや機能などは一緒そうに見える。 dpkgのdescriptionには以下のとおり書いてある。
$ dpkg -s tftpd-hpa -- snip -- Description: HPA's tftp server Trivial File Transfer Protocol (TFTP) is a file transfer protocol, mainly to serve boot images over the network to other machines (PXE). . tftp-hpa is an enhanced version of the BSD TFTP client and server. It possesses a number of bugfixes and enhancements over the original. . This package contains the server. Homepage: http://git.kernel.org/cgit/network/tftp/tftp-hpa.git Original-Maintainer: Ron Lee <ron@debian.org>
なるほど…?🤔
HPA とはなんだ…?っと思いHomepageを確認したところAuthroに H. Peter Anvin
っとあった。
たぶん、この方が実装されたtftpdサーバのことなのだろうか(自信なし) -> Hans Peter Anvin - Wikipedia
動作確認
tftp-hpaというパッケージをインストールすることでtftpクライアントを入手することができるのだけど、curlでもtftpを扱うことができる。
$ curl -v tftp://<server>/pxelinux.0
参考: TFTP - ArchWiki
終わりに
xinetd経由で起動するのでとても煩雑だなぁと感じた。 今はsystemdもあるし、そこで一括管理できると便利だなぁっと思う。 Unitファイルを書けばsystemd経由で直接起動できるとは思うけど、今回試したUbuntu16.04環境だとxinetd経由のほうがお手軽だったのでそうした。 18.04やそれ以降のバージョンならよりモダンなtftpサーバが使えるのかな?