こんにちは。
あおいゆうきです。
インフラエンジニアに転職して4ヶ月が経ちましたので振り返りです。
未経験はここでつまづくのかというのがわかると思うのでこれからインフラエンジニアを目指している方はぜひ最後まで見てください。
研修、業務を通じてつまづいたのはこの5つ
ポート開放
私ははじめは物理的な話しかと思っていましたが、ネットワークの中の話でした。
この認識がずれると後の話は何もわからなくなります。
ポート開放とは、ネットワーク上で特定の通信を許可するために行われる設定のことを指します。
インターネットを介してデータが送受信される際には、IPアドレスとポート番号という2つの情報が利用されます。
IPアドレスはネットワーク上のデバイスを識別するためのもので、ポート番号はそのデバイス内部で実行されている特定のプロセスやアプリケーションを識別するためのものです。
具体的には、ウェブサーバーへアクセスする際、通常はTCPの80番ポート(HTTP)や443番ポート(HTTPS)を使います。
これはウェブサーバー側でこれらのポートが開放されているからです。
同様に、メールを送るためのSMTP(25番)、受け取るためのPOP3(110番)、IMAP(143番)、またはFTP(20番と21番)など、それぞれのサービスやプロトコルは特定のポート番号を利用します。
ポート開放の設定は、主にファイヤーウォールやルーター等で行われます。
自宅でゲームサーバーを立てたり、遠隔地から自宅のPCにアクセスしたりする場合には、対応するポートを開放する必要があります。
ただし、無闇にポートを開放すると、セキュリティ上の問題を引き起こす可能性があります。
開放したポートは、インターネットから直接アクセスできるようになるため、攻撃者がそのポートを通じてシステムに侵入しようとする可能性があります。
そのため、必要なポートだけを開放し、利用しないときは閉じるようにするなど、適切な管理が必要です。
ルーターの設定をするときはどのポートを開放して、どのポートは閉じるかをものすごく考えます。
ネットワークエンジニアのキモになる部分ですね。
TCP/IP
TCP/IPとはインターネットでデータを送受信するための基本的なプロトコル(通信規約)の集まりです。
このプロトコルという言葉はよく出てくるので必ず覚えておいたほうがいいですよ。
とりあえずは約束事のことだと覚えれば大丈夫です。
例えば、データを送信するときの約束事、メールを送受信するときの約束事とかありますね。
この約束事をどうやって付け加えたり、消したりするのかを考えるのも仕事のひとつです。
話を戻します。
“TCP/IP”とは”Transmission Control Protocol/Internet Protocol”の略で、この二つはインターネットの基盤となるプロトコルですが、実際にはこれら以外にも多くのプロトコルが組み合わさってインターネットが成り立っています。
それぞれの役割を簡単に説明します:
- IP (Internet Protocol): これはデータを正しい宛先に送るためのプロトコルです。
インターネット上の各デバイスは一意のIPアドレスを持っており、これによってデータが正しい宛先に送られます。
しかし、IPはデータが宛先に確実に到達することを保証するものではありません。 - TCP (Transmission Control Protocol): これはデータが正確に、順序正しく、かつ確実に宛先に到達することを保証するプロトコルです。
データは送信前にパケットと呼ばれる小さな部分に分割され、それぞれが個別に送信されます。
パケットが宛先に到達したら、TCPにより元の順序に再構成されます。
もし何かの理由でパケットが失われた場合、TCPはそのパケットを再送信します。
これら二つのプロトコルが組み合わさることで、インターネット上での信頼性の高いデータ通信が可能になります。
ただし、これらはインターネットの基盤となるだけで、実際のアプリケーション(ウェブブラウザ、メールクライアント、ビデオストリーミングサービスなど)はさらに他のプロトコルを使用して特定の目的を達成します。
たとえば、ウェブページを閲覧するためのHTTP、メールを送受信するためのSMTP、ファイルをダウンロードするためのFTPなどがあります。
これらのプロトコルはすべてTCP/IP上で動作します。
プロトコルの上にさらにプロトコルがある。
メモをとったり、図に書いたりしないと頭がごちゃごちゃになるので必ず何かに書くように私はしています。
config
“Config”は一般的に設定ファイルのことを指す略語で、特にコンピュータープログラムやアプリケーションの動作をカスタマイズするために使用されます。
Configファイルはテキストベースで、変数やパラメータを設定するために使用されます。
ファイルは通常、読みやすく解析しやすい形式(例えば、XML、YAML、JSON、INIなど)で書かれています。
ルーターを新しく導入したり、設定を変えたりするときに必ず使うものです。
例えば、Webサーバの設定ファイルには、どのポートでサーバを実行するか、どのディレクトリをWebルートとするか、どのIPアドレスをリスニングするかなどの情報が含まれていることがあります。
プログラムが初めて実行されるとき、それはしばしば設定ファイルを読み込み、そのパラメータに基づいて自身の振る舞いを調整します。
これにより、ユーザーはコードを変更することなくプログラムの動作を微調整することが可能になります。
設定情報を残しておけば他のネットワークを設定するときにも使えたりするので、いいconfigは保存しておいたりしますね。
ただし、設定ファイルは敏感な情報(例えば、パスワードや秘密鍵など)を含むことがありますので、適切なセキュリティ対策が重要です。
configの中身の内容についてはまた違う機会に解説します。
未だに呪文のようにしか見えないので早く自分でガシガシ作れるようになりたいですね。
複数セグメント
そもそもセグメントという意味ですが、ネットワークでは、「セグメント」は通常、ネットワークの一部、または特定のネットワークトラフィックの流れを指します。
ネットワークを複数のセグメントに分けることで、トラフィックの管理やセキュリティの強化が可能になります。
簡単に説明すると192.168.1.0/24というグループと192.168.0.0/24というグループに分けるけど、ネットワーク同士ではちゃんと繋がっている状態にするという感じですね。
グループの見方ですが、/24をつけると192.168.1or0までがグループの名前って意味になります。
そのあとの数字がグループの番号です。
詳しくは別記事で解説します。
L2、L3(OSIモデル)
OSIモデル(Open Systems Interconnection model)は、コンピュータネットワークでの通信を理解するためのフレームワークです。
このモデルは7つのレイヤー(階層)に分けられており、それぞれが特定のタスクを担当しています。
それぞれのレイヤーは、その上のレイヤーと下のレイヤーのみと交流します。
- 物理層(Physical layer): これは最も基本的なレイヤーで、ハードウェアと直接関連しています。
具体的には、ケーブル、ハブ、スイッチなどの物理的な接続と、電気信号や光信号によるデータの送受信がここで行われます。 - データリンク層(Data Link layer)(L2): この層は物理層から受け取った信号をフレーム(データの単位)に変換し、エラーチェックやフレームの送受信を管理します。
MACアドレス(ネットワーク機器の一意の識別子)もこの層で使用されます。 - ネットワーク層(Network layer)(L3): この層では、データパケットのルーティング(最適な送信経路の選択)と転送が行われます。
IPアドレスがこの層で使用され、IPプロトコルもこの層で動作します。 - トランスポート層(Transport layer): この層は、データの送受信を管理し、データのエラーチェックと順序保証を行います。この層で動作するプロトコルにはTCPとUDPがあります。
- セッション層(Session layer): この層は、コンピュータ間の通信セッション(接続)の確立、管理、終了を担当します。
- プレゼンテーション層(Presentation layer): この層は、データの形式やエンコーディング(符号化)を管理し、必要に応じて変換します。
例えば、暗号化と復号化のプロセスがここで行われます。 - アプリケーション層(Application layer): 最上位のこの層は、ユーザーが直接触れる部分で、メール送信、ウェブ閲覧などのアプリケーションが動作します。
HTTP、FTP、SMTPなどのプロトコルがここで動作します。
各レイヤーが特定の役割を果たし、各レイヤー間でデータがやり取りされることで、コンピュータ間の通信が可能になります。
このように分割することで、一部の技術や規格が変更されても、それが他のレイヤーに影響を与えにくいというメリットがあります。
これはモジュラー設計(大きいシステムを作るために小さなシステムをいくつか重ね合わせること)とも言えます。
また、OSIモデルは理論的なモデルであり、実際のネットワークプロトコル(例えばTCP/IP)はこのモデルを完全には守っていないことに注意が必要です。
しかし、OSIモデルはネットワークの概念を理解するための有用なツールとなっています。
L2、L3はネットワーク系をやっていると必ず聞く単語ですが、初見では意味がまったく分かりませんでした。
簡単に言うとL2はLANケーブルを物理的につなぐまでの話で、L3はネットワークの中のことでネットワークを繋げるまでの話です。