🌐

macOS環境でUNIVERGE IXルーターのFWアップデート

2023/03/25に公開

はじめに

某所で中古品のUNIVERGE IXルーターが大量に販売されていたため、自分も何個かポチってみた。

IXルーターのファームウェアアップデートにはいくつかの方法があります。クラウド型統合管理サービス「NetMeister」を利用した方法が最も簡単だと思いますが、今回のような中古品では古いファームウェアで動作していることが多く、これに対応していません。基本的には自力でファームウェアを入手し、WebGUIまたはCLIからアップデートを行う必要があると思う。

さて、今回はmacOS環境でTFTPサーバを用意し、CLIからファームウェアアップデートを行いました。手順を忘れないうちにメモとして残しておきます。

環境

  • M1 Mac mini 2020 (macOS 13.2.1)
  • UNIVERGE IX2215
  • USB-RJ45シリアルケーブル FTDI-FT232RL
  • PC/IPv4 192.168.1.10/24
  • Router/IPv4 192.168.1.20/24

手順

ファームウェアの入手

ファームウェアのダウンロードサイトは一般公開されていない。しかし、専用の受付窓口に「UNIVERGE IXシリーズ ソフトウェアダウンロードサイトへの接続申請書」を提出すれば、メールでダウンロードサイトリンクとパスワードなどが送られてくる。ここから最新ファームウェアを入手しよう。

自分はix2215-boot-22.1-gate-ms-10.7.18.rapを用意した。

ルーターに接続

ルーターに電源を入れ、シリアルケーブルでPCと物理的に接続する。

使用したCableCreationのUSB-RJ45シリアルケーブルには、FTDI社のFT232RLチップが使われていた。どうやら自分の環境ではドライバインストール無しでPCが認識するらしい。ls /dev/tty.usb*を実行して確認する。

認識に問題なければ下記のような表示で機器に対応するデバイスファイルが確認できる。そうでない場合、FTDI社のダウンロードサイトよりVCPドライバをダウンロードしてインストールする。

$ ls /dev/tty.usb*
/dev/tty.usbserial-AQ01BG9P

screenはシリアルターミナルとしても機能するターミナルマルチプレクサ。これを使用してルーターと接続する。

指定するデバイスファイルは先ほど確認した/dev/tty.usbserial-AQ01BG9P。IX2215のシリアルポートは通信速度9600bpsなので、対応するBaudレートをscreenコマンドのオプションに指定する。

$ screen /dev/tty.usbserial-AQ01BG9P 9600
Router#

screenのデフォルトBaudレートは9600なので一応下記でも接続できる。

$ screen /dev/tty.usbserial-AQ01BG9P
Router#

TFTPサーバの準備

ルーターにファームウェアを送信するため、TFTPサーバを構築する。macOSでは下記コマンドで起動してすぐにTFTPサーバが利用できる。

$ sudo launchctl load /System/Library/LaunchDaemons/tftp.plist

lsofコマンドで起動状態を確認する。オプションでポートを指定すれば、確認したい項目だけ表示される。

$ sudo lsof -i:69
COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
launchd   1 root   41u  IPv6 0x5526edcfc1868cb9      0t0  UDP *:tftp
launchd   1 root   42u  IPv4 0x5526edcfc1869319      0t0  UDP *:tftp
launchd   1 root   50u  IPv6 0x5526edcfc1868cb9      0t0  UDP *:tftp
launchd   1 root   52u  IPv4 0x5526edcfc1869319      0t0  UDP *:tftp

起動が確認できたら、アップロードしたいファームウェアが存在するディレクトリに移動し、ローカルのTFTPサーバに接続してputコマンドでアップロードする。

TFTPサーバのデフォルトファイルパスは/private/tftpbootで、ここにファームウェアをアップロードすることになる。ただし、アップロードしようとしているファイルが存在していない場合、TFTPサーバは上書きしかできないためエラーが発生する。

まず、同名の空ファイルを作成して必要な権限を付与する。

$ sudo touch /private/tftpboot/ix2215-boot-22.1-gate-ms-10.7.18.rap
$ sudo chmod 666 /private/tftpboot/ix2215-boot-22.1-gate-ms-10.7.18.rap

そしてアップロード。

$ tftp localhost
tftp> put ix2215-boot-22.1-gate-ms-10.7.18.rap
Sent 10744825 bytes in 1.7 seconds

アップデート

ルーターはあらかじめスーパーリセットを実行した。必要な構成を設定して、TFTPサーバに接続する準備をする。

GE1(GigaEthernet1)を物理ポートとして使用し、IPアドレスに192.168.1.20/24を設定する。

Router# configure
Router(config)# interface GigaEthernet1.0
Router(config-GigaEthernet1.0)# ip address 192.168.1.20/24
Router(config-GigaEthernet1.0)# no shutdown
Router(config-GigaEthernet1.0)# exit

TFTPサーバとの疎通確認。

Router(config)# ping 192.168.1.10
PING 192.168.1.20 > 192.168.1.10 56 data bytes
64 bytes from 192.168.1.10: icmp_seq=0 ttl=64 time=0.296 ms
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.162 ms
......
....

問題なく疎通できていれば準備完了!

念のためバージョンを確認し、必要があれば古いファームウェアをバックアップしよう。

Router(config)# show version
NEC Portable Internetwork Core Operating System Software
IX Series IX2215 (magellan-sec) Software, Version 10.6.67, RELEASE SOFTWARE
Compiled xxx xx-xxx-xxxx xx:xx:xx JST #2 by sw-build, coregen-10.6(67)

ROM: System Bootstrap, Version 21.1
System Diagnostic, Version 21.1
Initialization Program, Version 7.1

System uptime is 14 minutes
System woke up by reload, caused by command execution
System started at xxx xx-xxx-xxxx xxx:xx:xx JST
System image file is "ix2215-ms-10.6.67.ldc"

Processor board ID <0>
IX2215 (P1010E) processor with 262144K bytes of memory.
3 GigaEthernet/IEEE 802.3 interfaces
1 ISDN Basic Rate interface
1 USB interface
1024K bytes of non-volatile configuration memory.
32768K bytes of processor board System flash (Read/Write)

古いファームウェアをルーターからTFTPサーバにアップロード。これもあらかじめ空ファイルを用意しておかないとエラーになる。

Router(config)# tftp put ix2215-ms-10.6.67.ldc 192.168.1.10:ix2215-ms-10.6.67.ldc
......
TFTP transfer complete, 8951733 bytes, MD5 = 614181d37912ca6ce53cb2f67c6051fc

software-updateコマンドでTFTPサーバから新しいファームウェアをダウンロードし、アップデートを行う。

処理が完了したらreloadコマンドでルーターを再起動する。

Router(config)# software-update tftp://192.168.1.10/ix2215-boot-22.1-gate-ms-10.7.18.rap
% Downloading ......
TFTP transfer complete, 10483413 bytes, MD5 = 990bf782378de452866e3a8b020abfef
% Check ...... done
% Erasing
% Update file name is ix2215-ms-10.7.18.ldc
% Writing ...... done
% Software update completed.

Router(config)# reload

再起動後にバージョンを確認。

Router# configure
Router(config)# show version
NEC Portable Internetwork Core Operating System Software
IX Series IX2215 (magellan-sec) Software, Version 10.7.18, RELEASE SOFTWARE
Compiled xxx xx-xxx-xxxx xx:xx:xx JST #2 by sw-build, coregen-10.7(18)

ROM: System Bootstrap, Version 22.1
System Diagnostic, Version 22.1
Initialization Program, Version 7.1

System uptime is 0 minute
System woke up by reload, caused by command execution
System started at xxx xx-xxx-xxxx xx:xx:xx JST
System image file is "ix2215-ms-10.7.18.ldc"

Processor board ID <0>
IX2215 (P1010E) processor with 262144K bytes of memory.
3 GigaEthernet/IEEE 802.3 interfaces
1 ISDN Basic Rate interface
1 USB interface
1024K bytes of non-volatile configuration memory.
32768K bytes of processor board System flash (Read/Write)

show flashコマンドでファームウェアの状態も確認しておく。新しいファームウェアのステータスがMAになっていればOK!

Router(config)# show flash
Codes: M - Main-side, B - Backup-side, N - Newfile, R - Runnable
       A - Active-file, + - Next-boot, * - Bootmode-entry
Length     Name                          Status
8951733    ix2215-ms-10.6.67.ldc         B
8991293    ix2215-ms-10.7.18.ldc         MA

[18075792 bytes used, 8906802 available, 26982594 total]
26368 Kbytes of processor board System flash (Read/Write)

後始末

ルーターから古いファームウェアを削除して……

Router(config)# erase ix2215-ms-10.6.67.ldc
Now erasing ix2215-ms-10.6.67.ldc, please wait...

Router(config)# exit
Router#

screenからデタッチ(プロセスキル)し、TFTPサーバをシャットダウン。

さきほど使用したlsofコマンドで起動状態も確認できます。正常にシャットダウンできていれば何も表示されないハズ。

$ sudo launchctl unload /System/Library/LaunchDaemons/tftp.plist
$ sudo lsof -i:69

さいごに

お疲れ様でした。以上でIXルーターのファームウェアアップデート作業は完了です。

後は焼くなり煮るなりしてHomeLabをエンジョイしよう!

Discussion