技術コラム

最新技術動向
NVIDIA

Cumulus を使ってみよう!

Cumulus を使ってみよう!

Cumulusって何?

CumulusはLinuxベースのスイッチ用OSになります。Cumulus Linuxは、Cumulus Networks社が提供しているホワイトボックススイッチ用の商用Linuxです。スイッチOSを持たない筐体いわゆるホワイトボックススイッチへCumulus Linuxをインストールして、その筐体をネットワークスイッチとして動作させることができます。

ホワイトボックススイッチって何?

ホワイトボックススイッチというのは、内部構造や動作原理、仕様などが公開され、商用あるいは、オープンソースなど非商用のスイッチOSを導入可能なスイッチの総称であり、ホワイトボックススイッチを購入したユーザは、そのハードウェアをサポートしているネットワークOS(本稿ではCumulus Linux)を入手してインストールすることによりネットワークスイッチとしてホワイトボックススイッチを活用できます。

なんでホワイトボックススイッチ?

なんでわざわざ空っぽの箱を買って、それにネットワークOSをインストールしてネットワークスイッチを作るの?って実は、私は思ってました。ちょっと特殊な構成なんかを組みたいとき、各ベンダーのスイッチでは、あれはできるけど、これはサポートしていないとか?制限がかかったりすることがあります。ホワイトボックススイッチを使うことによって、Linuxの扱いに慣れた管理者であれば、馴染みのあるコマンドを駆使することのよってLinuxのサーバを扱うようにネットワークスイッチを一元的に運用することができ、追加でルーティングや監視機能などのソフトウェアにて各種の機能を追加できるという点で、サポート面をカバーできるのであれば、おいしいところを選択できるという自由度がウケて、最近注目されております。

 

1 Cumulusのインストール

弊社が取り扱っているMellanoxでは、「MSN2700-CS2FO」など、型番の最後が ‘O’ で終わる OS無のホワイトボックスと、「MSN2700-CS2FC」といった型番の最後が、’C’で終わる ホワイトボックス+Cumulus OSライセンス付きと いうラインナップがあります。Cumulusを最初から使うことを念頭に置いてあるのであれば、ホワイトボックススイッチでの障害発生時にありがちなハードウェアとスイッチOSの不具合切り分けを不要にする、Cumulus OSライセンス付きのモデルを選択することをお薦めします。

 

1.1 Cumulusのダウンロード

Cumulus OSはCumulusのサイトからダウンロードできます。
※MellanoxサイトからたどってもCumulusサイトへ導かれます。

ご用意したホワイトボックススイッチのCPUのタイプに合致したバージョンをダウンロードしてください。
https://cumulusnetworks.com/products/cumulus-linux/

1.2 Cumulusのインストール

インストール方法は、Webサーバから直接ホワイトボックススイッチへダウンロードする方法もありますが、本稿では最も楽だと思われる、自分のPCへダウンロードして、それをホワイトボックススイッチへ転送してインストールを実行する方法をご紹介いたします。

※自PCからホワイトボックススイッチへファイルを送るのに、SCPを使いたいのでLAN接続が可能な環境にスイッチを接続してください(DHCPがあれば尚よし!)

(1) LAN環境にホワイトボックススイッチを接続して、シリアル接続を行い、本体を起動する。

シリアル接続設定
キャラクタ :8bit
ストップビット :1bit
パリティ :なし
フロー制御 :なし
ボー・レート :115200bps

(2) Onie(ブートローダ)が起動したら、InstallOSを選択

(3)ディスカバリを停止する

DHCP でIPアドレスを取得しようとします。DHCP で IPアドレス取得できたら、以下のコマンドでディスカバリを停止する。

#onie-discovery-stop

DHCP環境が無い場合、以下のコマンドにてONIE環境へIPアドレスを設定できます。

#ip address add x.x.x.x/24 dev eht0

(4)/tmp配下にWinSCPなどを使用して、ダウンロードしたCumulusOSバイナリを保存する。

※IPアドレスは、“ifconfig” コマンドにて確認できます。
ユーザ名は、“root” パスワードなし

(5)Onieインストールコマンドにてインストールを実行します。

#onie-nos-install  /tmp/ cumulus-linux-3.7.11-mlx-amd64.bin

(6)インストールが終了すると、ログインプロンプト画面になります。

Cumulus Login:

 

2 ライセンスの導入

Cumulusはライセンスを導入しないと、管理ポート以外の通信ポート(フロントパネル)が有効になりません。

2.1 Cumulusへのログイン

ログイン
初期設定では、以下でログインができます。
UserID :cumulus
Password :CumulusLinux!

 

2.2 Rootアカウントの設定変更

(1) rootアカウントの設定変更

ほとんどの作業は、sudo権限での入力を求められます。
※毎回コマンドの頭にsudoをつけるのは、とても煩わしいので・・・私は以下の方法でrootでの作業を可能にしちゃいました。

#sudo passwd    コマンドでrootアカウントのパスワードを設定
cumulus@cumulus:~$ sudo passwd root
[sudo] password for cumulus:CumulusLinux!

Enter new UNIX password:apresia  #rootアカウント用の新規パスワードを入力

Retype new UNIX password:apresia  #rootアカウント用の新規パスワードを再入力

passwd: password updated successfully
cumulus@cumulus:~$

(2) rootアカウントでのsshログインを許可します。

/etc/ssh/sshd_configのPermitRootLoginの設定をwithout-passwordからyesに変更
cumulus@cumulus:~$ sudo vi /etc/ssh/sshd_config
#Authentication:

PermitRootLogin yes

#without-password

(3) sshサービスをリスタートします。

cumulus@cumulus:~$ sudo systemctl reload ssh.service

 

2.3 ライセンスの導入

ライセンスを導入する前に以下のコマンドで有効なインターフェースを確認してください。

#ip link show を実行してみてください。
現段階では管理ポートとLoopBackしか表示されません。では、ライセンスを導入しましょう!

#cl -license -i   ライセンスの入力を求められるので
Licenseを入力(コピペじゃないととても長い・・・・)して、CTL +d

#cl-license にて確認
xxxxx@krmt.net|oFq5MCACDiFN94OLRN1dKh1BsUJeAg4Ulbl/ZsTNohZrl3cbSQ
ライセンスが導入されました!

#reboot
もしくは、以下のコマンドでスイッチサービスをリスタートします。
#sudo systemctl restart switchd.service

これで、ホワイトボックススイッチのフロントパネルが使用可能になりました。
前述の“ip link show”コマンドを実行してみてください。
通信ポート(フロントパネル)すべてが表示されるはずです。
※表示は長いので割愛します(笑)

 

3 初期設定

ライセンスが導入できるとフロントパネルの通信ポートが使用可能になり、スイッチとしての各種の設定ができるようになります。それでは、各種設定をご説明します。
基本的なネットワーク設定は、/etc/network/interface ファイルを編集することになりますが、Cumulusには、NCLU(Network Command Line Utility)というツールにより、直接ファイルを編集しなくても設定ができる機能があります。
しかしながら私は、NCLUコマンドを使っても、基本設定ファイルとなる /etc/network/interfaces ファイルを必ず確認していたので、そのうち結局直接ファイルを編集してましたけど・・・・・

3.1 管理ポート設定

フロントパネルも含む、通信ポート(インターフェース)の設定は、以下のファイルを編集します。
※NCLUコマンドを使用した場合でも、このファイルを編集しています。
#/etc/network/interfaces
#vi etc/network/interfaces
auto eth0
iface eth0
address 192.168.10.xx/24
gateway 192.168.10.1

設定を反映させる
#ifreload -a
問題なければ何も帰ってこないけど、記述ミス等があるとErrorが出力されるので
その部分を修正して、再度同じコマンドを実行する。

NCLUでの設定
#net add interface eth0 ip address 192.168.10.xx/24
#net pending
#net commit

3.2 時刻設定

標準では、タイムゾーンがUTCになっているので変更する。

(1)ネームサービスを設定

#/etc/resolve.conf を編集する
nameserver 192.168.xx.xx
nameserver 2xx.xx.xx.xx

NCLUの場合は、
net add dns nameserver ipv4 xx.xx.xx.xx

(2)NTPの設定

ntp.nict.jpから時刻同期する場合 NTPの設定は以下のファイルを編集します。
/etc/ntp.conf  を編集
server 4.ntp.nict.jp iburst を追記

NCLUでは
#net add time ntp server 4.ntp.nict.jp iburst
#net pending  変更の呼び出し
#net commit  変更の反映

(3)手動設定

手動の場合は、
#net add time zone Asia/Tokyo

 

3.3 ホスト名の設定

Hostnameコマンドもしくは、/etc/hostnameファイルを編集する
#hostname xxxx01 もしくは net add hostname xxxx01
直接ファイルを編集する場合は以下のファイルへ記載する。
#vi /etc/hostname

 

4 通信用(フロントパネル)の活性化(設定)

通信ポート(フロントパネル)は、ライセンスを導入したことで設定可能となってますが、そのままでは活性化しておりません。活性化するためには、/etc/network/ionterfacesファイルに設定をすることが
必要となります。設定は、直接ファイルを編集する方法と、NCLUにてできます。私の場合、確認をするのが面倒なのであまりNCLUコマンドは使いませんが、使い慣れれば非常に便利なツールです。
詳細は本稿では割愛いたしますが、HELPや設定例も豊富にありますので活用してみてください。

#net help
#net example

4.1 フロントポートの活性化

通信ポート(フロントポート)は、管理ポートのethではなく、swpで表します。
MellanoxのSN2010スイッチを例にとると、
管理ポート rth0
通信ポート 25Gbps swp1~18
通信ポート 100Gbps swp19~22
それぞれの設定しないと、各ポートは有効になりません。設定は、直接 /etc/network/interfaceを編集しても、NCLUコマンドでもできます。

(1)有効なポートの確認

#net show interface
現段階では、管理ポートとLoopBackしか表示されません。

(2) 設定

1-3番のポートを25GbpsでMTUサイズを1500に設定
#vi /etc/network/interfacesに以下を記載(swp1~3をそれぞれ記載します)
auto swp1
iface swp1
link-speed 25000
mtu 1500

NCLUの場合
#net add int swp1-3 link speed 25000
#net add int swp1-3 mtu 1500
#net pending
#net commit

(3) 確認

#cat /etc/network/interfaces
※(2)の画面と同じ

#net show interface

この要領で、フロントポート全数を設定すれば、通信用のポートは使用可能となります。


では、次回はいよいよL2スイッチとして使ってみましょう!  次回につづく

 

本ページに記載されている会社名、会社ロゴ、商品名は、各社の商標または登録商標です。本ページに記載されているシステム名、製品名などには必ずしも商標表示(TM、®)を付記していません。