次回の記事の予告... 3Tierアーキテクチャについて調査し、Nginxサーバー(Webサーバー)とTomcat(Webアプリケーションサーバー)をインストールし、連携を試みます。
Ⅰ. 概要
仮想マシンプログラムにおける、ホストのみ、NAT、ブリッジの設定について解説します。VMwareでの具体的な設定方法と、それぞれの設定変更による接続方法について説明します。ホストのみモードは、仮想マシン同士でのみ通信が可能で、NATは通常、ホストOSを通じて外部ネットワークとの通信が可能です。ブリッジモードは、ホストOSとは別に外部ネットワークとの通信が可能です。テトリスをインストールし、外部ネットワーク上の他のユーザーとのプレイを試してみましょう。
Ⅱ. ホストのみ、NATとブリッジ
ホストのみとブリッジについて説明する前に、先ほどのNATに関する投稿を参考にすると、より理解が深まると思います。
[SK Telecom SeSAC、ソウル1期] 2. ネットワークの種類、OSI 7層、プロトコル(データリンク層、ネットワーク層、トランスポート層)
まず、VMwareの仮想マシンプログラムでネットワーク設定を変更する方法について説明します。具体的には、 ホストのみ、NAT、ブリッジ変更可能です。

写真に写っているように 仮想ネットワークエディターもしそうであれば、

このような画面が表示される場合、ここから サブネットIP設定を変更することで、以前に話したA、B、CクラスのIPアドレスに設定することも可能です。また、ホストのみ、NATの設定も変更できます。変更するには、画面に表示されている「設定を変更」をクリックし、管理者モードに切り替える必要があります。

このような設定を変更できます。具体的には、IPアドレスを割り当てる設定です。 NAT DHCPサーバーの設定変更したり、 ホスト専用のDHCPサーバーの設定ネットワーク設定を変更することも可能です。Host-onlyモードは、VMwareの仮想マシン上で、ゲストOS同士のみが通信できる設定です。一般的には、NAT設定がされており、ホストOSを通じて外部との通信が可能です。もちろん、ホストOSとの接続も可能です。まずは、Host-onlyモードを試してみましょう。

まず、ホスト専用ネットワークのIPアドレス設定を変更し、確認が取れた後(特に変更する必要はありません)。

次に、仮想マシンのゲストOSで、右クリックから「設定」を選択してください。

まず、ネットワークアダプターを「ホスト専用」に変更し、「OK」をクリックした後、仮想マシンを開始してください。

仮想マシンに接続し、「ifconfig」コマンドでIPアドレスを確認すると、以前に見た「ホスト専用」ネットワークに割り当てられたIPアドレスが表示されます。

ご自身のオペレーティングシステムのIPアドレスを確認すると、上記のような形式で表示されます。

ホスト専用のゲストOSで、ホストOSのIPアドレスとの接続状況を確認するためにpingを送信したところ、接続できないという結果が出ました。

ホストのみの環境では、ゲストOSとホストOS間の通信ができないことは分かっていますが、もし、2つのゲストOSが存在する場合、pingを送信するとどうなるでしょうか?

このように、pingが正常に通信できることがわかります。つまり、ホスト専用環境では、ゲストOS同士の通信は可能ですが、ホストOSとの通信はできません。

一方、NAT (ネットワークアドレス変換) を使用してゲストOSに置き換えた後、以下の手順で同じホストOSのIPアドレスに対してpingを送信すると、

このように、パケットが正常に送受信される様子を確認できます。
上記でVMwareのVirtual Network Editorにアクセスすると、DHCPサーバーの設定やIPアドレスの固定割り当てなど、設定を変更できる。仮想マシンのゲストOSであるLinuxでは、`nmtui`コマンドを使用して設定を変更できる。このコマンドを入力すると、以下のような画面が表示される。



このように順番に設定を行うことで、MACアドレスやIPアドレスだけでなく、DNSサーバーのアドレスも変更することができます。

ブリッジの仕組みについて説明する前に、この写真をご覧ください。この写真から、ホスト専用モードとNAT(ネットワークアドレス変換)の両方の仕組みを理解することができます。ブリッジは、ホストOSのハードウェアを使用しますが、別途LANカードを持ち、ルーターからIPアドレスを割り当てられ、ホストOSを経由せずに直接外部と通信できる、という仕組みです。
※ ご理解のため、仮想マシンのゲストOSが別途のLANカードを持っていると仮定してください。

今回も、設定画面でブリッジモードに切り替えて、仮想マシンを起動してみると、

このように、ホストOSと同様のネットワークIPアドレスが割り当てられていることが確認できます。次に、ブリッジに変更したゲストOSで、以下のテトリスを試してみましょう!
※ もし、上記の画像とは異なる場合に、IPアドレスが自動的に割り当てられない場合 `sudo dhclient -v` それでは、コマンドを実行してみましょう。
Ⅲ. テトリス
Linux (Ubuntu) で楽しめるテトリスを紹介します。Linux やネットワークを学習する際に、非常に難しい部分や、コマンドを覚えるのが難しいと感じた時に、一時的な休憩としてプレイすると、とても楽しいでしょう。

上記のウェブサイトにアクセスし、途中下車することで 「最新版」 最新版のテトリスソースをダウンロードできます。
バージョン 0.59.1 · vicgeralds/vitetris
このソフトウェアはGitと連携しており、バージョン0.59.1のTetrisソースを入手できます。zip形式とtar.gz形式のファイルが表示されます。Windowsをお使いの場合は、これらのファイルを直接ダウンロードしてください。 「WinSCP」そのようなプログラムを通じて、仮想マシンのLinuxオペレーティングシステムにファイルを送信することができます。 「wget」 コマンドを使って、住所のリンクをコピーし、Linuxから直接ダウンロードする方法があります。
wget https://github.com/vicgeralds/vitetris/archive/refs/tags/v0.59.1.tar.gz一般的に、Linuxは tar.gz 拡張子を使ってファイルを圧縮または解凍するため、「Source code (tar.gz)」の右側にある「リンクアドレスのコピー」をクリックすると、ダウンロードできるアドレスを取得できます。上記のコマンドを、ファイルをダウンロードしたいディレクトリ内で実行すると、すぐにダウンロードできます。

このリンクのURLをコピーして、上記のコマンドに入力すれば、ダウンロードが完了します。その後、「tar」コマンドで解凍すれば、すぐにファイルが利用できるようになります。

※ ここで、優れたパッケージの一つとして、LinuxはWindowsのようにディレクトリ構造が明確に表示されないため、「ls」コマンドを使用しても見やすいとは言えない。しかし、 「木」パッケージを「apt install tree」でインストールし、この方法で利用すると、ディレクトリをツリー形式で表示できるため、非常に見やすいです。
最後に、必要なパッケージをもう一つインストールします。今回ダウンロードしたファイルは、単なるソースコードであるため、コンパイルして実行するためのライブラリが必要です。例えば、韓国語のファイルを実行するには、韓国語のプログラムがインストールされている必要があるのと同様です。

そのため、こうなりました。 `apt install build-essential`インストールが完了したら、これで準備は完全に整いました。インストールと圧縮を解除したディレクトリにアクセスすると

このような多くのファイルがある中で、設定ファイルが表示されるはずです。 設定 このファイルを実行することで、テトリスのソースコードを、現在のシステムに合わせて調整するための設定スクリプトを実行します。

もし実行される場合 作る「make」と入力すると、以下のような形で自動的に設定が調整され、指示された内容を実行します。

さて、これからは実際にテトリスゲームを始めることだけが残りました。

この写真を見ると、テトリスゲームを始めるには "./tetris"この文字列を入力すると実行されるらしい。実際に試してみると、このような結果が表示されます!

今後は、ただゲームを楽しむだけでいい。もし、同じネットワークで隣にいる友達と一緒にプレイしたい場合は…
"./tetris listen ポート番号"「を入力して実行すると、」

これにより、9999番ポートでサーバーが起動し、対戦相手を待つ状態になります。

このように、「LISTEN」状態でのサービスが開始されている様子を確認できます。では、相手はどのようにアクセスすれば良いでしょうか?

このように "./tetris connect IPアドレス:ポート番号"「を入力すると、接続が確立され、「PLAYER2」と表示されるのを確認できます。これでゲームを始めることができます。
※ ネットワークを変更し、Bridgeを通じて外部との通信が可能になった後、お好みの方法で利用することもできます。😊
おまけ
今回は、先回の授業で取り扱ったVMwareのネットワーク変更に関する内容と、面白かったTetrisについてもまとめてみました。これまでの学習内容を基に約2日間かけてまとめたため、いくつか分かりにくい部分も出てきて、確認しながら進めています…🥲 今後、3層構成までについては、しっかりと整理してアップロードできるように努めます。もし可能であれば、Dockerについても試してみようと考えています。
ログイン