Edgerouter tftpサーバ連携

投稿者: | 8月 21, 2025

自分が学生の時は、イエローケーブルからようやくRJ45に変わろうとしていた時代で。まだNATとかそんなに一般的ではなく、当時の大学はIPv4を大量に持っていた。(それに、学科内でネットブートさせるとFreeBSDのインストーラーが立ち上がるという噂が。誰かの机の下のワークステーションが当時のFreeBSDの配布サイトになっていたという説も)よって、自分の持ち込みパソコンもパブリックIPv4を持っていた。というか、研究室にプライベートIPv4のセグメントがなかったような。

ちなみに転職2社目の外資系の会社の業務ノートもパブリックIPv4を持っていた。ただし、ファイヤーウォールでガチガチに保護されていて、パブリックIPv4アドレスをプライベートIPv4として使っていた。よくよく考えたら凄いw (調べてみるとIPv4を初期の初期に取得した企業はみんなそうだったかもしれない。)

なので、自宅サーバは20年くらい立てている。そこでよくやっていたのがCD-ROM探すのが面倒なので、PXEブートでインストーラーを立ち上げるというやつ。

 

閑話休題

 

以下によると

https://help.uisp.com/hc/en-us/articles/22591188157079-EdgeRouter-Archiving-and-Managing-the-Configuration-Files

EdgeRouterとTFTPサーバを連携させることができるとのこと。TFTPサーバを立てておくと、リカバリイメージで初期化や構成情報の保存ができるらしい。設定を変えるたびにshow configuration commandでダンプして吐き出して外部保存をしていたのだが、それをしなくてよさそう。

実はQNAPやSynologyには標準でTFTPサーバがついている。PXEBootレベルでは読み取り専用でいいが、EdgeRouterの構成情報を保存させるためには、書き込みを有効にする必要がある。また、このTFTPってやつはセキュリティガン無視で動けちゃうので、IPレンジを必ず設定する。

Access rightをFull accessにする。

Root directoryの配下に以下のディレクトリを作っておく。

mkdir -p edgerouter/4/archive

 

tftpの動作確認

Ubuntuの場合、以下でできる。

apt -y install tftp-hpa
tftp 192.168.10.40
put sample.txt /edgerouter/4/archive/sample.txt
quit

これでファイルがアップロードできていればOK。

 

使い方

Configを保存する

save

とするとConfigファイルがEdgeRouterローカルに保存される。

以下のような引数をつけるとリモートに保存ができる。

  scp://<user>:<passwd>@<host>/<file> Save to file on remote machine

  sftp://<user>:<passwd>@<host>/<file> Load from file on remote machine

  ftp://<user>:<passwd>@<host>/<file> Save to file on remote machine

  tftp://<host>/<file> Save to file on remote machine

 

保存先を指定する場合

save tftp://192.168.10.40/edgerouter/4/

 

ちなみに、あくまでもConfigだけを保存するだけなので、/configにある個別ファイルも保存する場合は、ダッシュボードから設定ファイルをダウンロードをしておくこと。

 

Commitの履歴を取りたい場合

configure
set system config-management commit-archive location tftp://192.168.10.40/edgerouter/4/archive
commit

 

以下のようなメッセージが出ればOK

Archiving config…

  tftp://192.168.10.40/edgerouter/4/archive OK

 

さらに履歴の数を指定する

set system config-management commit-revisions 10
commit
save
exit

 

履歴を見るには

show system commit

以下のように表示される。root via otherは、GUIで設定した場合。 <username> via cli は、コマンドでcommitした場合。

さらにroot via rollback/rebootは、ロールバックした場合。

0 2025-08-20 12:41:06 by root via other

    commit

1 2025-08-20 12:36:30 by root via rollback/reboot

    commit

2 2025-08-20 12:30:06 by root via other

    commit

3 2025-08-20 12:28:36 by root via other

    commit

4 2025-08-19 01:37:49 by <username> via cli

    commit

5 2025-08-19 00:57:15 by root via other

    commit

6 2025-08-18 23:52:28 by <username> via cli

    commit

7 2025-08-18 23:52:27 by root via init

    commit

 

もしロールバックしたい場合は、

rollback <TAB>

とすると、以下のようにリストが出てくるので

Revisions:

0 2025-08-20 12:41:06 root by other

1 2025-08-20 12:36:30 root by rollback/reboot

2 2025-08-20 12:30:06 root by other

3 2025-08-20 12:28:36 root by other

4 2025-08-19 01:37:49 <username> by cli

5 2025-08-19 00:57:15 root by other

6 2025-08-18 23:52:28 <username> by cli

7 2025-08-18 23:52:27 root by init

 

rollback <数字>

とする。そうするとリブートするか聞いてくるのでリブートをする。もとに戻るかどうか祈る。

 

本当は、SSHのサーバのほうが認証がついているのでセキュアなんだけど、インスタンスで用意しなきゃならないので面倒だったのでTFTPにした次第。

 

今回、気分で設定しただけだったのだが、実はこの設定をした後に思いっきり設定を失敗して、ダッシュボードにアクセスできなくなったので、これで戻して復帰させた。

v3.0.0のファームウェアは、大量転送させているときにダッシュボードを表示させると、ダッシュボードの接続が切れやすいような気がする。

コメントを残す