RareTECH受講生ブログ

RareTECHの受講生がアウトプットに利用しているブログです。

IPアドレスを完全に理解する

こんにちは。RatreTECH受講生のRyoです。

今回は 「2021年6月20日(日) IPアドレスを完全に理解する」の講義内容を振り返ります。

この記事を読むと以下の点がわかるようになります。

  • どの層で動いているか
  • 何のために存在するか
  • どんな形式で表現するか
  • 誰が持っているか
  • IPアドレスの種類
  • IPアドレスのクラス
  • 便利な表記(CIDER表記)
  • IPアドレスが足りない!を緩和する仕組み

この記事ではIPv4について記載しています

それでは、内容に入っていきましょう。

どの層で動いているか

ここで言う層というのはOSI参照モデルTCP/IPモデルのことです。

OSI参照モデルTCP/IPモデルは両方ともインターネットを含むネットワーク上で

繋がれたコンピュータがお互いに通信をするための仕組みを定めている標準規格のことです。

言い換えると、「通信をするための約束事」です。

IP(Internet Protocol)はそれぞれで以下の層で利用されています。

img

※引用元:https://community.fs.com/jp/blog/what-is-osi-reference-model-and-tcp-ip.html

それぞれのモデルで言葉は違いますが、IPアドレスの役割は同じです。

なんのために存在するか

各コンピュータがネットワーク上のどこにいるか?を識別するために存在しています。

そのため、このIPアドレスがわからないとメールを送ったり、

見たいWebサイトなどを見ることができなくなります。

どんな形式で表現するか

IPアドレスは0~255の数字を.(ドット)区切りで4つ並べて表現します。

例えば

  • 192.168.21.22
  • 116.91.197.177

のような形です。

0~255がどういう数字かというと、2進数8bitで表現できる値の範囲になっています。

そのため、ドットで区切られている数字はすべて0または1を8個並べた値に置き換えることができます。

0は00000000

172は10101100

255は11111111

と置き換えられます。

つまりIPアドレスは32bitで表現されています。

ちなみに8bitは1byteとなります。

誰が持っているか

IPアドレスを実際に持っているのは、NIC(Network Interface Card)という機器です。

LANで使われているこの機械は何ですか?(物理層)~これで入門書が読める!超初心者のためのインターネットの仕組み~:インターネットのモヤモヤを解消する(2)(2/3  ページ) - @IT

※引用元:https://www.atmarkit.co.jp/ait/articles/0810/06/news115_2.html

おそらく、画像のようなLANケーブルを挿す穴を見たことがあるのではないでしょうか。

各コンピュータではこのような機器が実際にIPアドレス情報を持っています。

IPアドレスの種類

IPアドレスは以下の2種類あります。

  • グローバルIP(WAN:Wide Area Network)
  • プライベートIP(LAN:Local Area Network)

IPアドレスの種類は、使用する==用途が異なる==ために分かれています。

※後述するクラスも種類じゃないの?なりそうですが、こことは異なるお話です

グローバルIPの特徴

  • インターネットへ接続するのに必要
  • インターネット上で唯一(一意)である
  • IPアドレスの管理団体が存在する(JPNICなど)

プライベートIPの特徴

  • 特定の閉じたネットワーク内で使用する
  • 必ずしもインターネットにつながる必要はない
  • 世の中に重複するIPアドレスが存在しても良い

IPアドレスのクラス

IPアドレスにはクラスという、アドレス空間を定めるルールが存在します。

アドレス空間を地図で例えると、

  • 関東地方 -> 東京都、千葉県、埼玉県などが含まれる
  • 関西地方 -> 大阪府京都府兵庫県などが含まれる

といったルールがありますが、イメージ的にはこれと一緒です。

アドレス空間が大きいほど、多くのIPアドレス都道府県)が含まれることになります。

クラスにはアドレス空間の大きさの順にA~Eまでの5つが存在します。

img

※引用元:http://atnetwork.info/tcpip/tcpip40.html

一般のユーザーが実際に使うことになっているクラスはA~Cまでです。

DおよびEについて今回は割愛します。

ネットワークアドレス

ネットワーク部と呼ばれることもあります。

ネットワークアドレスは住所で例えると、どの都道府県や市区町村に該当するかという

おおよその位置を表現しているものです。

ネットワークアドレスを見ることによってそのIPアドレスがどのクラスにいるかを

判断することができます。

ホストアドレス

ホスト部と呼ばれることもあります。

ホストアドレスを住所で例えると、どの区や番地、何丁目マンション名までの

具体的な場所がわかる情報を表現しています。

そのためホストアドレスがわかって初めてホストアドレス宛てに通信ができるようになります。

クラスフルアドレス

前述のA~Eクラスまでのアドレスの分類を、クラスフルアドレスと呼びます

クラスレスアドレス

クラスフルアドレスだと、IPアドレスがどのクラスにいるかわかりやすい反面、

以下の欠点があります。

  • 使用しないIPアドレスが生じやすい(クラスAは約1600万台分)
  • IPアドレスが足りなくなりやすい(クラスCは約250台分)

そのため、もっと柔軟にネットワークアドレスを指定できるようにしたのが

クラスレスアドレスです。

クラスレスアドレスは、クラスフルアドレスとは違い、ネットワークアドレスを自由に設定

することができます。

例えば下図のようにクラスBのネットワークに対し、==サブネット==というものでさらに区切りをいれる

ことでネットワークに所属するIPアドレスの数を少なくすることができます。

↑クリックで拡大

※引用元:https://www.atmarkit.co.jp/ait/articles/0805/28/news136_2.html

この例とは逆に、サブネットによってより多くのIPアドレスを持つことができる

ネットワークアドレスを設定することも可能です。

その場合、上図のネットワーク部の終わりを上位ビット(左側のビット)にサブネットの

終わりが来るように設定します。

便利なCIDER表記

クラスレスアドレスの説明で、ネットワーク部とサブネット部が

0と1によって分けられていたと思います。

あれはサブネットマスクといい、あの値があることでコンピュータは

ネットワーク部とホスト部を区別することが可能です。

サブネットマスクでも、IPアドレスと同様に2進数→10進数の変換して表記するのが一般的です。

以下のような表記になります。

  • 255.255.0.0
  • 255.255.254.0

サブネットマスクでは、1が上位何ビットまで続いているかがわかればよいので、

よりコンパクトに表現するためにCIDER表記というものがあります。

例えば、PCに設定されてるIPアドレスとサブネットが

  • IPv4 アドレス . . . . . . . . . . . .: 192.168.3.6
  • サブネット マスク . . . . . . . . . .: 255.255.255.0

であった場合にはこのような表記ができます。

192.168.3.6/24

この方がコンパクトですし、上位から何ビットまでがネットワーク部なのかが理解しやすいと思います。

IPアドレスが足りない!を緩和する仕組み

IPv4が取りうる値の数は約43億個です。

今日の世界人口が70億人を突破したといわれており、しかも一人がPCとスマホを両方持つ、

あるいはPCを複数所有しているのが普通になってきており、IPアドレスが全然足りていない

ことは以前から問題となっていました。

しかし、グローバルIPアドレスは世界中で唯一である必要があります。

※プライベートIPアドレスは閉じたネットワーク内で利用するため、重複しても問題ありません。

じゃあどうするのか?ということでグローバルIPアドレス不足を緩和させる仕組みとして

NATNAPTというものが存在します。

NAT

NATとはプライベートIPアドレスグローバルIPアドレスに変換する仕組みです。

プライベートIPアドレス

閉じたネットワーク内で利用するため(他のネットワーク内のIPアドレスと)重複しても良いと記載しました。

しかし、世界中で一意になる必要があるグローバルIPアドレスの代わりとして、

重複している可能性のあるプライベートIPアドレスをそのまま用いることができません。

そのため、ルーターをの機能であるNAT(Network Address Translation)でIPアドレス

プライベートからグローバルに変換する必要があります。

NATを利用したアドレス変換は

プライベート:グローバル = 1:1

です。

ここでおかしいのが、1対1だと結局グローバルIPアドレスの枯渇問題をクリアできなくない?

ということです。

それをさらに解決するために次に記載するNAPTです。

NAPT

NAPTとは正式名称をNetwork Address Port Translationといいます。

NAPで行っていたことを、

プライベート:グローバル = 多:1

として行うことを可能にしています。

img

引用元:https://engineer-ninaritai.com/napt/

上図を例にすると、PC1とPC2ではそれぞれ別のプライベートIPが割り当てています。

しかし、変換後のグローバルIPアドレスは161.93.34.46だけです。

ですが、プライベートIPアドレスごとにポート番号を紐づけて管理することによって

一つのグローバルIPアドレスに複数のプライベートIPを変換し、利用することが可能になっています。

これによってグローバルIPアドレスの数をかなり節約できることになり、グローバルIPアドレスの枯渇問題の

緩和に寄与しています。

今回のIPアドレスに関する授業はとてもボリュームが多く、非常に勉強になりました。

ここまで読んでいただきありがとうございました。

宣伝

RareTECHに興味のある方は、こちらのHPをご覧ください。
無料体験授業も行っていますので、ぜひご参加くださいね。

raretech.site