0371.Blog

「体験しながら学ぶネットワーク技術入門」をやってみた

2023-06-20

こんにちは、0371です。
今回は、技術本の学習として、「体験しながら学ぶ ネットワーク技術入門」で学んだことをまとめようと思います。

本について

脱ネットワーク初心者ということで、この本を購入してみました。
体験しながら学ぶ ネットワーク技術入門 Kindle版
(Amazonアソシエイト・プログラムに参加したURLを使用しています)

第一章 ツール編

今回は、以下の三つのツールを使用して進めていく構成です。

  • WSL2 (自分の場合は、実機のUbuntuなので不要)
  • Docker
  • tinet

WSL2は「ハイパーバイザー型の仮想化技術を使用した、Windows OSの中でLinux OSを動かすことができるツール」です。
WSL2に関しては、結構その辺の企業でも浸透してきてると思います。

Dockerは「オープンソースのコンテナ仮想化ツール」です。
コンテナという「アプリケーションの実行環境」を作成して、その中でネットワークのあれこれを学習していきます。

tinetは「GitHub上で公開されているDockerを利用した検証環境構築ツール」です。
こちらは、オープンソースということで、日本人の二人の方が開発をされているそうです。
YAMLファイルで設定値を管理しているようなので、設定ファイルを読み込ませるだけで迅速に検証環境を作成できます。
ネット上のつよつよエンジニアの方が作成した設定ファイルもあるようなので、参考にするのも良いと思います。  

三つの中で、tinetに関してはどういうものか知りませんでした。

ツールのインストール

コマンドを置いておきます。

multipass launch 20.04 --cpus 2 --name UBUNTU --mount /Users/<UserName>/tinet:/mnt/c/tinet
multipass shell UBUNTU

sudo passwd root
su

bash /mnt/c/tinet/setup_mac.sh
bash /mnt/c/tinet/check_mac.sh

M2 Macでの構築では、tinetのインストールがうまくいかなかったので、下記のコードで解決しました。

参考

手を動かして学ぶネットワーク実験環境入門

# 既存のバイナリファイルの削除
rm /usr/bin/tinet

# GitHubから直接ビルド
git clone https://github.com/tinynetwork/tinet tinet && cd $_
docker run --rm -i -t -v $PWD:/v -w /v golang:1.17 go build
mv tinet /usr/bin

# ARM版のバイナリになっていることを確認
file /usr/bin/tinet

# バージョン確認して再度チェック
tinet --version
cd ..

bash /mnt/c/tinet/check_mac.sh

検証環境構築

構築時のコードを下記に記します。

tinet up -c /mnt/c/tinet/spec_01.yaml | sh -x
tinet conf -c /mnt/c/tinet/spec_01.yaml | sh -x

tinet conf -c /mnt/c/tinet/spec_01.yaml | sh -x

すまん。まだここまでです。
記事の更新をお楽しみに。