IPアドレス@L3
¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. IPアドレス¶
IPアドレスとは¶
ネットワーク内の機器の位置情報のこと。
ネットワーク内のLAN内のルーターを境に、グローバルIPアドレスとプライベートIPアドレスに分けられる。
IPアドレスの例示では、x
を使用しないようにする。
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.0 ~10.255.255.255 |
16777216 |
172.16.0.0/12 |
172.16.0.0 ~172.31.255.255 |
1048576 |
192.168.0.0/16 |
192.168.0.0 ~192.168.255.255 |
65536 |
bitとの関係¶
例えば、プライベートIPアドレスの4
個のオクテット (第一オクテットから第四オクテットまで) が1
Byteのサイズをもち、IPアドレス全体で4
Byteのサイズを持つ。
補足として、172
から始まるIPアドレスは、クラスBである。
01-02. IPアドレスの構造¶
ネットワーク部、ホスト部¶
▼ ネットワーク部、ホスト部とは¶
IPアドレスのオクテットは、ネットワーク部とホスト部に分類できる。
▼ クラスによるホスト部とネットワーク部の定義¶
IPアドレスをクラスとして分類し、各クラスでIPアドレスのネットワーク部とホスト部を定義する。
設定したIPアドレスの所属するクラスによって、使用できるIPアドレスの範囲が決まってしまう。
ホスト部とネットワーク部の定義方法が4種類しかないため、IPアドレスのパターン数 (最大パソコン数) が多すぎたり、少なすぎたりしてしまう。
使用できるIPアドレスの範囲 | クラス | ネットワーク部のオクテット | ホスト部のオクテット | 二進数で見た時 (n:ネ、h:ホ) | IPアドレスのパターン数 (最大パソコン数) | 備考 |
---|---|---|---|---|---|---|
0.0.0.0 〜 127.255.255.255 |
A | 第一のみ | 第二から第四 | 0*.*.*.* |
2^24 (16777216 ) 個 |
- |
128.0.0.0 〜 191.255.255.255 |
B | 第一から第二 | 第三から第四 | 10*.*.*.* |
2^16 (65536 ) 個 |
よく使用する |
192.0.0.0 〜 223.255.255.255 |
C | 第一から第三 | 第四のみ | 110*.*.*.* |
2^8 (256 ) 個 |
- |
224.0.0.0 〜 239.255.255.255 |
D | - | - | 1110*.*.*.* |
- | - |
240.0.0.0 〜 255.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/24 |
⇒ | 192.168.0.1 〜 192.168.0.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.1 〜 192.168.255.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.1
〜127.255.255.254
の間のIPアドレスで、自分自身を表す。
基本的には、127.0.0.1
を使用する。
02. URL、メールアドレス¶
URL、メールアドレスとは¶
ネットワーク内での位置情報であるIPアドレスに紐づき、ネットワーク上のIPアドレスの場所を人間にわかる識別子にしたもの。
URLの構造¶
URLは『プロトコル + 完全修飾ドメイン名 + パス
』から、メールアドレスは『ユーザー名 + 完全修飾ドメイン名
』から構成される。
完全修飾ドメイン名¶
▼ 完全修飾ドメイン名とは¶
完全修飾ドメイン名は、ドメイン名、ホスト名からなる。
▼ DNSゾーン¶
同じドメイン名を持つ様々な完全修飾ドメイン名 (www.example.com
、www.stg.example.com
、www.dev.example.com
) の集合のこと。
一般的なパブリックネットワークで使用するDNSゾーンタイプを『パブリックゾーン』、一方でプライベートネットワークの場合を『プライベートゾーン』という。
▼ ホスト名¶
そのネットワークにおける具体的なサーバーを指す。
サーバーのホスト名が『www』である場合、クライアントはURLの指定時にホスト名を省略できる。
例えば、『www.example.com
』という完全修飾ドメイン名をURLで指定する場合、『example.com
』としても良い。
▼ ドメイン名¶
所属ネットワークを指す。
▼ サブドメイン名¶
完全修飾ドメイン名は、ドメイン名の子関係にあるサブドメイン名を持てる。
ホスト名 (以下では省略されている) と、ドメイン名の間につける。
▼ サブ-サブドメイン¶
サブドメインのサブドメインである。
サブ-サブドメインでネットワークするためには、以下の作業が必要である。
- サブ-サブドメインの親サブドメインを取得する。 (例:AWS Route53ホストゾーン)
- サブドメインのワイルドカード証明書 (例:AWS ACM) を取得する。ドットで区切られたサブ-サブドメインを一つのサブドメインのように扱う (例:
sub.sub.example.com
、sub.example.com
、を両方ともサブドメインとして扱う) 。 - 親サブドメインのDNSレコードにサブ-サブドメインを登録する。 (例:AWS Route53 DNSレコード)
クエリストリング¶
▼ クエリパラメーター¶
クエリストリング (?
以降) に割り当てたパラメーターをクエリパラメーターという。
GET https://example.com:80/users/777?text1=a&text2=b
▼ パーセントエンコーディング¶
クエリパラメーターにURLで使用できない文字がある場合、パーセントエンコーディング方式でエンコーディングする。
- https://dobon.net/vb/dotnet/internet/urlencode.html
- https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0
- https://luozengbin.github.io/blog/2015-05-14-%5B%E8%AA%BF%E6%9F%BB%5Durl%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E5%87%A6%E7%90%86%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.html
03. 名前解決¶
名前解決、正引き、逆引きとは¶
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となる
▼ ドメイン¶
ドメインレジストラ (例:AWS Route53、Google Cloud DNS、お名前ドットコム) によって管理される。
▼ DNSサーバー (ネームサーバー、権威DNSサーバー)¶
『ネームサーバー』『権威DNSサーバー』ともいう。
ドメインレジストラがドメインと合わせてDNSサーバーも管理することが多いが、DNSサーバーの管理を外部のDNSプロバイダーに委任することもできる (例:お名前ドットコムをドメインレジストラ、AWS Route53をDNSプロバイダーとする) 。
ドメイン名とIPアドレスのマッピングを管理する。
▼ キャッシュDNSサーバー¶
ルートサーバーは世界に13機しか存在しておらず、現実的には、世界中の名前解決の全てのリクエストを処理できない。
そこで、IPアドレスとドメイン名の関係をキャッシュするキャッシュDNSサーバーが使用されている。
基本的には、キャッシュDNSサーバーとDNSサーバーは区別される。
ただし、AWS Route53のように、キャッシュ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ページにリクエストを送信する。