【ハンズオン】ホームネットワークをOpenStackで構築する!

初めに

 皆さまздравствуйте!福岡デザイン&テクノロジー専門学校の坂島悠太です。
前回はオンプレミスでクラウド基盤を構築してしまおうというハンズオンを行いました!
前回の記事↓
https://pando.life/tech-c-fukuoka/article/122860

PackStackでVBox上にOpenStackを構築!【ハンズオンつくってみた】

坂島 悠太
福岡デザイン&テクノロジー専門学校

今回はそのOpenStackで作ったクラウド基盤を使ってホームネットワークっぽいネットワークを再現してしまおうというハンズオンをやります。

前置き

 前回に引き続き、これからの手順でホスト、VM、インスタンスという3つの言葉が出てきます。
今回もそれぞれこのような意味合いで使います。
ホストVBOXが入っているOS(windows11)
VMVBoxを使って構築したマシン
インスタンスOpenStack上で作成したコンテナ
複雑ですね~

目次

1.今から作るものの概要
2.ネットワークの作成
3.ルーターの作成
4.ネットワークの確認
5.インスタンスの作成
6.インスタンスのコンソールへ接続
7.接続実験

今から作るものの概要

  下図にあるような、皆様の自宅にもきっとあるような構成のホームネットワークをOpenStack上で再現してみます。
TestRouterがSNAT(SourseNAT)の役割をし、publicネットワークとTestPrivateネットワークの橋渡しをします。
TestPrivateネットワークには2台のインスタンスが参加していて、互いにpingによるICMPでの通信が可能です。インターネットにも繋がります。

ネットワークの作成

 初めにネットワークを作成しましょう!前回構築した下図のようなOpenStackのダッシュボードの画面を開いて下さい。
左のメニュー>ネットワーク>ネットワークを選択しネットワーク設定画面を開きます。
次にネットワーク作成ボタンを押し、ネットワークの作成画面を開きます。
ネットワーク名を入力し、管理状態有効とサブネットの作成をチェックしてください。
そうしたら次へを押して、サブネットの設定を開きます。
サブネット名を入力し、ネットワークアドレスとゲートウェイIPは図の通り入力してください。そうしたら、もう一度次へを押し、サブネットの詳細設定を開きます。
ここでは、DHCPが有効になっているかどうか確認出来してください。確認できたら作成を押してください。 

ルーターの作成

 次に、ルーターを作成します。ネットワーク>ルーターを選択すると、下図のような画面が開きます
右上のルーターの作成をクリックして、ルーター作成設定画面を開きます。
名前を入力し、外部ネットワークにpublicを指定します。作りあがったら、作成ボタンを押します。
次に、ルーターにプライベートネットワークのインターフェースをアタッチします。
今作ったルーターの名前をクリックして、インターフェースというタブを開きます。

インターフェースの作成ボタンを押して、インターフェースの追加という画面を開きます。
サブネットには、先ほど作成したネットワーク(TestPrivate)を選択しましょう。選択出来たら送信を押します。
 
ネットワークの確認
 このあたりでいったん作成中のネットワークの状態を確認しておきます。
ットワーク>ネットワークトポロジーを選択してください。
このようなネットワークが出来上がっていると思います。それでは、インスタンスを追加していきましょう。

インスタンスの作成

 インスタンスの作成のため、コンピュート>インスタンスを選択してください
インスタンスの起動ボタンを押して、インスタンスの起動画面を開きましょう。
インスタンスの起動画面の詳細タブにはインスタンス名、説明、インスタンス数をきめましょう。​​​​インスタンス数を2にすることで、一気に2つのインスタンスを作成することもできます。
決めたら、次へを押してソース設定を開きます。
ブートソースをイメージ、ボリュームサイズを20GB に設定し、cirrosというイメージが利用可能の欄に表示されるので、右の上矢印(↑)を押してイメージを割り当てます。割り当て済みという欄にcirrosが表示されれば成功です。そうしたら、次へを押してフレーバーの設定画面を開きます。
今回は2台インスタンスを作成するので、スペックが低すぎないくらいの、m1.smallというフレーバーを選択しましょう。次へを押してネットワークの設定画面を開きます。
利用可能の中から、先ほど作ったネットワークのほう(TestPrivate)を選択します。そうしたら、インスタンスの起動を押します。
同じ手順で2つ目も作成しましょう。名前はTestInstance2にしました。
これでネットワークが完成しました。試しにネットワークトポロジーを開くと、
このようになっていると思います。ネットワーク全体を図にするとこんな感じです 

コンソールへ接続

 そうしたら、インスタンスの詳細画面からコンソール画面を開きます。
通常であればここでNoVNCを使ったコンソールが表示されるのですが、NATネットワークでVMを作ったので、ポートフォワーディングの設定画面を開き、6080をポートフォワーディングします。
入力完了したらOKを押して、ブラウザに戻ります。そしてコンソールのみを表示するというリンクを新しいタブで開きましょう。このままでは読み込まれないので、アドレスバーをこのように編集しましょう。
から

これでEnterを押せばインスタンスのコンソ ールにアクセスできます。
もしここでsomething went wrongと表示され、コンソールにアクセスできなかった場合は、一旦インスタンス一覧まで戻り、再度同じ手順でコンソールを開き直してみてください。コンソールへのログインは、コンソールを開いたときに表示される情報を使ってできます。 

接続実験

ネットワークがきちんと構築できているのか、pingを送信したりして、実験をしてみましょう。まず、片方のインスタンスにログインして、もう片方にtracerouteとpingを使って疎通確認をします。
今度は、インターネット上のサーバーにpingをしてみましょう。その前に、先ほどのルーターがパケットをきちんと中継しているかどうか確かめるために、OpenStackが動いているVMでtcpdumpを引数無しで立ち上げます。
そうしてインスタンスからインターネットサーバーのアドレス(1.1.1.1)にpingを送ることでパケットがルーターを通って来ているか確かめることができます。早速pingを1.1.1.1に送ってみましょう。
疎通が確認できましたね先ほど引数無しで起動したtcpdumpの方には
このように172.24.4.181からone.one.one.one(1.1.1.1)に向けてパケットが流れていることがわかります。ここで172.24.4.181というのは先程作ったルーターのpublicネットワーク側のインターフェースのIPアドレスなので、そのルーターを通ってきたことがわかりますね。これでネットワークが無事でき上っていることが確認できました!