コンテンツにスキップ

IPアドレス@L3

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. IPアドレス

IPアドレスとは

ネットワーク内の機器の位置情報のこと。

ネットワーク内の LAN 内のルーターを境に、グローバル IP アドレスとプライベート IP アドレスに分けられる。

IP アドレスの例示では、x を使用しないようにする。

ip-address


IPアドレスの種類

▼ グローバルIPアドレス

プロバイダが提供する IP アドレスである。

パブリックネットワーク内に同じ IP アドレスは存在せず、Network Information Center への使用申請が必要。

プライベート IP アドレスの番号でなければ、グローバル IP アドレスである。

NAT はグローバル IP アドレスを持っており、プライベートネットワークとプライベートネットワーク間の双方向に対する通信時に、プライベート IP アドレスと相互変換する。

▼ プライベートIPアドレス

LAN 内で使用される。

異なるプライベートネットワーク間では、同じ IP アドレスが存在する。

プライベート IP アドレスは、RFC1918 で推奨された範囲を使用することが多い。

RFC1918推奨のCIDRブロック IPアドレス 個数
10.0.0.0/8 10.0.0.010.255.255.255 16777216
172.16.0.0/12 172.16.0.0172.31.255.255 1048576
192.168.0.0/16 192.168.0.0192.168.255.255 65536


bitとの関係

例えば、プライベート IP アドレスの 4 個のオクテット (第一オクテットから第四オクテットまで) が 1Byte のサイズをもち、IP アドレス全体で 4Byte のサイズを持つ。

補足として、172 から始まる IP アドレスは、クラス B である。

IPアドレスとbitの関係


01-02. IPアドレスの構造

ネットワーク部、ホスト部

▼ ネットワーク部、ホスト部とは

IP アドレスのオクテットは、ネットワーク部とホスト部に分類できる。

ip-address_portion

▼ クラスによるホスト部とネットワーク部の定義

IP アドレスをクラスとして分類し、各クラスで IP アドレスのネットワーク部とホスト部を定義する。

設定した IP アドレスの所属するクラスによって、使用できる IP アドレスの範囲が決まってしまう。

ホスト部とネットワーク部の定義方法が 4 種類しかないため、IP アドレスのパターン数 (最大パソコン数) が多すぎたり、少なすぎたりしてしまう。

使用できるIPアドレスの範囲 クラス ネットワーク部のオクテット ホスト部のオクテット 二進数で見たとき (N:ネ、H:ホ) IPアドレスのパターン数 (最大パソコン数) 備考
0.0.0.0127.255.255.255 A 第一のみ 第二から第四 0*.*.*.* 2^24 (16777216) 個 -
128.0.0.0191.255.255.255 B 第一から第二 第三から第四 10*.*.*.* 2^16 (65536) 個 よく使用する
192.0.0.0223.255.255.255 C 第一から第三 第四のみ 110*.*.*.* 2^8 (256) 個 -
224.0.0.0239.255.255.255 D - - 1110*.*.*.* - -
240.0.0.0255.255.255.255 E - - 1111*.*.*.* - -

▼ サブネットマスクよるネットワーク部とホスト部の定義

1』あるいは『0』で、IP アドレスのネットワーク部とホスト部を定義し、IP アドレスの後ろに記述する方法 (例:192.168.42.23/24) 。

設定した IP アドレスに対して、使用できる IP アドレスの範囲を自由に定義できる。

ネットワーク部を『1』、ホスト部を『0』で表す。

サブネットマスクの表記方法には、二進数形式、IP アドレス形式、1 の個数で表す CIDR 形式による表現方法がある。

二進数形式 IPアドレス形式 CIDR形式 IPアドレスのパターン数 (最大PC数) 備考
/10000000.00000000.00000000.00000000 /128.0.0.0 /1
/11000000.00000000.00000000.00000000 /192.0.0.0 /2
... ... ...
/11111111.00000000.00000000.00000000 /255.0.0.0 /8 2^24
(16777216) 個
... ... ...
/11111111.11111110.00000000.00000000 /255.254.0.0 /15
/11111111.11111111.00000000.00000000 /255.255.0.0 /16 2^16
(65536) 個
よく使用する範囲
... ...
/11111111.11111111.11111110.00000000 /255.255.254.0 /23
/11111111.11111111.11111111.00000000 /255.255.255.0 /24 2^8
(256) 個
... ... ...
/11111111.11111111.11111111.11111110 /255.255.255.254 /31
/11111111.11111111.11111111.11111111 /255.255.255.255 /32 1 よく使用する範囲

*例*

プライベート IP アドレスが 192.168.0.0 (11000000.10101000.00000000.00000000) で、使いたい IP アドレスのパターン数が 65536 個、または 16777216 個の場合、サブネットマスクの表記、使用できる IP アドレスの範囲は以下のようになる。

使いたいIPアドレスのパターン数 二進数形式による表記 IPアドレス形式 CIDR形式 使用できるIPアドレスの範囲
16777216 192.168.0.0/11111111.00000000.00000000.00000000 192.168.0.0/255.0.0.0 192.168.0.0/8 192.0.0.1192.255.255.254
65536 192.168.0.0/11111111.11111111.00000000.00000000 192.168.0.0/255.255.0.0 192.168.0.0/16 192.168.0.1192.168.255.254
256 192.168.0.0/11111111.11111111.11111111.00000000 192.168.0.0/255.255.255.0 192.168.0.0/24 192.168.0.1192.168.0.254
1 192.168.0.0/11111111.11111111.11111111.11111111 192.168.0.0/255.255.255.255 192.168.0.0/32 192.168.0.0


国名コード

IP アドレスから、その IP アドレスがいずれの国のネットワークが送信元かを判定できる。


特殊なIPアドレス

▼ ループバックIPアドレス (ローカルホスト)

127.0.0.1127.255.255.254 の間の IP アドレスで、自分自身を表す。

基本的には、127.0.0.1 を使用する。


02. URL、メールアドレス

URL、メールアドレスとは

ネットワーク内での位置情報である IP アドレスに紐づく。

また、ネットワーク上の IP アドレスの場所を人間がわかる識別子にしたものでもある。

よくあるメールアドレスは次のとおり。

外国人も使用する場合は、世界的に馴染みのある .com がよい。

  • <サービス名>.com
  • mail.<サービス名>.com
  • <サービス名>.co.jp
  • <サービス名>.net


URLの構造

URL は『プロトコル + 完全修飾ドメイン名 + パス』から、メールアドレスは『ユーザー名 + 完全修飾ドメイン名』から構成される。

URLと電子メールの構造


完全修飾ドメイン名

▼ 完全修飾ドメイン名とは

完全修飾ドメイン名は、ドメイン名、ホスト名からなる。

domain_namespace

▼ DNSゾーン

同じドメイン名を持つさまざまな完全修飾ドメイン名 (www.example.comwww.stg.example.comwww.dev.example.com) の集合のこと。

一般的なパブリックネットワークで使用する DNS ゾーンタイプを『パブリックゾーン』、一方でプライベートネットワークの場合を『プライベートゾーン』という。

▼ ホスト名

そのネットワークにおける具体的なサーバーを指す。

サーバーのホスト名が『www』である場合、クライアントは URL の指定時にホスト名を省略できる。

例えば、『www.example.com』という完全修飾ドメイン名を URL で指定する場合、『example.com』としてもよい。

▼ ドメイン名

所属ネットワークを指す。

▼ サブドメイン名

完全修飾ドメイン名は、ドメイン名の子関係にあるサブドメイン名を持てる。

ホスト名 (以下では省略されている) と、ドメイン名の間につける。

subdomain-name

▼ サブ-サブドメイン

サブドメインのサブドメインである。

サブ-サブドメインでネットワークするためには、以下の作業が必要である。

  1. サブ-サブドメインの親サブドメインを取得する。 (例:Amazon Route 53 ホストゾーン)
  2. サブドメインのワイルドカード証明書 (例:AWS Certificate Manager) を取得する。ドットで区切られたサブ-サブドメインを 1 つのサブドメインのように扱う (例:sub.sub.example.comsub.example.com を両方ともサブドメインとして扱う) 。
  3. 親サブドメインの DNS レコードにサブ-サブドメインを登録する。 (例:Amazon Route 53 DNS レコード)


クエリストリング

▼ クエリパラメーター

クエリストリング (? 以降) に割り当てたパラメーターをクエリパラメーターという。

GET https://example.com:80/users/777?text1=a&text2=b


▼ パーセントエンコーディング

クエリパラメーターに URL で使用できない文字がある場合、パーセントエンコーディング方式でエンコーディングする。


03. 名前解決

名前解決、正引き、逆引きとは

IPアドレスと完全修飾ドメイン名のマッピング1

URL やメールアドレスのドメイン名と IP アドレスを相互変換すること。

特に、ドメイン名を基に IP アドレスを返却させるような問い合わせを『正引き』、反対に IP アドレスを基にドメイン名を返却させるような問い合わせを『逆引き』という。

例えば、外部 Web サーバーのグローバル IP アドレスが『203.142.205.139』であると知っている場合、URL のプロトコル部分以下を『203.142.205.139』としてリクエストすれば、外部 Web サーバーが提供するサイトにリクエストを送信できる。

しかし、グローバル IP アドレスは数字の羅列であるため、人間には覚えにくい。

そこで、グローバル IP アドレスの代わりに、完全修飾ドメイン名を URL の一部として使用する。


名前解決の要素

/etc/hosts ファイル

ドメイン名と IP アドレスのマッピングを管理する。

DNS サーバへの問い合わせ前に参照する。

もし /etc/hosts ファイルで名前解決が行われた場合は、DNS サーバは使用されない。

Web サーバーの IP アドレスが DNS サーバーに登録されていないとき、または DNS サーバーが不具合のときに、DNS サーバーの代わりとして使用する。

*例*

127.0.0.1 localhost
255.255.255.255 broadcasthost
:   :1             localhost
*.*.*.* example.com
<IPアドレス> <ドメイン名>

/etc/resolv.conf ファイル

名前解決に使用する DNS サーバーの IP アドレスや、問い合わせで使用するドメイン名の後に付与する文字列を定義する。

名前解決では、/etc/resolv.conf ファイルに定義された DNS サーバへ最初に問い合わせる。

*例*

もし、example というドメイン名で問い合わせした場合、実際には example.foo が使用される。

また、この問い合わせに失敗した場合は、search 値が左から順に使用される。

nameserver  *.*.*.*
domain      foo # ドメイン名の後に付与する文字列
search      bar   baz # domain値で問い合わせに失敗した場合に使用する文字列
$ nslookup example # 実際には、example.fooとなる

▼ ドメイン

ドメインレジストラ (例:Amazon Route 53、Google Cloud DNS、お名前ドットコム) によって管理される。

▼ 名前解決の委譲

ドメインとサブドメインを異なるドメインレジストラに登録したい場合、ドメイン側のドメインレジストラにサブドメイン側の NS レコードを登録する。

これにより、ドメイン側がサブドメイン側に名前解決を委譲できるようになる。

  1. ドメインを決める
  2. ドメインを取得できていなければ、本番環境のドメインレジストリのでドメイン (***.com) を取得する
  3. 開発環境 (dev.***.com) とテスト環境 (tes.***.com) のドメインレジストラで、サブドメインを登録する
  4. 本番環境のドメイン (***.com) をドメインレジストラに登録する
  5. サブドメインの名前解決を開発環境やテスト環境に委譲するため、本番環境のドメインレジストラに NS レコードを追加する

▼ DNSサーバー (ネームサーバー、権威DNSサーバー)

『ネームサーバー』『権威 DNS サーバー』ともいう。

ドメインレジストラがドメインと合わせて DNS サーバーも管理することが多いが、DNS サーバーの管理を外部の DNS プロバイダーに委任できる (例:お名前ドットコムをドメインレジストラ、Amazon Route 53 を DNS プロバイダーとする) 。

ドメイン名と IP アドレスのマッピングを管理する。

▼ キャッシュDNSサーバー

ルートサーバーは世界に 13 機しか存在しておらず、現実的には、世界中の名前解決のすべてのリクエストを処理できない。

そこで、IP アドレスとドメイン名の関係をキャッシュするキャッシュ DNS サーバーが使用されている。

基本的には、キャッシュ DNS サーバーと DNS サーバーは区別される。

ただし、Amazon Route 53 のように、キャッシュ DNS サーバーと DNS サーバーの処理を実行できるものもある。


名前解決の仕組み

名前解決の仕組み

(1)

クライアント PC は、www.example.com にマッピングされる IP アドレスのキャッシュを検索する。

キャッシュが無ければ、クライアントPCはキャッシュDNSサーバーにドメイン名を問い合わせる。

(2)

キャッシュ DNS サーバーは、IP アドレスのキャッシュを検索する。

キャッシュが無ければ、キャッシュDNSサーバーはドメインレジストラにあるDNSサーバーにドメイン名を問い合わせる。

(3)-(9)

ドメインレジストラにある DNS サーバーは、IP アドレスを検索する。

検索してもIPアドレスが無かった場合、次のDNSサーバーに委任する。

最終的に、IPアドレスを持つDNSサーバーは、キャッシュDNSサーバーにIPアドレスを返却する。

完全修飾ドメイン名 DNSサーバーによる変換 IPアドレス
http://www.example.com 203.142.205.139
(10)

キャッシュ DNS サーバーは、IP アドレスを NAT ルーターに返却する。

この時、IPv4アドレスのネットワーク間変換が起こる。

NATルーターは、IPアドレスをクライアントPCに返却する。

(11)

クライアント PC は、返却された IP アドレスを基にして、Web ページにリクエストを送信する。