2021年12月29日インフラツイートシェアはてブ送るPocket17IPアドレスという言葉は聞いたことのある人も多いと思います。開発の現場では外部の攻撃者からのアクセスを遮断したり、開発環境を外部からアクセスできないようにしたりする場合にIPアドレスの知識は必須となります。IPアドレスの仕組みは初歩的な内容かもしれませんが、影響範囲のあるネットワークを理解するためにも必要な知識であるため改めて説明をしようと思います。今回の説明でいうIPアドレスとはIPv4のこと指します。今回話すネットワークについてより詳しく学びたい場合は、ご存知の人も多いと思いますが「マスタリングTCP/ICP」の書籍をオススメします。ネットワーク全般について体系的に学べますし、図も適宜掲載されていてわかりやすくなっています。まとめIPアドレスの概要IPアドレスは32桁の二進数0と1の組み合わせで成り立っている32ビットの数字です。8ビット1組とし、4組に分けて10進数で表示して人でもわかりやすい形で表現されています。134.234.0.1というIPアドレスは実際には10000110111010100000000000000001という数字になります。IPアドレスの詳細IPアドレスの振り分けIPアドレスは国やプロバイダごとに利用できる値が決まっています。決め方ですが、IANAという機関が世界中のIPアドレスを一元管理しています。IANAからさらに細かな機関にIPアドレスが分配され、そこからさらに細かな・・・という感じでウォーターフォール式にIPアドレスが振り分けられます。https://www.cman.jp/network/support/IP_list.htmlIPアドレスの構造IPアドレスの中身についてもう少し説明をします。IPアドレスはネットワーク部とホスト部に分かれており、「どのネットワークのどのコンピュータか」を識別できるようになっています。ネットワーク部、ホスト部の順番でIPアドレスの先頭から桁が割り振られています。桁がどのように割り振られているかですが、例えば172.20.1.1/16のようにIPアドレスの後ろに”/16′′のような表記で表現されています。“/16′′であれば先頭から16桁までがネットワーク部だということを表現しています。routing)などと呼びます。図にすると以下のようになります。134.234.255.255のホストが存在することができます。11111110)となります。ネットワーク部とホスト部のルールネットワーク部とホスト部には主に2つのルールがあります。それぞれ図で説明をします。ネットワーク部はネットワークが違う場合は違う値でなければいけないネットワーク部のルール緑で囲われた部分がネットワークとします。この場合、ネットワークが異なると134.234と134.235のようにネットワーク部の値が異なります。ホスト部は同じネットワークであれば違う値でないといけないホスト部のルール青で囲われた部分がホストだとします。0.2のようにホスト部の値は異なります。ホスト部の特別なアドレスネットワークアドレスホスト部が全て0で表現されるアドレスをネットワークアドレスといいます。ネットワークアドレスはホスト部全てを示すアドレス、つまりネットワーク自身を示すものになります。134.234.0.0/16というIPアドレスは132.234.xxxx.xxxで表現される134.234.0.0から134.234.255.255のホスト(厳密にはネットワークアドレスとブロードキャストアドレスをのぞいた134.234.0.1から134.234.255.254)が存在するネットワーク自身のことを指します。ブロードキャストアドレスホスト部が全て1で表現されるアドレスをブロードキャストアドレスといいます。ブロードキャストアドレスはホスト部すべてを示すもので、同一のネットワークに存在する全ホストに同一のパケットを送信するときなどに利用されます。134.234.255.255/16というIPアドレスは134.234.0.0から134.234.255.255のホスト全てを指すことになります。プライベートIPアドレスIPアドレスは32ビットで構成されています。4,294,967,296)台のコンピュータにIPアドレスを振り分けることができ、インターネットを利用することができます。これだけだとIPアドレスは足りません。そこでプライベートIPアドレスの概念が生まれました。プライベートIPアドレスはローカルネットワーク内で利用されるIPアドレスです。ローカルで利用されるものなのでプライベートIPアドレスではインターネットに接続することはできません。今まで説明をしてきたインターネットに接続するためのIPアドレスのことはグローバルIPアドレスと呼びます。複数のプライベートIPアドレスがグローバルIPアドレスを共有することでコンピュータごとにIPアドレスを振り分けるのではなく、ネットワークごとに振り分けられるようになり、より多くのコンピュータがインターネットに接続できるようになります。グローバルIPアドレスとローカルIPアドレスの対応関係また、プライベートIPアドレスとして利用できるIPアドレス決まっており、以下のようになっています。~192.168.255.255(192.168.0.0/16)なお、プライベートIPアドレスはネットワークが異なっていれば同じアドレスでも問題ありません。プライベートIPアドレスのルールIPアドレスのクラスIPアドレスはネットワーク部とホスト部に分かれるという説明をしました。ネットワーク部とホスト部に振り分ける桁数によってそのネットワークの規模が変わってきます。具体的には、ホスト部に割り当てられる桁数が多いほど同一のネットワーク内に存在できるホスト数が多いことになるため、規模が大きいネットワークとなります。クラスとはネットワークの規模によって利用できるIPアドレスを振り分けるための概念です。Cというものがあります。現在はサブネットマスク(後述)の概念が導入されているため、クラスよりも柔軟にネットワークの規模を決めることができています。クラスの詳細クラスの詳細を表にしたものが以下になります。192.168.0.0/16サブネットマスククラスの概念が導入された結果、ネットワークの規模によって利用できるIPアドレスは決まるという説明をしました。クラスには問題点がありました。利用するクラスが集中するという点です。規模が大きすぎず小さすぎないクラスBの利用に集中をしてしまいました。先ほども説名した通り、クラスごとに利用できるIPアドレスが決まっているため利用するクラスが集中するとそのクラスのIPアドレスが不足するという事態に陥ってしまいます。次にホストが無駄に余るという点です。クラスBのネットワークにおいてホスト数は1048576台まで設定できるが数的に大きすぎて現実的ではありません。1つのネットワーク内で利用できるホストを余らせてしまい、その結果ネットワーク上でIPアドレスが余ってしまうという問題が起きました。そこでサブネットマスクの概念が導入されました。サブネットマスクはクラスに縛られることなくネットワーク部とホスト部に分けられるようにする識別子のことをいい、ネットワーク部を1、ホスト部を0で表現します。クラスの場合だとIPアドレスの値によってCIDR(IPアドレスの後に続く”/”の部分)の値は必然的に決まりましたが、サブネットを導入することで柔軟にネットーワクの規模を変更することができます。サブネットマスクによるネットワーク規模の変更IPアドレスとサブネットマスクの対応は以下のようになります。IPアドレスとサブネットマスクの対応また、サブネットマスクによってネットワークを細分化することをサブネット化と呼んでいます。クラスによるネットワークをサブネット化したイメージは以下のようになります。クラスによるネットワークサブネット化されたネットワークまとめ今回はIPアドレスについて説明をしました。まとめると以下のようになります。今はサブネットによってサブネット化されているCIDR(/xx)をみることでネットワークの規模、ホスト数がわかる。2012-02-25Amazon楽天市場RECOMMENDインフラネットワークツイートシェアはてブ送るPocket17プロフィールnishina大企業、ベンチャーと色々なところでWebエンジニアやっています。退職手続きから案件参画まで。人気の記事iPhoneの連絡先の保存がうまくできない!?原因は同期設定かも。