Windows 11 Home環境 Virtual BoxでSONiC Community版でBGP Unnumberedをしてみた Part1

今回は、Windows 11 Home環境でSONiC Communityを動作させた経験を共有します。仮想環境を構築するために、VirtualBoxを使い、3台の仮想マシン(VM)を利用しました。これらのVM同士をBGP Unnumberedというプロトコルで接続し、各VMのLoopback IPを相互に広報・受信する仕組みを構築しました。うまく設定はできたものの、かなり苦労しました。そんな構築は試したけどうまくいかない、
SONiCに興味ある方やBGP Unnumberdの設定に興味がある方の参考になれば幸いです。

crossorigin=”anonymous”>

今回はVirtual Boxを使ってSONiCが起動してからホストOSのWindowsPCからsshができるようにまでです。

今回目指す構成はこれです。

設定方法

Virtualboxのインストール

公式サイトからVirtualBoxをダウンロードします。

Oracle VirtualBox

ダウンロードできたらウィザードに沿ってインストールします。

私の環境は、以下のバージョンです。
バージョン 7.0.20 r163906

注意点

コントロールパネル > プログラム > Windows機能の有効化または無効化を開いて、仮想マシンプラットフォームを無効化しておきます。(要再起動)

Warning

This is a warning alert.

VirtualBoxからSONiC VM版を起動させる

ダウンロードしたSONiCのイメージファイルをVirtualboxの仮想ディスクイメージ(.vdi)から起動するように設定します。(VirtualDiskImage)

SONiCのイメージをダウンロードする。


SONiC installation images (sonic-net.github.io)


VSの一番左のリンクをクリックします。sonic-vs.img.gzがダウンロードできるので解凍しておきます。

NHCのダウンロード

SONiCの.img をVirtualBoxで利用するvdiに変換してくれるツールです。64bit UNICODE版 ダウンロードをクリックします。

NHC (fc2.com)

.imgから.vdiに変換

ダウンロードしたNHC.exeを開きます。

SONiCのイメージ.imgを変換します。

デフォルトは、別の仮想ソフトウェアになっているので、VirtualBox用のものを選択しておきます。

色々でてきますが、次へで問題ありません。

.vdiのファイル名を入力して次へをクリックします。ここでは以下の通りのファイル名にしています。

leaf01.vdi

今回は3台のVMを作るので leaf01.vdi leaf02.vdi spine01.vdi としておくといいです。

Virtaulboxを起動

Windowsのアプリから Virtualboxを起動させます。

仮想マシンから新規をクリックします。

エキスパートモードをクリックします。

すでにある仮想ディスク..のフォルダマークをクリックします。

追加をクリックします。

先ほど作成した leaf01.vdi を選択し、ダブルクリックします。そうすると、Not AttachedからAttachedのほうになります。

名前とオペレーティングシステムに戻ってleaf01用の名前フォルダ を選択します。

次へで先に進みます。

先ほど作成したleaf01をクリックして起動させます。

起動してきたらウィンドウ右上のXボタンを押して電源OFFします。あとでネットワークの設定をするためです。

仮想マシンの電源オフを選択してOKをクリックします。

Virtualbox SONiC VMネットワークのネットワークの設定

SONiC VM3台でBGP Unumberedはもちろん、ホストOSのWidnows11のコマンドプロンプトからsshをするようにします。そのためには、VirtualBox内でそれぞれのVMにネットワーク設定をしていきます。

また、ついでにBGP Unnumberedが出来るように設定をします。

ホストオンリーアダプターの設定 ssh用

ホストオンリーアダプターにすると、ホストOS (私のWindowsPC)とゲストOS (SONiC VM)が内部で通信ができます。適切なIPを設定すれば、WindowsPCからSONiC VMにsshができるようになるので、非常にオペレーションがやりやすくなります。

SONiC VMの電源をOFFした状態で設定をクリックします。

アダプター1は、ホストオンリーアダプター にします。

これを必要なVM分設定しておきます。

内部ネットワークの設定

こちらはSONiC VM内でBGP Unnumberedを利用するために使用します。内部ネットワークは、ゲストOS内部で通信するためのもので外には抜けられません。

今回は、spine01 <-> leaf01/02 という組み合わせでどうやって内部ネットワークを設定するのか試行錯誤しました。全部同じネットワークになってしまったらBGP Unnumberedが利用できなからです。

内部ネットワークの名前を同じにすれば、それぞれ同じネットワークにすることができました。

leaf01の場合は、アダプター2のタブにして、

・ネットワークアダプターを有効化にチェックを入れて、割り当て:内部ネットワーク 名前:Ethernet0 としましょう。

複数台のVMがある場合は、上記の構成図を参考に内部アダプターの設定をしてみてください。

SONiC VMにssh用のIPアドレスを設定する

それぞれのIPアドレスは以下の通りに設定します。WindowsPCのIPアドレスは、VirtualBoxのホストオンリーアダプターを選択したときに勝手に192.168.56.1/24になっていましたので特に設定はしないです。それに合わせたセグメントにSONiC VMも設定します。

WindowsPC : 192.168.56.1/24
sonic-spine01 : 192.168.56.3/24
sonic-leaf01 : 192.168.56.4/24
sonic-leaf02 : 192.168.56.5/24

※WindowsPCのIPアドレスを変更する場合は、Windowsの設定> ネットワークとインターネット > イーサネット (Virtual-Box Host-Only Adapter)にあるその他アダプターオプション から編集ボタンをクリックして、インターネットプロトコルバージョン4 (TCP/IPv4)にチェックをいれてプロパティ。そこからIPアドレスを変更できます。

SONiC VMをVirtualBoxのコンソールから起動

起動させたいSONiC VMをダブルクリックします。

起動してきました。初期のログイン情報は以下の通りです。

login-id: admin
パスワード:YourPaSsWoRd

ログインに成功すると以下の画面になります。

Warning

初期パスワードを変更する場合は、Linux同様 passwd コマンドで変更をします。

SONiC VM IPアドレスの設定

sudo configコマンドでssh用に利用するeth0のIPアドレスを設定します。

今回の例のsonic-spine01の場合は、以下の通りに入力します。

sudo config interface ip add eth0 192.168.56.3/24

確認は以下のコマンドで出来ます。

show ip interface | grep eth0

save コマンドで保存します。/etc/sonic/config_db.jsonに保存されます。

sudo config save -y

参考までに今回設定をするSONiC VM一覧のIPアドレスです。

## sonic-spine01
sudo config interface ip add eth0 192.168.56.3/24

## sonic-leaf01
sudo config interface ip add eth0 192.168.56.4/24

## sonic-leaf02
sudo config interface ip add eth0 192.168.56.5/24

WindowsPCからsshをする

コマンドプロンプトを開きます。

スタートを右クリックしてファイル名をしてして実行 をクリックします。

cmd と入力して実行を押します。

コマンドプロンプトが開くので試しにtest-spine01(192.168.56.3)にsshログインをします。

参考までに今回設定をするSONiC VM一覧のIPアドレスです。

ssh admin@192.168.56.3 

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes と入力してパスワードをいれてログインできれば成功です。

終わりに

ここまでで結構苦労しました。普段はネットワークエンジニア的な仕事やLinuxはそこそこ触っているものの、VirtualBoxに慣れていないせいか、結構調べて試行錯誤しました。勘違いしていたのは、仮想ディスク(vdi)から起動させるのではなくてisoイメージから起動させるものだと思っていたことです。全然起動しなくて調べた結果、vdiから起動させるのか、と。あとはsshさせるための設定のホストオンリーアダプターと内部ネットワークのところですかね。まだ完全に理解していないですけど、動作はうまくいっています。

あと、私のWindowsPCがNotePCでそこまでスペックが高くない(息子のを借りている..)ため、VMが重いことでしょうか。。

Windows標準のHyper-Vでもチャレンジしたんですけど、うまくいかず、VirtualBoxにしました。今度はkvmでも試してみたいとは思っています。(多分)

次回

次回は3台のSONiC VM を使ってBGP Unnumberedを設定していきます。そのあと、自動化 ansibleの設定も紹介できればと思っています。

Windows 11 Home環境 Virtual BoxでSONiC Community版でBGP Unnumberedをしてみた Part2 | ランスルネット (runsurunet.com)

参考ページ

先人の方々のページが大変参考になりました。ありがとうございました。

SONiCを少しかじってみた – メモのページ – チラシの裏メモ 3枚目 (hatenadiary.jp)

VirtualBox でホストOSとゲストOS間通信 ( ホストオンリーアダプター ) #Ubuntu – Qiita

Follow me!

Windows 11 Home環境 Virtual BoxでSONiC Community版でBGP Unnumberedをしてみた Part1” に対して1件のコメントがあります。

コメントを残す