0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】FRRのために Apple silicon な Mac で Ubuntu Sever を動かす

Last updated at Posted at 2024-12-12

クイックガイド(Apple Silicon, M1とか向け)

  1. Virtual Box のインストール
  2. Ubuntu のダウンロード
  3. VMの作成
  4. Ubuntu のセットアップ

はじめに

M1 などの Mac で OSPF や BGP をシミュレートしたいなと思った時に、FRR を使うことにしました。

FRR をセットアップするためにはいくつかのVMが必要なので、今回はUbuntuのVMを複数台用意することにします。

ネットワークの名前空間を利用すれば実は複数台なくてもできるのですが、初学者の方には分かりにくいかもしれないので、複数台のVMを利用することにします。

Virtual Box のインストール

今回はわかりやすさを重視し、 Virtual Box を使うことにします。もちろん他のハイパーバイザーでもOKです!

上記のリンクをクリックし、ダウンロードします。
M1~ チップの方は、macOS / Apple Silicon hostsを選びましょう。

image.png

自分の Mac が Apple Silicon かどうかわからないときは、左上のリンゴマークからこのMacについてを選択します。
image.png
チップのところにM1とか書いてあれば Apple Silicon です。
Intel は Intel って書いてるあるはず。

ダウンロードした dmg をダブルクリックして、Virtual Box をインストールします。

Ubuntu Server のダウンロード

LTSの最新版(緑色のボタン)をクリックしてダウンロードします。

Apple Silicon の方は Arm 版をダウンロードしましょう。
https://ubuntu.com/download/server/arm

それ以外の方はほとんどが通常のものになると思います。
https://ubuntu.com/download/server

VM のセットアップ

VM とは

Virtual Box 上では、MacBookなどの実機(ホスト)の上に、仮想的な1つ1つのPC(ゲスト)を作ることができます。
この仮想PCをバーチャルマシン(VM)といいます。

  • ゲストとホストは通常分離されている
    • ゲストで実行した結果や破壊はホストに通常は影響しない
      • 特別な設定を入れれば互いに影響を与えるようにすることもできる
      • ハイパーバイザーの脆弱性で分離が侵害されていることがたまにある
  • ゲストはホストのリソース(メモリやCPU、ストレージなど)を利用する
    • ホストのリソースに余裕がある限り、いくつでもゲストを作ることができる

万が一ゲストを壊しても基本的にはホストには問題がないため、なんの心配もせずいろんなシミュレートをすることができます!

VMの作成

では Virtual Box を開き「新規」ボタンから VM を作成しましょう。
ISOイメージ は先ほどダウンロードした Ubuntu を指定します。

サーバー版のシステムの最低要件は

  • 1GB Memory
  • 5GB free storage space

となっています。今回はシミュレート用で複数作るので、ギリギリを攻めたいところです。
とはいえ不安なので 2048MB, 8GB くらい割り当てておきました。

  • 名前:Ubuntu1 とかわかりやすい名前
  • ISOイメージ:先ほどダウンロードしたISO
  • 自動インストールはスキップ
  • メモリー:2048MB
  • プロセッサー数:1
  • ハードディスク
    • 仮想ハードディスクを作成する
    • サイズ:8GB

必ず仮想ハードディスクを作成する を選択しておきましょう。
名前など一通り入力したら完了して保存します。

ネットワークアダプターの変更と追加

作成したVMを右クリックし、設定を開きます。
ネットワーク設定のアダプター1を開き、ポートフォワーディングをクリックします。
image.png

以下のように設定し、終わったら保存します。

  • プロトコル:TCP
  • ホストIP:127.0.0.1
  • ホストポート:20022
  • ゲストIP:(空欄)
  • ゲストポート:22
    image.png

ホストIPをループバックアドレス(127.0.0.1)にすることで、VMへのアクセスを今使っているホスト(MacBookなど)からのみに制限することができます。
(ホストIPを空欄にしておくと、同じLAN上の他のPCなどからアクセス可能になってしまいます)

次に、アダプター2を開き有効化します。

以下のように内部ネットワークにします。
終わったら保存します。
image.png

Ubuntu のセットアップ

まず起動ですが、起動ボタンの横にある矢印を押し、デタッチモードで起動しましょう。
image.png

起動後は画面に従ってインストールします。初めての方に向けてざっくり書いておくと

  • 起動直後は try or install を選択
  • 言語は English
  • without updating(後でまとめてやります)
  • Layout は 自分のものを(Japaneseとか)
  • それ以外は何もせず Done で

途中、画面のような警告が出ますが、これは既存のデータを破壊するかもしれない、と言うものです。
先ほどの手順で仮想ハードディスクを専用に作っておけば問題ありませんので続行します。
他のデータに全く影響しないのが仮想マシンの利点です :)

image.png

その後、

  • User name
  • Password

が聞かれます。後で使いますので覚えておきます。

インストールが終わったら Reboot に変化するので、それでエンターキーを押します。
その後に cdrom のエラーが出たら再度エンターキーを押しましょう。

SSH で接続

今のコンソール画面のままだと小さすぎて大変なので、なんとかしたいですね。
SSHをインストールします。

sudo apt install ssh

次に、Macなど、手元の端末を開き、以下のようにSSHで接続します。
127.0.0.1 はポートフォワーディングのところで入力したループバックアドレス(自分自身)ですね。

MacBook-Air ~ % ssh <Ubuntuのユーザー名>@127.0.0.1 -p 20022

初回の場合は下記が聞かれますので y を入力してエンターです。

The authenticity of host '[127.0.0.1]:20022 ([127.0.0.1]:20022)' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

次にUbuntuセットアップの際に入力したパスワードを入力してエンターを押します。
するとSSHで接続できました。これの方が断然やりやすい!
デタッチモードで起動していれば、今までのUbuntu の小さい画面は閉じてしまっても構いません。バックグラウンドで継続を選びましょう。

クローン

BGP などのシミュレーションは2台以上で繋いで実施します。つまりもう1台必要です。
手っ取り早くクローン(複製)します。

まず、今の Ubuntu をシャットダウンします。

sudo shutdown now

Virtual BoxのUbuntuのアイコンを右クリックして、クローンをクリックします。

MACアドレスのポリシーは、すべての〜生成を選びます。

image.png

クローンを完了させると、全く同じものができあがります。一回セットアップしておくと、簡単に検証機を増やすことができます。

クローン後、新しい方のVM設定を開き、再びポートフォワーディングの設定を開きます。

すると、ホストポートがクローン元と同じ 20022 になっていると思います。それもコピーされているんですね。
重複するとエラーになるので、30022 とか少し違う値に変えておきましょう。

  • プロトコル:TCP
  • ホストIP:127.0.0.1
  • ホストポート:30022
  • ゲストIP:(空欄)
  • ゲストポート:22

image.png

これはホスト上のアドレス127.0.0.130022ポートで観測した通信を、ゲストの22ポートに転送する、と言う意味です。そのためゲストポートの設定は変更する必要はありません(SSHの接続受けは基本的に22ポートで固定です。)。

終わったらOKを押し閉じて、設定画面もOKを押して保存します。

クローンしたVMにSSH

クローンしたVMをヘッドレスモードで起動してみましょう。
こうすると、バックグラウンドでVMが起動します。

image.png

その後、Macなど、手元の端末を開き、以下のようにSSHで接続します。ポート番号が変わっているのに注意です。

MacBook-Air ~ % ssh <Ubuntuのユーザー名>@127.0.0.1 -p 30022

接続できました!
ただ、クローンなのでホスト名すら一緒です。
紛らわしいときは変更しておきましょう。

sudo vim /etc/hostname
# 名前を変える
# 保存したあと sudo reboot

以上でシミュレート用のUbuntu Serverを複数台用意することができました。
次回はこちらです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?