Ruckus ICX7150-24をセットアップする

ICX6430-24の後継にICX7150-24を調達したので、工場出荷状態に戻して初期設定を行います。

はじめに

Proxmox VEのクラスタを更新して10GbE対応していくにあたり、そろそろ10GbEポートが必要になりました。
Ceph用はXikeStorの10GbEのOEMなどを適当に見繕ったのですが、仮想マシンに割り当てるポートの方は現行のICX6430のリプレースを同時に行いたかったので、ポート数やVLAN設定などの面で少し要件がありました。

候補としては大体このあたりを考えていたのですが、Brocade ICX6430-24の後継にあたるRuckus ICX7150-24が落札できてしまったので、とりあえずそれになりました。

Vendor Model Note
FS.com S3900-24T4S-R S3900-24T4S-R - FS JAPAN株式会社
YAMAHA SWX2310-28GT SWX2310-28GT
HPE Instant On 1930-24 Instant On Switch 24p Gigabit 4p SFP+ 1930
Ruckus ICX 7150-24 RUCKUS ICX7150 スイッチ - RUCKUS ネットワーク
Ruckus ICX 7250-24 Fan有
Ruckus ICX 7450-24 Fan有、SFP+は拡張スロット必須
Allied Telesis AT-x510-28GSX Fan有

というわけで、簡単にセットアップの記録を書いておきたいと思います。

外観

GbEが24 + 2ポート、10GbEが4ポートというオーソドックスな構成。

ICX7150-24 外観

中古だったので耳無し。GbEが2ポートおまけで付いてるのって新鮮ですね。
電源を入れた当初はコイル鳴きを感じて外れ個体だったかと思ったんですが、慣らし運転している間に落ち着いたので事なきを得ました。

コンソール接続確認

Proxmox VEにscreenを入れてシリアルコンソールで繋いでみる。

1
2
3
4
5
6
7
~# screen -S ttyS0 /dev/ttyS0 9600
CLTSRWANSW01-01>
CLTSRWANSW01-01>enable
User Name:
Password:
Error - Incorrect username or password.
CLTSRWANSW01-01>

見たところ、前のユーザーの設定が丸々残っているようなので、ファームウェアの入れ替えついでに全部削除する。
見ないのは武士の情け(面倒なだけでもある)

ファクトリーリセット

まずは電源を引っこ抜いて挿し直して b キーを連打して ICX7150-Boot> プロンプトを出します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Ruckus Wireless Bootloader: 10.1.14T225 (Nov 15 2018 - 04:59:18 -0800)

Booted from partition 1
DRAM:  Validate Shmoo parameters stored in flash ..... OK

ICX7150-24 Copper (Non-POE), PVT1
SYS CPLD VER: 0x4 Released Ver: 0xa
Writing Shmoo values into flash .....

device 0 offset 0x0, size 0xc0000
Enter 'b' to stop at boot monitor:  0
ICX7150-Boot>

次に、TFTPサーバーでブートローダーとファームウェアを配布できるように準備します。
これには https://fohdeesha.com/docs/brocade-overview.html に書いてあるキットをほぼそのまま使います。

まずは必要なファイルがセットになったzipをありがたく拝借して適当なLinuxマシンの上で展開します。

1
2
3
4
mkdir ~/icx7150
cd ~/icx7150/
wget https://fohdeesha.com/docs/store/brocade-01-08-2025.zip
unzip brocade-01-08-2025.zip

上記のキットに含まれるファームウェアバージョンは SPR08095qufi でした。
Ruckusのページの最新版は SPR08095rufi だったので TFTP-Content/ICX7xxx/ 配下に追加しておきます。(コマンド略)

Info
Ruckusのアカウントは表玄関から普通に作ったような記憶があります。
ただBrocadeからの移行でいつどうやったか、正直覚えてないんですわ。

次に適当なLinuxマシンでTFTPサーバーを立てます。

1
2
3
4
sudo apt install tftpd-hpa
sudo systemctl disable tftpd-hpa
sudo vi /etc/default/tftpd-hpa
sudo systemctl restart tftpd-hpa

設定ファイルは以下の通り。

1
2
3
4
5
6
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/root/icx7150/brocade-01-08-2025/TFTP-Content"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure -vvvv"

最後にスイッチ側の操作です。
ブート中のプロンプトを出すところまで進めて止めてあるので、一時的なIPアドレスを設定してTFTPサーバーからuboot imageをロードして再起動します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ICX7150-Boot>setenv ipaddr 192.168.122.96
ICX7150-Boot>setenv netmask 255.255.255.0
ICX7150-Boot>setenv serverip 192.168.122.26
ICX7150-Boot>setenv image_name ICX7xxx/SPR08090mc.bin
ICX7150-Boot>setenv uboot ICX7xxx/mnz10118.bin
ICX7150-Boot>update_uboot
Loading image to Uboot Partition 2
Change GMAC speed to 1000MB
Using bcm_xgs_gmac-0 device
TFTP from server 192.168.122.26; our IP address is 192.168.122.96
Filename 'ICX7xxx/mnz10118.bin'.
Load address: 0x61007dc0
Loading: ######################################################
         6.9 MiB/s
done
Bytes transferred = 786944 (c0200 hex)
sf erase 0x0 0xc0000
copying uboot image to flash, it will take sometime...
sf write 0x61007fc0 0x0 0xc0000 
device 0 offset 0x0, size 0xc0000
TFTP to Flash Done.
ICX7150-Boot>saveenv
ICX7150-Boot>reset
resetting ...

reload中にブートローダで止めるように b を連打します。
再度ブートプロンプトで止めたら、一時的なIPアドレスを削除して、工場出荷状態に戻すため factory set-default コマンドを実行して再びreloadします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
resetting ...
device 0 offset 0x0, size 0xc0000
using GPIO[7] to reset 

Ruckus Networks Bootloader: 10.1.18T225 (Jul 13 2020 - 01:53:18 -0700)

Booted from partition 2
DRAM:  Validate Shmoo parameters stored in flash ..... OK
 
ICX7150-24 Copper (Non-POE), PVT1 
SYS CPLD VER: 0x4 Released Ver: 0xa 

Crashkernel Disabled
device 0 offset 0xbfe00, size 0x200
device 0 offset 0x0, size 0xc0000
Enter 'b' to stop at boot monitor:  0 
ICX7150-Boot>factory set-default
Execution of "factory set-default" will remove all user data like config, keys etc.

Do you want to continue? (Y/N) Y

Command executed successfully
ICX7150-Boot>setenv ipaddr
ICX7150-Boot>saveenv
ICX7150-Boot>reset              
resetting ...

今度はそのままOSが立ち上がってくるのを見守ります。
これで初期化されたICX7150になります。

初期設定

以下は参考程度にどういった設定が出来るのかを書いていきます。
そのほか、必要な設定を探す場合はCommScope社(Ruckusの親会社)のドキュメントから Search Results - “labelkey=icx7150” あたりを探せば良いでしょう。

なお、Ciscoライクな基本コマンドである enable とか configure terminal とか write memory については説明略。

DHCP Clientの無効化と管理ポートのアドレス設定

interface management 1 というのが管理用ポート。シリアルポートの隣にあります。
とはいえ、どうしてもOut-of-Bandな管理ポートが必要な場合以外は管理用VLANにアドレスを振ってポートを節約する方が良いと思います。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
ICX7150-24 Router>enable
No password has been assigned yet...
ICX7150-24 Router#configure terminal 
ICX7150-24 Router(config)#ip dhcp-client disable
ICX7150-24 Router(config)#interface management 1
ICX7150-24 Router(config-if-mgmt-1)#ip address 192.168.122.7 255.255.255.0 
ICX7150-24 Router#write memory 

 There is no startup config file, unable to save legacy config 

Flash Memory Write (8192 bytes per dot) 
.
Write startup-config done.
Copy Done.
ICX7150-24 Router#

ファームウェアの更新

初期化時に使っていたTFTPサーバーをそのまま流用して、設置したファームウェアをインストールできます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
ICX7150-24 Router#copy tftp flash 192.168.122.26 ICX7xxx/SPR08095rufi.bin primary   
ICX7150-24 Router#Load to buffer (8192 bytes per dot) 
..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Processing the bundle image...
Flashing application image to Primary partition...

SYNCING IMAGE TO FLASH. DO NOT SWITCH OVER OR POWER DOWN THE UNIT(65536 bytes per dot)...
................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Flashing bootrom image...

SYNCING IMAGE TO FLASH. DO NOT SWITCH OVER OR POWER DOWN THE UNIT(65536 bytes per dot)...
............
Post processing bundle image...
Bundle image processed successfully

SSHの有効化

SSHの有効化には crypto key generate してから no ip ssh disable が必要。Cisco同様ちょっと面倒。
ログインユーザーの追加と aaa authentication でローカル認証の設定を追加しておきます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
ひとまずSSHを使えるようにするのと、管理面をちょこちょこ調整。

ICX7150-24 Router>enable 
No password has been assigned yet...
ICX7150-24 Router#configure terminal
ICX7150-24 Router(config)#crypto key zeroize 

RSA Key pair not found
ICX7150-24 Router(config)#crypto key generate rsa modulus 2048

Creating RSA key pair, please wait...
ICX7150-24 Router(config)#
RSA Key pair is successfully created
ICX7150-24 Router(config)#username niwaniwa password .....
ICX7150-24 Router(config)#enable super-user-password .....
ICX7150-24 Router(config)#aaa authentication login default local
ICX7150-24 Router(config)#no ip ssh disable 
enabling the SSH server

ちなみに、公開鍵を直接設定する方法はどうやら無さそうです。
パスワード認証ではなく公開鍵認証でログインしたい場合は、公開鍵をTFTPサーバーから登録しておく必要があります。

1
2
3
4
5
sw2#copy tftp flash 192.168.122.26 id_ed25519.pub ssh-pub-key-file 
Parameter Validation Successful
....File Download Done
File Write Done
File Download Complete

システム、管理機能の設定

以下の設定をざっと入れます。
特に再起動が必要なJumbo frameの有効化はあらかじめ入れておきたいですね。

  • web-uiとtelnetの無効化
  • jumbo frameの有効化 (再起動が必要。対応しているのはMTU 10200 bytesまで)
  • lldpの有効化
  • ntp clientの設定
  • タイムゾーンをJapan/Tokyoに変更
  • ホスト名をsw2に変更
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
ICX7150-24 Router#configure terminal
ICX7150-24 Router(config)#no telnet server
ICX7150-24 Router(config)#no web-management http
ICX7150-24 Router(config)#jumbo 
Jumbo mode setting requires a reload to take effect!
ICX7150-24 Router(config)#lldp run
ICX7150-24 Router(config)#ntp
ICX7150-24 Router(config-ntp)#disable serve 
ICX7150-24 Router(config-ntp)#server 192.168.122.31
ICX7150-24 Router(config-ntp)#exit
ICX7150-24 Router(config)#clock timezone gmt GMT+09
ICX7150-24 Router(config)#hostname sw2  
sw2(config)#write memory 

10Gポートライセンスの有効化

10Gポートですが、工場出荷状態のデフォルト設定では1G設定になっています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
SSH@sw2(config)#show run interface 
interface management 1
 ip address 192.168.122.7 255.255.255.0
!
interface ethernet 1/3/1
 speed-duplex 1000-full
!
interface ethernet 1/3/2
 speed-duplex 1000-full
!
interface ethernet 1/3/3
 speed-duplex 1000-full
!
interface ethernet 1/3/4
 speed-duplex 1000-full
!

そして、10GbEポートがあるので当然使えるだろうと思うかもしれませんが、ライセンスが必要です。

1
2
3
4
5
6
7
8
SSH@sw2#conf terminal 
Warning: 1 user(s) already in config mode.
SSH@sw2(config)#interface ethernet 1/3/1 to 1/3/4 
SSH@sw2(config-mif-1/3/1-1/3/4)#speed-duplex 10g-full
PoD: No license present for port 1/3/1
PoD: No license present for port 1/3/2
PoD: No license present for port 1/3/3
PoD: No license present for port 1/3/4

結論から言うと license install perpetual 1 4x10gr して interface ethernet 1/3/1 to 1/3/4speed-duplex 10g-full 設定を入れればいいのですが、詳しい説明は https://fohdeesha.com/docs/7xxx.html に任せます。

10Gポートの確認

SFP+を使用する予定なので、光レベルを確認するために optical-monitor 設定が必要です。

1
2
3
4
SSH@sw2#configure terminal 
SSH@sw2(config)#optical-monitor
SSH@sw2(config)#optical-monitor non-ruckus-optic-enable
SSH@sw2(config)#write memory 

これで光レベルが確認できるようになります。

1
2
3
4
5
6
7
8
9
SSH@sw2#show interfaces brief ethernet 1/3/1

Port       Link    State   Dupl Speed Trunk Tag Pvid Pri MAC             Name
1/3/1      Up      Forward Full 10G   None  No  1    0   609c.9ff5.216f                 
SSH@sw2#show optic 1/3/1                    
 Port   Temperature    Voltage       Tx Power      Rx Power    Tx Bias Current
+-----+-------------+-------------+-------------+-------------+---------------+
1/3/1   40.4296 C    3.3198 volts  -001.7489 dBm   -001.6825 dBm     8.096 mA
        Normal          Normal       Normal         Normal         Normal     

管理用VLANへのIPアドレス設定

ケーブルやポートがもったいないのでVLAN1に管理用アドレスを設定します。
managementポートは使う予定はありませんが、万が一のために適当なサブネットのアドレスを設定しておきました。

1
2
3
4
5
6
7
8
SSH@sw2(config)#vlan 1
SSH@sw2(config-vlan-1)#router-interface ve 1
SSH@sw2(config-vlan-1)#interface management 1
SSH@sw2(config-if-mgmt-1)#ip address 192.168.0.7/24
SSH@sw2(config-if-mgmt-1)#interface ve 1
SSH@sw2(config-vif-1)#ip address 192.168.122.10/24
SSH@sw2(config-vif-1)#end
SSH@sw2#write memory

showコマンドを一括表示する

showコマンドで --More-- を表示しないで一度に出力する場合は skip-page-display する。

1
2
3
4
SSH@sw2#page-display 
Enable page display mode
SSH@sw2#skip-page-display 
Disable page display mode

ログアウトするとリセットされるので、永続化したい場合は設定として入れることもできます。
個人的には、不用意に長い出力に見舞われることがあるのでデフォルトはskipしない方が良いかなと思います。

1
2
SSH@sw2#conf terminal 
SSH@sw2(config)#enable skip-page-display^C

VLANの設定

例えば以下のようにVLAN 100のUntaggedポートとTaggedポートを設定する場合

  • VLAN 100
    • ethernet 1/2/1, 1/2/2: untagged
    • ethernet 1/1/1 - 1/1/3, 1/3/1 - 1/3/3: taggeg

設定は以下のようになります。

1
2
3
SSH@sw2(config)#vlan 100 name Sample
SSH@sw2(config-vlan-100)#tagged ethe 1/1/1 to 1/1/3 ethe 1/3/1 to 1/3/3 
SSH@sw2(config-vlan-100)#untagged ethe 1/2/1 to 1/2/2 

vlan 1がデフォルトVLANですが、vlan 100のtaggedポートに割り当てても、vlan1のuntagged portsからは外れません。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
SSH@sw2#show vlan
Total PORT-VLAN entries: 2
Maximum PORT-VLAN entries: 1024

Legend: [Stk=Stack-Id, S=Slot]

PORT-VLAN 1, Name DEFAULT-VLAN, Priority level0, Off
 Untagged Ports: (U1/M1)   1   2   3   4   5   6   7   8   9  10  11  12 
 Untagged Ports: (U1/M1)  13  14  15  16  17  18  19  20  21  22  23  24 

 Untagged Ports: (U1/M3)   1   2   3   4 
   Tagged Ports: None
 Mac-Vlan Ports: None
     Monitoring: Disabled

PORT-VLAN 100, Name WAN, Priority level0, Off
 Untagged Ports: (U1/M2)   1   2 
   Tagged Ports: (U1/M1)   1   2   3 
   Tagged Ports: (U1/M3)   1   2   3 
 Mac-Vlan Ports: None
     Monitoring: Disabled

おしまい

ICX7150-24を導入する前に使っていたのがICX6430-24なのですが、関連する話として過去に ICX6430のファームウェアをアップデートするよ という記事書いています。 ただ、特にそれ以上話題にはしていませんでした。
2013年頃に2台セットで調達して、以来12年間休まず働き続けてくれたいい子でした。

今回のICX7150-24は海外サイトから中古で購入したものなのでどうなるか分かりませんが、長生きして欲しいものです。
Ruckusのファームウェアやドキュメントを眺めていたところ、どうやらRESTCONFも使えるらしいので時間があれば試してみる…つもりではある。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。