見出し画像

『体験しながら学ぶネットワーク技術入門』を読む

本日の読書範囲

はじめに
1章 検証環境を作ろう

はじめに

 本書の目的は、実際にネットワーク検証環境構築しながら、構築現場や運用現場でも通用する実践的な知識習得していくための本である。
 今後、本格的に到来するAI時代において、ネットワーク初心者にとって特に得られにくいであろう「体験」と「経験」を補うことを目指している。
 
 著者の目的は読者を「底なしの検証沼にハマらせる」ことである。なんともありがた迷惑な話である。でもハマったら薄い知識が現場で通用する分厚い知識に昇華するらしい。とりあえず著者を信じて清水寺から飛び降りる覚悟で身を投じようと思う。

本書の対象読者

以下のいずれか
■ 脱ネットワーク初心者を目指す方
 ネットワークを少し勉強してなんとなくわかっているつもりだけど、なぜかすぐ忘れる人(私(読者)である)
■ 資格は取得したものの現場知識に自信がない方
 
資格取得は、知識の裾野を広げるという点で抜群の力を発揮するが、必ずしもその知識が現場で即通用するわけではない。

資格取得はゴールではなくスタートです。

iv頁

■ トラブルへの対応力を上げたいネットワーク運用管理者
 
ネットワークを運用管理するようになったものの、流れるログを見て、言われたことをただこなすことに飽きてきた人。

検証環境の設計思想

 本書の検証環境は、仮想化やコンテナ化などの技術革新を活用して、「速く」「軽く」「安く」という、3つの設計思想に基づいて設計されている。

■ 速く
 仮想化
コンテナ化などの技術をフル活用してサクッと構築できるように設計
■ 軽く
 ネットワークの基礎
を実践的に学習できる、必要最低限の構成・設定にすることで軽快に動作するように設計
■ 安く
 
必要なものは一般的なWindows PC1台のみで課金されることもない設計

本書を楽しむために必要な知識

基本的なLinuxコマンドの意味についてある程度の理解は必要。ただし、意味を調べながら読んでもよい。ネットワークやプロトコルの基礎知識については取り扱っていないが、本書に沿えば構築は可能。ただし、初歩的な知識を身に着けておいた方が得られる醍醐味は変わる。

本書の構成

1章と6章を除いた章が共通した枠組みを採用している。
知識の下地をつくる机上項と下地を用いて体験する実践項の2つで構成されている。
■ 検証環境を知ろう
 機器に関する設計を認識する。
■ ネットワークプロトコルを知ろう
 代表的なプロトコルについて解説している。現場で使用することが多いパケットキャプチャと解析の経験を得られる。
■ ネットワーク技術を知ろう
 代表的なネットワーク技術について解説している。ネットワーク技術やネットワーク機器を解説している。ネットワーク機器を設定し、挙動を確認する。

謝辞

謝辞は本来の書籍の内容とは全く関係のない項目であるが、私はいつも読むようにしている。著者の人間性や背景が垣間見える楽しみがある。家族に対してとてもユーモラスに書かれているが、SNS時代の昨今不特定多数の著者にプリンセスがお風呂嫌いを公開するのもいかがなものだろう。著者が父親としての尊厳を失わないことを切に祈るばかりだ…

第1章 検証環境を作ろう

■ インストールするソフトウェア
1.WSL2
2.Docker
3.tinet

■ 使用したPCのスペック
ヤフオクで約1万円で購入したDynabook
東芝 dynabook R73/F Core i3 6100U 2.3GHz/8GB/256GB(SSD)/Multi/13.3W/FWXGA(1366x768)/Win10

■ 仮想化支援機能の確認(有効化)
CTL+ALT+DEL(タスクマネージャー)→「パフォーマンス」タブ

仮想化が有効

仮想化が無効だった場合の対処法
UEFI/BIOSを起動(以下、リンクの方法)して、CPUの詳細設定などから仮想化支援機能を有効化

1.WSL2のインストール

 以前、インストール済みだったので、インストール後の再起動は割愛し、Ubuntuのデフォルトユーザー名とパスワードを入力。

 以前のrootユーザパスワードを変更。ド忘れしていたので3回目で締め出されるが、ロックがかからなかったので再度「sudo」コマンドで再挑戦して成功。

WSLのバージョン確認

 一度、Ubuntuを「exit」コマンドでログアウトしてから「wsl -l -v」を入力。書籍ではこと細かく記載していない場合もあるので、スクショの頭の文字に注意すればよい。「ubuntu」となっているか「PC C:」となっているかで判別が可能。

 上記のサイトからtinetのzipファイルをダウンロードして、解凍したフォルダをCドライブ直下に格納する。

 再度、「wsl」コマンドでubuntuにログインし、「ls」コマンドでCドライブに格納したtinetフォルダの中を確認する。
「C:\tinet」はWSLインスタンスでは「/mnt/c/tinet」と表記されることを覚えておく。

 エラーが出たのでchatGPTに相談してみた。

■試したこと

**/var/log/setup.logの内容を確認
cat /var/log/setup.log
**apt-get update コマンドを実行しているプロセスを特定
ps aux | grep apt-get
**プロセスを終了。PID の部分には実際のプロセスIDを入力
sudo kill -9 PID
**/var/lib/apt/lists/lock ファイルを削除(ロックされたディレクトリのロックを解除)
sudo rm /var/lib/apt/lists/lock
**/var/log/setup.log ファイルの権限を確認
ls -l /var/log/setup.log
**現在のユーザでスクリプトを実行
bash /mnt/c/tinet/setup.sh
**root以外の他のユーザーにも書き込み権限を付与(セキュリティ上の懸念があるため、今回は検証環境の構築を目的としているため環境構築を優先する)
sudo chmod +w /var/log/setup.log
**スクリプトを管理者権限で実行
sudo bash /mnt/c/tinet/setup.sh

ようやくセットアップ完了!

第1章を完了する予定が、14頁のWSLインスタンスの再起動でまたエラーが発生したので、今日はここまでとする。どうやら道のりは長いようだ…

振り返り

エラー構文をコピペしてChatGPTに流せばある程度のエラーの要因と解決方法は提示してくれる。エラーの内容や要因も質問すれば回答してくれる。基礎知識がないと提示された解説をググるかChatGPTに質問するかを繰り返すことになる。6章構成といっても手を動かくして挙動を確認していく以上、1章を1日で終わらせることはないことが分かった。限られた時間でできることを確実に学ぶように心がけたい。

追記(20240221)

 出版元でセットアップに関する不具合に関する参考情報が掲載されていた。以前、WSLはインストール済みのため、一度アンインストールしてから再構築しようと思う。

目次

1章 検証環境を作ろう
1.1 使用するツールを理解しよう
1.1.1WSL2
1.1.2Docker
1.1.3tinet
1.2 ツールをPCにインストールしよう
1.2.1 PCのスペック要件
1.2.2 WSL2のインストール
1.2.3 セットアップスクリプトの実行
1.2.4 チェックスクリプトの実行
1.3 ツールの使い方を理解しよう
1.3.1 WSL2(Windows Subsystem for Linux version 2)の使い方
1.3.2 Dockerの使い方
1.3.3 tinetの使い方
1.4 検証環境を構築しよう
1.4.1 検証環境構築
1.4.2 構成概要
1.4.3 動作確認
1.5 設定ファイルの使い方

2章 レイヤー2プロトコルを知ろう
2.1 検証環境を知ろう
2.2 ネットワークプロトコルを知ろう
2.2.1 イーサネット
2.2.2 ARP(Address Resolution Protocol)
2.3 ネットワーク技術を知ろう
2.3.1 L2スイッチング
2.3.2 VLAN(Virtual LAN)

3章 レイヤー3プロトコルを知ろう
3.1 検証環境を知ろう
3.2 ネットワークプロトコルを知ろう
3.2.1 IP(Internet Protocol)
3.2.2 ICMP(Internet Control Message Protocol)
3.3 ネットワーク技術を知ろう
3.3.1 ルーティング
3.3.2 NAT(Network Address Translation)

4章 レイヤー4プロトコルを知ろう
4.1 検証環境を知ろう
4.2 ネットワークプロトコルを知ろう
4.2.1 UDP(User Datagram Protocol)
4.2.2 TCP(Transmission Control Protocol)
4.3 ネットワーク技術を知ろう
4.3.1 UDPファイアウォール
4.3.2 TCPファイアウォール

5章 レイヤー7プロトコルを知ろう
5.1 検証環境を知ろう
5.2 ネットワークプロトコルを知ろう
5.2.1 HTTP(Hyper Text Transport Protocol)
5.2.2 SSL/TLS(Secure Socket Layer/Transport Layer Security)
5.2.3 DNS(Domain Name System)
5.2.4 DHCP(Dynamic Host Configuration Protocol)
5.3 ネットワーク技術を知ろう
5.3.1 サーバー負荷分散
5.3.2 SSLオフロード

6章 総仕上げ
6.1 プロトコル解説節の総仕上げ
6.2 ネットワーク技術節の総仕上げ


いいなと思ったら応援しよう!