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ができるようにまでです。
今回目指す構成はこれです。
Contents
設定方法
Virtualboxのインストール
公式サイトからVirtualBoxをダウンロードします。
ダウンロードできたらウィザードに沿ってインストールします。
私の環境は、以下のバージョンです。
バージョン 7.0.20 r163906
注意点
コントロールパネル > プログラム > Windows機能の有効化または無効化を開いて、仮想マシンプラットフォームを無効化しておきます。(要再起動)
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版 ダウンロードをクリックします。
.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がある場合は、上記の構成図を参考に内部アダプターの設定をしてみてください。
Virtual boxのネットワークアダプターの種類と説明
こちらで説明を載せておりますので、興味のある方はご参考までに。
Oracle VM VirtualBox ネットワークアダプターの用語 | ランスルネット (runsurunet.com)
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
ログインに成功すると以下の画面になります。
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
“Windows 11 Home環境 Virtual BoxでSONiC Community版でBGP Unnumberedをしてみた Part1” に対して2件のコメントがあります。