NetPractice 1.0
読み取り中…
検索中…
一致する文字列を見つけられません
NetPractice

img
2025/7/5

Overview

ネットワークの基礎を学ぶ課題。特に TCP/IP Adressing を学ぶ・慣れることを目的としている。 ブラウザ上のシミュレーションを使ってネットワーク環境を構築する課題。 Level 01 ~ 10 まで難易度が別れており、それぞれヒント・エラー情報を元にネットワーク接続できるように、ネットワーク設定を修正していく課題。


学べるトピック

TCP/IPアドレッシング の仕組みを理解する。

  • IPアドレス
  • サブネットマスク
  • ルーティング(経路設定)

Project Links

‍Doxygenで作成されたソースコードドキュメントです。

クラスの連携図やソースコードの説明に関する情報がまとめられています。


課題を始める前に

ネットワーク通信の背景、技術の歴史、前提知識などについては → こちら

知らなかったことや疑問に思ったことについては → こちら

各課題の内容 → こちら

提出とReviewについて

  • 提出物は level1.json ~ level10.jsonです。これは各課題(level1.html ~ level10.html)において、シミュレーションとして正しく動作するネットワーク設定ファイルです。
  • レビュー時はLevel 6 ~ 10の中から3問出題されます。15分以内の時間制限の中で3問クリアしなければなりません。

自分がよくつまづいた点

Level 6

  • Internet -> Router -> Switch -> host のルートで、Router - host 間はIPアドレスの範囲が128 ~ 255で使えるネットワーク。
  • Internet のルート設定で、間違えてxxx.xxx.xxx.0/25としたため(0 ~ 127が有効)、hostまでつながらなかった。

Level 7

  • host A -> Router1 -> Router2 -> host B のルートで、0 ~ 255のIPアドレス範囲でネットワークを構築する。
  • ルーター間は/28にする。
  • host A -> Router1Router2 -> host Bのそれぞれで、ネットワークの範囲が重ならないように設定する。

Level 8

  • インターネットにアクセスできるアドレスの範囲が64個に制限されている。(サブネットマスク/26

失敗事例

  • 0~64以外のIPアドレス(下位8bit)を使っていたことが原因で、インターネットにアクセスできなかった。

Level 9

  • 5つのネットワークを構築する。
  • Router 1 -> Internet : それぞれのネットワークに存在しうるIPアドレスに対して、Router1を経由設定にする。
  • Router 1 -> host A or B : マスク/25 (128)
  • Router 1 <-> Router 2 : マスク/30 (252)
  • Router 2 -> host C : マスク(指定なし) ... 自分は/24にしている。
  • Router 2 -> host D : マスク/18 (192.0)

失敗事例

  • 入力ミス(.がない、アドレスの一部を間違えて消す、ルート設定の見落とし、マスクの設定間違え)
  • たくさん入力・修正するため、間違えやすい。
  • 意外とRouter 2のネットワーク設定が視野に入っていなかったりする。
  • 何かおかしかったら、リセット(余裕があれば)か、一回水を飲んで落ち着いて取り組む。

level 10

  • IPアドレス0~255の範囲で3つのネットワークを構成する。
  • Router1 -> Router2 : IP251~255, マスク252
  • Router1 -> host1 and host2 : 0~127
  • Router2 -> host4 : 128~191 musk/26 (192)
  • Router2 -> host3 : 192~224, musk/25 (224)

失敗事例

  • コピーミスに注意
  • musk/25 or 224の数値を間違えて225と設定していた。

Other

  • The OSI Model - codecademy.com
  • ドキュメントページ

    ‍C++ Moduleのプロジェクト毎にDoxygenを使ったドキュメントをまとめています。

    doxygen用のcssテーマは、Doxygen Awesomeを使用。