入社前勉強③ インターネット層のあれこれ
こんにちわ!!SEINANです。今回から本格的に、インターネット層についてまとめたいと思います!前回の2進数10進数の知識も必要です!今回も長かった~!でもやってみます!!
インターネット層(OSIのネットワーク層)
インターネット層は複数のネットワーク間の通信のやりとりについて定義してます。前回のEthernetは同一のネットワーク間の通信。今回はネットワークをまたがっての通信についてです。ここの層にも主流のプロトコルがあります。それがIPです。(まあ、TCP/IPだから当然か・・・)
IPにはヴァージョン4と6がありますが、一般的にIPといったらヴァージョン4の事です。そしてこの階層で扱うデータ名称はパケットです!
IPパケット
IPアドレスという、ネットワーク上の各ホストの住所があります。
※MACアドレスとは違います。詳細は後程
上位層から来たデータをIPペイロードと呼んでいて、それにIPヘッダーをつけたものをIPパケットといいます。IPヘッダーに、宛先IPアドレスと送信元IPアドレス情報が入っていて、それをもとに通信を行います。Ethernetとは違い、フラッディングなどはなく、宛先IPアドレスがある場所にだけIPパケットを送ります。ここでは主流のヴァージョン4(V4)についてです。
IPパケットの構造
構造は以下のようになっています。
IPヘッダーは全20バイト(160ビット)構成です。長いので縦に並べてあります。一気に全部は覚えられないので、徐々に覚えていきたいと思います。
1つずつ確認します。
ヴァージョン
IPのヴァージョンです。先ほど述べた4か6が入ります。
ヘッダ長(IHL)
ヘッダーの長さを32ビット単位であらわしたもの 通常は5が入ります。
サービスタイプ(TOS)
IPパケットの優先度を示します。
データグラム長さ(totallengs)
IPパケットの長さを示します。
識別番号(Identification)
フラグメントされたIPパケットをもとに戻すときの識別子の事。
※フラグメントとは?
ペイロード部分が多いので分割して、IPヘッダーをつけて送信する事。
それをもとに戻すときに必要になってくるのが識別番号になります。
フラグ
3ビットで、1ビット目は0、2ビット目がフラグメントを許可するかで、許可なら0、不可なら1、3ビット目は最後の分割データなら1、それ以外なら0が入るようになっています。
フラグメントオフセット
フラグメントされたデータを戻すときに、もともとのどの位置に戻すかを示したもの。1,2,3,4に分割して2のデータなら2の場所に戻るようにするものです。
※識別番号は迷子にならないように、身元確認のようなイメージで、オフセットはその身元で正しい位置に戻すためのものですかね!
TTL
パケットの生存時間のことです。後に出てくるルータを通過するたびに-1になり、数値が0になったらそのパケットは破棄される仕組みです。無限ループにならずに済むといった感じです!
プロトコル
Ethernetのタイプのように、上層階のプロトコルがここでわかるようになっています。ここの数値が6ならTCP、17ならUDPです!
ヘッダチェックサム
パケットが壊れていないかなどの検査するための情報を示します。
送信元IPアドレス
送り主のIPアドレス。32ビット構成になっています。
宛先IPアドレス
宛先のIPアドレス。こちらも32ビット構成です。
オプション部
ここはあまりないようですが、データが足りない時など0で穴埋めしたりなどそういうことをする部分です。ほとんど使うことはありませんが、使った場合は60バイトくらいになります。
IPアドレス(v4)
先ほども言ったようにIPアドレスは32ビットでできています。それをわかりやすいように、8ビットで区切り、10進数に変換して管理します。8ビットで区切った塊を第〇オクテットと言います。全部で約43億通り作れます。
クラス
43億を管理しやすいようにグループ分けをするクラスという考え方があります。(クラスフル)クラスは全部で5つあります。また、IPアドレスはネットワーク部とホスト部に分かれていて、クラスにより割合が変わります。
上記の例の192.168.0.0を見ると、クラスCに相当します。
クラスCでは1つのネットワークに約250人分のホストにIPアドレスを割り当てられます。が!!500人くらいの企業だったら足りないので、クラスBを使うことになります。しかし、クラスBでは65000人なので使わないアドレスがかなり余ってしまいます。じゃあ、クラスの考え方やめよう!で作られたのがクラスレスという考え方です。
クラスレス(CIDR)
1つ目はサイダー(と読みます)です。これは、複数のネットワークを1つにまとめてしまおうという考え方です。
例 192.168.0.0 192.168.1.0 192.168.2.0があったとします。
2進数に変換し、共通部分をまとめます。それをネットワーク部にして、残りをホスト部として扱います。この時それぞれの部の境界がわからないので何ビット目が境界かを /〇〇で表現します。この場合、23ビット目からホスト部なので 192.168.0.0/22 となります。これをプレフィックス表記と言います。SIDRではなくても、例えばクラスCなら 192.168.0.0/24などといったように表記します。
クラスレス(FLSM)
先ほどはネットワーク部を削って、ホスト部を増やしました。今度はそれの逆で、ホスト部の一部をネットワーク部として使うというやり方です。このやり方をサブネットと言います。これを使うと、ネットワーク部とホスト部の境界がわからなくなるので、境界を表記する必要があります。プレフィックスとは別のやり方で、サブネットマスクというのがあります。
サブネットマスクは、192.168.0.0 255.255.255.192 と並べて表記する必要があります。このプレフィックスとサブネットマスクは両方使われるので、両方覚える必要があります。どっちにどちらを使うかの定義は人によりけりのようなので、プレフィックスが記載が簡単なので以後はプレフィックス表記とします!!
FLSMの考え方的には、ネットワーク部が会社だとしたらサブネットは部署だとします。しかし全部署の定員数を同じ人数でしか管理できないため、定員に満たない部署はデスクがあまってしまいます。といった感じですかね!
クラスレス(VLSM)
FLMSでは無駄多くあったので、それを改善するために生まれた考え方が、VLSMです。これは、他の部署であまっているデスクを使わせてもらいましょう!ということです!
このように細かく分割していきましょう が VLSMです。
ネットワークアドレス/ブロードキャストアドレス
IPアドレスにはネットワークアドレスとブロードキャストアドレスがあります。ホスト部のビットが全て0のものはそのネットワークを表す、ネットワークアドレスとなります。また、ホスト部が全て1のものはブロードキャストする際のアドレス、ブロードキャストアドレスとなります。つまり、最初と最後のアドレスはすでに決まっているのでホストに割り当てられません。なのでホスト数は-2をする必要があります。
プライベートアドレスとグローバルアドレス
IPアドレスには2種類あります。
プライベートアドレス
組織内で使われるアドレスで自由に設定できます。お金もかかりません。
ただインターネットには接続できません。インターネットにつなぐには、NATという技術が必要ですが、初学者にはまだ早いようなので割愛します。(笑)
グローバルアドレス
インターネットなどで使うアドレスです。自由に設定できず、アイキャンという組織が管理しています。そのアドレスを使うにはお金がかかります。
インターネット層で機能する機器、関連情報
主な機器は2つあります。
ルーター
異なるネットワーク同士の通信を可能にする機器。OSIのデータリンク層で使う異なるプロトコル同士でも利用できる。まあ通信における道案内役のような役割があります。ルーターが受信したパケットの宛先IPアドレスまでの最適な経路を選択する事をルーティングといいます。その最適な経路情報を記録したものがルーティングテーブルといいます。テーブルの情報を見てルーティングを行い、パケットを送信します。同一ネットワーク外のIPアドレスと通信したい場合、IPパケットをルーターに送ればいいのです!
L3スイッチ
L2スイッチの上位互換のような機器です。これはEthernet通信のみに使えます。EthernetフレームのMACアドレスがL3スイッチ宛てになっていたら、ルーターの働きをしてルーティングを行い、L3スイッチ宛てではなかったら、L2スイッチの働きをして、フレームを適切なポートから送信します。異なるVLANの通信もできます。
スタティックルーティング/ダイナミックルーティング
ルーティングテーブルに学習する方法が、2種類あります。管理者など人力でルーティングを行う事をスタティックルーティングといい、ルーター同士が通信してルーティングをすることをダイナミックルーティングといいます。これらの方法で学習します。ダイナミックルーティングをするための判断材料をネクストホップといいます。ネクストホップには主に3種類あり、LPMとディスタンスとメトリックです。
LPM
プレフィックスの値が大きい方の経路を優先します。プレフィックスが大きいということはホストが少ないということです。渋滞を避けるようなイメージです。
ディスタンス
ルーティングをするためのプロトコルに値があり、それはルーターの品番やメーカーで異なります。この値の小さい方の経路を優先します。
メトリックス
ネットワーク間の距離が短い方を優先します。
まとめ
インターネット層は複数のネットワークに関する事を定義する階層でした。その階層ではデータの呼び名がパケットです。IPパケットはIPペイロードというデータの本体に宛先IPアドレスなどの情報があるIPヘッダーを付与して通信を行います。
IPアドレスはMACアドレスとは異なるホストの住所のようなもので32ビット構成になっています。32ビットの中でネットワーク部とホスト部に分かれています。約43億通りのアドレスが作れ、それを管理しやすいようにクラスというグループを作りました。そのクラスも5つあり、クラス毎に番号と部の割合が決まっています。しかし、クラスをもとにしたクラスフルな考えではIPアドレスを効率よく使えないのでクラスレスという考え方できました。ネットワーク部を減らしホスト部を増やす事で割り当てられるホストが増えます。このやり方をSIDRといい、各 部の境界を明確にするために /〇〇と表記することにしました。これをプレフィックスといいます。反対にホスト部の一部をネットワーク部として使う方法をサブネットといい、境界を明確にするためにサブネットマスクという表記方法があります。このやり方にはFLSMとそれの進化版VLSMがあります。
ホスト部の数値が全て0のアドレスをネットワークアドレスといい、ネットワークそのもののアドレスです。ホスト部すべて1ならブロードキャストアドレスといい、それら2つはホストには割り当てられないアドレスです。なのでホスト部の数は-2する必要があります。
IPアドレスは2種類あり、組織内で使われ、ネット不可、自由なプライベートアドレスとネット上などで使われる、アイキャンという組織が管理していてお金がかかるグローバルアドレスがあります。
機器はルーターとL3スイッチがあります。宛先IPアドレスへの最適な通信経路を選択することをルーティングといい、その情報を記録している場所をルーティングテーブルといいます。テーブルへの学習方法として、人力のスタティックルーティングと機器の自動のダイナミックルーティングがあります。ダイナミックルーティングをする際には経路判断の材料があり、それをネクストホップといいます。
感想
めっちゃながーーーーー!!自分の記事を読み返したときに、文字が多くて見づらかったので画像編集頑張りましたが、めっちゃ時間かかった!!(笑)良し悪しですね。次回は、学んだ2階層を連携する必要があるみたいなので、それを学んでいきたいと思います!!
違っていたらご指摘ください!お疲れさまでした!!
この記事が気に入ったらサポートをしてみませんか?