以前の記事(はじめての Cisco C841M ルータ: 初期設定)では、Cisco C841M ルータの基本的な設定を行い、家庭内 LAN からインターネットに接続できるようになった。今回は、本製品のファームウェアの 15.5(3)M4a から 15.5(3)M8 への更新作業を行う。
前提条件
- Cisco ホームページから最新版のファームウェアを入手済みであること。
- ファームウェアのルータ本体への転送は Mac から TFTP 経由で行う。
TFTP サーバの準備
Cisco ルータにデータを転送する方法はいくつかあるが、今回は TFTP による転送を試す。TFTP というプロトコルは FTP の軽量版であるが、認証機能がないことなどから実際に使われる場面はかなり限定されているため、あまり一般的に知られていない。
macOS の場合は初期状態で TFTP サーバがインストールされている。以下を実行すると TFTP サーバが起動する。
sudo launchctl load -w /System/Library/LaunchDaemons/tftp.plist
クライアントに提供するファイル(今回はファームウェアのバイナリ)を /private/tftpboot
に設置する。
sudo cp c800m-universalk9-mz.SPA.155-3.M8.bin /private/tftpboot
sudo chmod 666 /private/tftpboot/c800m-universalk9-mz.SPA.155-3.M8.bin
ファームウェアの転送
Cisco ルータに telnet
等により接続したら copy tftp: flash:
コマンドを実行し、TFTP サーバからルータ本体内部メモリへの転送を開始する。接続する TFTP サーバのアドレス(ここでは Mac の IP アドレス = 10.10.10.3)やコピー先のファイル名を求められるので、適当な値を指定する。転送速度が遅いため結構時間がかかる。
C841M#copy tftp: flash:
Address or name of remote host []? 10.10.10.3
Source filename []? c800m-universalk9-mz.SPA.155-3.M8.bin
Destination filename [c800m-universalk9-mz.SPA.155-3.M8.bin]?
Accessing tftp://10.10.10.3/c800m-universalk9-mz.SPA.155-3.M8.bin...
Loading c800m-universalk9-mz.SPA.155-3.M8.bin from 10.10.10.3 (via Vlan1): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 59142700 bytes]
59142700 bytes copied in 161.524 secs (366154 bytes/sec)
以下のようにファームウェア c800m-universalk9-mz.SPA.155-3.M8.bin
が本体内部メモリにコピーされた。
C841M#dir flash:
Directory of sdflash:/
1 -rw- 58997820 Mar 15 2017 02:46:14 +00:00 c800m-universalk9-mz.SPA.155-3.M4a.bin
2 -rw- 3068 Mar 15 2017 02:54:24 +00:00 cpconfig-8xx.cfg
3 -rw- 1372160 Nov 23 2018 12:04:32 +00:00 nbar2_http_default.tar
4 drw- 0 Mar 15 2017 02:55:00 +00:00 ccpexp
407 -rw- 22750 Mar 15 2017 02:58:06 +00:00 home.html
408 drw- 0 Nov 23 2018 12:04:32 +00:00 nbar2
505 -rw- 59142700 Nov 25 2018 04:31:08 +00:00 c800m-universalk9-mz.SPA.155-3.M8.bin
1950683136 bytes total (1822560256 bytes free)
verify
コマンドによりデータが破損していないことを検証する。
C841M#verify flash:c800m-universalk9-mz.SPA.155-3.M8.bin
Starting image verification
Hash Computation: 100% Done!
Computed Hash SHA2: 9B108C8DDD36F2CF7F7800099AA944E0
F35D3EA37BDD72A86EAB06A5F3D5BB6C
F731F2517E58A85E8A2770C6C1716D7E
048A71D046BCDB71D15572DEB5D41FBF
Embedded Hash SHA2: 9B108C8DDD36F2CF7F7800099AA944E0
F35D3EA37BDD72A86EAB06A5F3D5BB6C
F731F2517E58A85E8A2770C6C1716D7E
048A71D046BCDB71D15572DEB5D41FBF
CCO Hash MD5 : 50118244B8E22C3950364F2C4D232FEC
Digital signature successfully verified in file sdflash:c800m-universalk9-mz.SPA.155-3.M8.bin
ファームウェアの更新
ルータの起動時に読み込むプログラムを新しいバージョン 15.5(3)M8 のファームウェアに変更する。
C841M#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
C841M(config)#boot system flash:c800m-universalk9-mz.SPA.155-3.M8.bin
C841M(config)#exit
設定を反映させルータを再起動する。
C841M#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]
C841M#reload
Proceed with reload? [confirm]
show version
コマンドによりファームウェアのバージョンが 15.5(3)M8
であることが確認できる。
C841M#show version
Cisco IOS Software, C800M Software (C800M-UNIVERSALK9-M), Version 15.5(3)M8, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2018 by Cisco Systems, Inc.
Compiled Thu 02-Aug-18 12:26 by prod_rel_team
...
TFTP サーバの停止
ファームウェアの転送用に Mac 上で起動した TFTP サーバを停止しておく。
sudo launchctl unload -w /System/Library/LaunchDaemons/tftp.plist
sudo rm /private/tftpboot/c800m-universalk9-mz.SPA.155-3.M8.bin
Cisco Smart Install の無効化
今回のファームウェア更新により Cisco Smart Install に関する設定が追加されたが、この機能に関しては複数の脆弱性が指摘されているため、Cisco が発表している推奨されるアクションに従い本機能を無効化しておく。
C841M(config)#no vstack