こんにちは、25卒の梅田芳護です。
6月5日(木)、6月6日(金)の2日間にわたり、配属前に行う入社時研修の一環で25卒社員で「実機によるLAN構築」という研修を受講しました!
初めての経験で迷いながらもチームで協力しながら LAN 構築ができて、とても達成感がありました。
この記事では、研修の振り返りと研修の雰囲気をお届けします!
※本研修以外の新卒研修記事はこちらから確認できます!

研修の目的と内容

  • 研修の目的
     本研修では、ネットワークに関する技術、ハードウェア、ソフトウェアについて学び、Webアプリケーションを
    展開してブラウザ上に表示できるようにします。「手順に沿ってネットワークやWebアプリケーションに関連する
    サーバーの設定ができる」こと、「サーバーの種類について知る・説明できる」ことを目的としています。
  • 研修1日目(座学)
    • ネットワークの基礎知識
    • 通信の仕組み
    • IPアドレス
    • ネットワーク機器
    • サーバー
  • 研修2日目(実機による演習)
    • 演習1. Webサーバーの構築とローカルでの動作確認
    • 演習2. Ciscoスイッチの構築とLAN内の通信
    • 演習3. Ciscoルーターの構築とLAN間の通信
    • 演習4. DNSサーバーの構築と名前を使用したアクセス

研修1日目

研修1日目はネットワークの基礎知識からWebアプリケーションに関連するサーバーについて学びました。ここでは特に、通信の階層(OSI参照モデル)やプロトコル(TCP/IP)について、IPアドレスについて深く学びました。また、IPアドレスに関連した課題があり、「ある割り当てられたIPアドレスをいくつかのサブネットに分割し、それぞれのネットワークを答えよ」という課題をチームで話し合いながら解きました!その時の実際の様子がこちらです。

実機研修1日目の様子

課題について話し合っている様子

 各チーム、IT初心者や経験者が入り混じっている中で、力を合わせて課題に取り組んでいました。私のチームには経験者が多かったですが、計算に苦戦しながらもなんとか正解を導き出せました。各メンバーの知恵を出し合ってだんだんと課題の答えに近づく様子はとても達成感と感動でいっぱいになりました。(チームワーク万歳🙌🏻)
この課題が次の日の演習に「つながる」内容だと気づいたのは後になってからでした。

研修2日目

研修2日目は実機(Cisco製のスイッチとルータ)を用いた演習でした。演習は4人1チームで行われ、それぞれ役割分担しながら進めていきました。各チーム、研修講師の方の補助もありながら、メンバー同士相談しながら演習を進めていきました!

実機研修の様子

演習に取り組んでいる様子

 4つの演習を通して、Webサーバーの構築からスイッチ、ルーターの構築、最後にDNSサーバーを構築して名前を使用してWebサーバーにアクセスできるようにしました。各演習で何をしていたのかと作業手順、作業の意味に分けて振り返ります。

演習1. Webサーバーの構築とローカルでの動作確認

ここでは、Webサーバー用のアプリケーションをインストールして、ローカルでHTMLファイルの内容を表示しました。

  • 作業手順(一部省略):
    1. Homebrewのインストール
    2. nginxのインストール
    3. ローカルでの動作確認
  • それぞれの作業の意味
    1. Homebrewとは、macOS(or Linux)用のパッケージマネージャーソフトウェアです。今回の演習では、Web
    アプリケーションサーバー(nginx)をインストールするためにHomebrewをインストールしました。
    2. nginx(エンジンエックス)は、Webサーバー用アプリケーションです。作成したHTMLファイルをデフォルトで
    指定されているDocrootに置くことでWeb コンテンツを公開できます。
    3. http://127.0.0.1:8080/をchromeなどのWebブラウザに打ち込み、アクセスしました。
    「127.0.0.1」はループバックアドレスといって、同じコンピュータ内部のプログラム間で通信したい場合に利用されます。今回は、Webブラウザとnginx間の通信でした。ポート番号で通信先を指定でき、nginxで指定されていたのは「8080」でした。

[振り返り]
私のチームでは、最後まで上手くできたメンバーもいましたが、Chromeで表示できないけれどもSafariでは表示
できたといったメンバーもいました。もしかしたら、一度アクセスに失敗した時のキャッシュが残ってしまったためHTMLの内容が表示されなかったのかもしれません。ともあれ、メンバー全員WebサーバーとWebブラウザ間で
ローカルの通信ができました。😌

演習2. Ciscoスイッチの構築とLAN内の通信

ここでは、Ciscoスイッチの構築を行い、同じネットワーク内にいる別の端末(MacBook)にアクセスしてWebページを閲覧しました。

  • 作業手順(一部省略)
    1. ネットワークの範囲を決める
    2. コンソールケーブルを繋いでスイッチへアクセス
    3. MacBookのネットワーク設定を行い、別のMacBookのWebサーバーへアクセス
  • それぞれの作業の意味
    1. 今回、私たちのチームではプライベートIPアドレス「192.168.100.1~4」を使うことにして、サブネットマスク「255.255.255.240」としました。割り当てるIPアドレスの数はそこまで多く必要としないため、14個割り当てられるサブネットマスクを設定しました。
    2. ここでは、スイッチの設定を確認するためにコンソールケーブルを繋いで、「screen」コマンドを使ってスイッチにアクセスしました。次に、「show mac address-table」を実行して、スイッチに接続したMacBookが認識されているか確認しました。
    3. 手順1で決めたIPアドレスをチームメンバーがそれぞれ設定し、別のメンバーのIPアドレスを辿ってWebサーバーへアクセスできるか確認しました。

[振り返り]
手順3で別メンバーのサーバーへアクセスできないトラブルが発生しましたが、単にLANケーブルがスイッチにしっかりと差し込まれていなかったり、ポートが物理的に壊れていて認識してくれなかったりといったようなことでした。何か繋がらないと思ったら、「show mac address-table」を実行して接続を確認することが大事だと思いました。

演習3. Ciscoルーターの構築とLAN間の通信

ここでは、CiscoルータとWebサーバーを構築し、Webサーバーとクライアント間で通信を行いました。

  • 作業手順(一部省略):
    1. ルータのネットワーク設定
    2. クライアント側でルータのアドレス設定
    3. Webサーバー側でIPアドレスの設定とルータのアドレス設定
    4. クライアントがサーバーに接続できるか確認
  • それぞれの作業の意味
    1.  CiscoルータにはGigabitEthernet(GE)というポートがあり、GE0/0のポートスイッチを接続し、GE0/1Webサーバー用のMacBookを接続しました。その後、ルーターの設定用のPCはスイッチのポートに繋ぎ、ルータの設定をしました。設定にはコマンドを実行し、ルータのポートにIPアドレスを割り当てました。
    ここでは、Webサーバーとスイッチに繋がれているクライアントのネットワークは別にする必要があるためGE 0/0(スイッチ側)には「192.168.100.5」、GE0/1(サーバー側)には「192.168.101.1」を設定しました。サブネットは前回の演習と同じにしました。
    2. 手順1で設定したルータのIPアドレスをPCのネットワーク設定に打ち込みました。
    3. 手順1で設定したルータのIPアドレスをPCのネットワーク設定に打ち込み、Webサーバー用PCのIPアドレスを「192.168.101.2」としました。
    4. http://192.168.101.2:8080/をブラウザに打ち込み、接続確認しました。

[振り返り]
手順3のところで最初、ルータのIPアドレスとWebサーバーのIPアドレスを一緒にしていました。その結果クライアントとサーバー間で通信ができず、なんとなくでWebサーバーのIPアドレスを変えたところ上手くいきました。今振り返るとルータの設定でWebサーバー側のポート(GE0/1)に割り当てしたIPアドレスをサーバーにも割り当てているのでそれは繋がらないよなと思いました。図解すると分かりやすそうなので下に残します。(GE0/1ポートのIPアドレス宛に命令が行って終わるのでサーバーからは何も返ってこないのは当然でした。)

図1. ネットワークの構成とIPアドレス

演習4. DNSサーバーの構築と名前を使用したアクセス


ここでは、DNSサーバーを構築して名前を使用してWebサーバーとクライアント間で通信を行いました。

  • 作業手順(一部省略):
    1. DNSサーバーアプリケーション(CoreDNS)をインストール
    2. CoreDNSの設定ファイルとゾーンファイルの作成とDNSサーバーの起動
    3. ドメイン名を使ってWebサーバーにアクセスできるか確認
  • それぞれの作業の意味
    1. ドメイン名とIPアドレスを紐づける役割であるCoreDNSをインストールしました。DNSサーバーを通じて、ドメイン名とIPアドレスの変換が行われます。クライアント側がドメイン名でリクエストを送るとDNSサーバーにてIPアドレスに変換されるといった流れです。
    2. CoreDNSの設定ファイルにはドメイン名に関する情報がどのファイルであるか記述しました。ゾーンファイルには、ドメイン名とIPアドレスの対応を記載しました。各種設定が終わったのちDNSサーバーを起動しました。
    3. http://ホスト名.ドメイン名: 8080/をブラウザに打ち込み、接続確認しました。

[振り返り]
私のチームでは、手順2のゾーンファイルの設定は資料を見ながらすんなりと設定はできましたが、Webサーバーへアクセスしようとすると繋がらないといった問題が発生しました。ゾーンファイルの記述ミスなど疑っていろいろ見ましたが、結局のところDNSサーバーを起動したつもりが起動できていなかったことが原因でした…。確認は大事ですね…。😣

まとめと感想

今回の演習で、同じネットワーク(LAN)内の通信と別のネットワーク(LAN)間の通信方法とWebサーバー、DNSサーバーの構築方法を学んでいきました。弊社はクラウド系の企業であるため実機を扱うことはそうそうありません。実機を使い、自分たちで設定しながらWebサイトにページが表示される仕組みを学べたのはとても良い機会でした。また、いつもはオンライン上で会うことが多い25卒の同期と研修講師の方々、新卒育成担当の方々が一つの場所に集まって、学び・教えあったこの研修は、ネットワークが「つながる」人が「つながる」を実感できたとても良い時間だったと思います!

実機研修の様子

 

参考文献・サイト

・井上 直也 etc. , “マスタリングTCP/IP入門編 第6版”, オーム社, p165, 2021.
・”DNS zone / DNS records” ネットワークエンジニアとして,
https://www.infraexpert.com/study/tcpip23.html (2025/6/8アクセス).