🌟

Catalyst 3850 ISO-XE アップグレード (16.3.7->16.12.12)

2025/02/27に公開

この記事の内容

この記事にはCatalyst 3850のIOS-XEをアップグレードする手順が記載されています
対象機器: WS-C3850-24-T-E
IOS-XE:16.3.7->16.12.12

Catalyst 3850

今回対象とするCatalyst 3850はL3スイッチ製品のうちの一つです
2025年現在では1世代くらい型落ちの製品になります
現在同等のカテゴリで最新の製品はCatalyst 9300シリーズになります
Catalyst 3850以前の機器については正直よくわかっていません
3560-Xとか3750-Xとかそこらへんでしょうか?

製品の流れ
???? (リリース ????/??/?? EOL ????/??/??)
-> Catalyst 3850 (リリース 2013/1/10 EOL 2027/4/30)
-> Catalyst 9300 (リリース 2017/6/20 EOL 未定)

CiscoにはL3スイッチ以外に多くの製品が存在しているので一応明記しておくとL2スイッチやコンパクトスイッチについてはこの記事では取り扱いません

取り扱わない製品群
・L2スイッチ
9200
・諸々の小型スイッチ
1200
1300
3560-CX
・諸々の大型スイッチ
9400
9500
9600
・Catalystでない製品
Nexusシリーズ
・ルータ製品
ISRシリーズ
ASRシリーズ
・その他製品
たくさん

IOS-XE

今回対象とするIOS-XE 16.12.12はCiscoの提供するソフトウェアのうちの一つです
IOSはバージョン15.x以降Linuxカーネル上で動作するようになり、IOS-XEの名称でバージョンが更新され続けています
現在の多くのいわゆるスイッチ製品はIOS-XEで動いています
歴史的な詳細を省けば、おおむね現在のIOSはIOS-XEだと思っていてそれほど困ることはないでしょう
(一部Classic IOSと表記されているソフトウェアで動作している製品もあるようですがこれらの正体はよくわかっていません)
ちなみにXEのEはEnterpriseらしいです(出展不明)
2025年現在ではIOS-XE 17.xが出ているようですが、ハードウェア的にサポートされているのが16.12.12なので今回はこれをインストールします

製品の流れ
IOS XE Release2 (リリース日 2008/4/16) このころはIOS XEは亜流のはず、詳細不明
...
IOS XE 15.0 (リリース日 2010/10/26) このころから標準のIOSとして採用され始めているはず
...
IOS XE 16.x (リリース日 2015/11/29)
...
IOS XE 17.x (リリース日 2019/11/21)

また、この記事ではIOS-XE以外のソフトウェアは取り扱いません

取り扱わないソフトウェア群
・IOS-XR
ルーティング特化のソフトウェア
ルータ製品で動くらしい
初版リリースはおそらく2004/5/24
IOS-XR5ではQNXというOSをベースにしていたがIOS-XR6からLinuxで動いているらしい
現在はIOX-XR7まで出ている
・NX-OS
Nexusシリーズ製品で動くOS
こちらもLinuxで動いているらしい
Nexusシリーズはデータセンター向けの低遅延製品群らしい
製品群がだいぶ違うようなので今回はあまり深追いしません

アップグレード手順

  1. IOSイメージのダウンロード
  2. IOSイメージのTFTPサーバーへのアップロード
  3. TFTPサーバからのIOSイメージのコピー
    おまけ:工場出荷状態への初期化

1. IOSイメージのダウンロード

IOSイメージはCiscoの公式サイトからダウンロードできます
https://software.cisco.com/download/home
昔はIOSイメージを入手するにはCiscoと契約するか横流し品を使うしかなかったようですが、現在は誰でも正規のIOSイメージを入手できます
アカウントも個人で作成可能です
ライセンスは別途購入が必要だと思いますが今のところ特に問題なく使用できています

今回使用するのはcat3k_caa-universalk9.16.12.12.SPA.binです
IOSイメージの各名称の意味は以下になります

名前 意味
cat3k_caa プラットフォーム、Catalyst 3000シリーズ
universal ユニバーサルイメージ※
k9 暗号化機能利用可能
16.12.12 バージョン
S デジタル署名付き
P 製品イメージ
A デジタル署名の鍵バージョンA
bin 実行可能バイナリ

※ 全機能が入っていてライセンスにより使用できる機能が制御されるイメージ。2025年現在は基本的に全てのIOSがユニバーサルイメージになっている、はず

2. IOSイメージのTFTPサーバーへのアップロード

IOSイメージをTFTPサーバへアップロードします
方法はUSBで持ち込んでもscpで転送するでもなんでも構いません
今回はscpでTFTPサーバへアップロードします
TFTPサーバは以下とします

項目 内容
OS Ubuntu24.04
IP address 192.168.1.102

TFTPサーバ起動

sudo apt install tftpd-hpa
sudo systemctl start tftpd-hpa
sudo systemctl enable tftpd-hpa

今回はデフォルト設定のまま使います

$ cat /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

作業PCからTFTPサーバにIOSをアップロードします

$ scp cat3k_caa-universalk9.16.12.12.SPA.bin 192.168.1.102:/srv/tftp

これでアップロードは完了です

一応作業PCからダウンロードできることを確認しておきます

$ sudo apt install tftp-hpa
$ tftp
(to) 192.168.1.102
tftp> get cat3k_caa-universalk9.16.12.12.SPA.bin

3. TFTPサーバからのIOSイメージのコピー

TFTPサーバからIOSイメージをCatalyst 3850にコピーします
まずはflash:の空き容量を確認しておきましょう

Switch#show file systems
File Systems:

       Size(b)       Free(b)      Type  Flags  Prefixes
             -             -    opaque     rw   system:
             -             -    opaque     rw   tmpsys:
     249872384     211390464      disk     rw   crashinfo:
*   1624104960     414720000      disk     rw   flash:
    1998159872    1923833856      disk     ro   webui:
             -             -    opaque     rw   null:
             -             -    opaque     ro   tar:
             -             -   network     rw   tftp:
       2097152       2095052     nvram     rw   nvram:
             -             -    opaque     wo   syslog:
             -             -   network     rw   rcp:
             -             -   network     rw   http:
             -             -   network     rw   ftp:
             -             -   network     rw   scp:
             -             -   network     rw   sftp:
             -             -   network     rw   https:
             -             -    opaque     ro   cns:
項目 内容
Size(b) ファイルシステムのサイズ(単位:バイト)
Free(b) 空き容量(単位:バイト)
Type disk:フラッシュメモリ等
network:ネットワーク上のデバイス
nvram:NVRAM
opaque:(調査不足)
Flags 読み書き権限
Prefixes プレフィックス(名前のようなもの)

空き容量が不足していたら古いファイルを削除します

Switch# request platform software package clean switch all file flash: 
コマンド 意味
request アクションのリクエスト
platform プラットフォームアクションのリクエスト
software ソフトウェアアクションのリクエスト
package パッケージアクションのリクエスト
clean 不要ファイルの削除
switch all 全てのスイッチが対象(スタック構成などの場合に他スイッチも対象となる)
file flash: flash:上のファイルが対象

TFTPサーバからのコピーの実行

Switch# copy tftp://192.168.1.102/cat3k_caa-universalk9.16.12.12.SPA.bin flash:

コピーが完了したらインストールを実行して再起動します

Switch# request platform software package install switch all file flash:cat3k_caa-universalk9.16.12.12.SPA.bin new auto-copy
Switch# reload
コマンド 意味
install 不要ファイルの削除
new 新規にファイルを生成
auto-copy パッケージを自動でコピー

以上でIOSのアップデートは完了です

おまけ:工場出荷状態への初期化

IOS XE 16.8.1から工場出荷状態へ戻すコマンドが追加されたようです
以下で工場出荷状態へ戻せます

Switch# factory-reset config
Switch# factory-reset boot-vars
Switch# pnp service reset

Discussion