第6節 IP アドレスの扱い

第6節
IP アドレスの扱い
この節では、次の項目をみていく事にしよう。
・IPv4 における問題点とその対策
・可変長サブネットマスク(VLSM)
www.e-publishing.jp
■ IPv4 における問題点とその対策
IPv4 の基本設計は、研究機関のワークステーション同士をネットワーク
で結ぶことを前提とし、今日のように、ネットワークに多数のパーソナ
ルコンピュータが接続されるということは思いもよらなかった時代にな
された。
そのようなことから、今日になって、IPv4 の基本設計に根ざす問題点が
いろいろ顕在化している。
問題点1: クラス B ネットワークアドレスの不足
問題点2: ルーティングテーブルの肥大化
問題点3: IP アドレスそのものの絶対的不足(IP アドレスの枯渇)
先にみたように、クラス B というのは配置し得るホスト数が手頃なので
皆がほしがるクラスである。この結果、クラス B のネットワークアドレ
スが不足するという問題点が出てきた。
また、クラス C ネットワークの増大に伴い、ルータのルーティングテー
ブルが肥大化し、効率的なルーティングができなくなるという問題点も
出てきた。
さらに、ホスト数の爆発的増大に対し、IP アドレスそのものの絶対数が
不足するという問題点も出てきた。
根本的な解決方法はアドレス空間の拡大(IPv6 での 128 ビット拡大)を
待たなければならないが、既に広く行き渡り実働している IPv4 対応シス
テムを一気に交換する訳にもいかない。そこで、IPv4 において、限られ
た 32 ビットのアドレス空間を如何に効率的に使用するか、そのための
各種の方策(IPv4 の延命策)が講じられている。
IPv4 アドレスの割り振り機構(日本の場合)
IANA(ICANN)
割り振り
全世界の IP アドレスを管理
国際非営利法人
申請
▶ サブネット化
先にみたように、サブネット化は、本来、ホスト部として使われる領域
の一部を、サブ「副 -」・ ネット「網」として割り当てようとするもの
である。サブネット化により、ホストアドレスとしては死蔵されるおそ
れのある領域が、サブネットアドレスとしては有効に活用し得る。
RIR : Regional Internet Registry
割り振り
アジア・太平洋地域は
APNIC(エーピーニック)
申請
NIR : National Internet Registry
割り振り
日本は
JPNIC(ジェーピーニック) 申請
LIR : Local Internet Registry
割り当て
各 ISP
サービス
申込
ユーザ
企業、個人など
IANA:Internet Assigned Numbers Authority
ICANN : Internet Corporation for Assigned
Names and Numbers
APNIC : Asia Paciffic Network Information Center
JPNIC : JaPan Network Information Center
▶ CIDR(Classless Inter-Domain Routing:サイダー)
クラス A やクラス B では膨大な数のホストを配置し得ることは先にみた
通りであるが、クラス A やクラス B の IP アドレスを割り当てられてい
る組織で、それに見合った膨大な数のホストを接続して、実際に使用し
ているところは稀であろう。
従って、既に割り当ててしまった IP アドレス、特に、クラス B の IP ア
ドレスは、かなりの IP アドレスが「死蔵」されていると思われる。
IP アドレスの「死蔵」を生み出してしまった元凶は、IP アドレスのネッ
トワーク部とホスト部とを固定的なブロック単位でクラス分け(つまり、
固定長のネットマスクに基づく実装)をしてしまったことにある。
従って、今日では、その助長を避けるため、新たな IP アドレスの割り
振りに際しては、クラスの概念を取り払ったクラスレス(class-less)の
IP アドレスの割り振りが行われており、そのようなクラスレスの IP ア
ドレスをルーティングできるようにしたものが、CIDR(Classless InterDomain Routing:サイダー)である。
www.e-publishing.jp
CIDR は、名前の通り、クラスレス(classless)ルーティング、つまり、
クラス概念が存在しないルーティングである。
一方、従来のクラス概念によるルーティングは、クラスフル(classful)
ルーティングと呼ばれる。
クラスフル ルーティングでは、ルータは、次の表に示すように、IP アド
レスのクラス別を先頭部の3ビットで判断し、それに基づき、固定長の
ネットマスクをかけてネットワーク部を識別する。
IP アドレスの先頭部
クラスの別
ネットマスク
0
クラス A
255.0.0.0
10
クラス B
255.255.0.0
110
クラス C
255.255.255.0
クラスフル ルーティング
・(ネットマスク自体は伝達できず)IP アドレスの
先頭部3ビットでクラス分け
・ルータでは、そのクラスに基づき、
固定的なネットマスクを当てがって、
ネットワークアドレスを識別
・ルータは、自分が属するネットワークアドレス
以外は、サブネットとして認識できず。
クラスレス ルーティング
・ルーティング情報に、
可変長のネットマスク情報(プリフィックス長)
を含めて各ルータに伝達でき、
・ルータでは、そのプリフィックス長分を、
ネットマスクとして IP アドレスに当てがって、
ネットワークアドレスを識別
・可変長ネットマスクに基づき、柔軟でかつきめの
細かいアドレスの割り振りが行える。→ VLSM
例えば、210.148.212.0 の場合、210 は「11010010」ゆえ、先頭部は「110」
で始まり、クラス C に該当する。
従って、この場合は固定長ネットマスク「255.255.255.0」をかける。
これにより、この場合には、1つの IP アドレス 210.148.212.0 と、
そのネットワークのもとに 28 ­2= 254 台のホストを配置し得る。
IP アドレス:
210
148
212
0
IP アドレス ( ビット列 ): 11010010 10010100 11010100 11000000
ネットマスク(bit): 11111111 11111111 11111111 00000000
ネットマスク:(/24) 255 255 255 0
これに対し、クラスレス ルーティングにおいては、プリフィックス長を
ルーティング情報に含めることにより、固定的な「/ 24」に縛られず、
210.148.212.0 / 27 といった任意の長さのネットマスクをかけることが
できる。(従って、クラスレス ルーティングを行うには、ネットマスク
情報を運べるルーティング プロトコルと、そのルーティングプロトコル
を「話す」ことが出来るルータを使用する必要がある。)
IP アドレス:
210
148
212
0
IP アドレス (bit):
11010010 10010100 11010100 00000000
CIDR では、クラスの概念に縛られないので、例えば、
ネットマスク (bit): 11111111 11111111 11111111 11100000
210.148.212.0 / 22 というように、プリフィックス
ネットマスク:(/27)
255
255
255
224
スーパーネット(supernet)
長を 24 未満とすることも可能である。
このように、クラス概念によるマスク長よりも短い
210.148.212.0 / 27 では、従来のクラス C であったならホスト部とされ
ていた第4オクテットの上位3ビットをネットワーク部に当てることに
んでいる。スーパーネット化することにより、経路
より、新たに 23 = 8 個のネットワークアドレスを作り出すことが出来る。
マスク長で表すネットワークをスーパーネットと呼
が集約され、効率的なルーティングが可能となる。
(スーパーネット化の例)
このように、CIDR では、可変長ネットマスクをかけることによって、
アドレス領域を1ビット単位できめ細かくネットワークアドレスとする
場合、第1、第2オクテットの 16 ビットと第3オ
ことが可能であり、限られたアドレス空間を無駄無く利用できる。
210.148.213.0、210.148.214.0、210.148.215 の
クテットの上位6ビットまでの計 22 ビットが共通
なので、これらは、210.148.212.0 / 22 にスーパー
ネット化(つまり、集約化)できる。
・212 → 11010100
・213 → 11010101
・214 → 11010110
・215 → 11010111
また、CIDR では、各インターネット・サービス・プロバイダ(ISP)に、
例えば「/16」といったブロック単位でアドレス空間を割り振ることによ
り、各 ISP は連続したネットワークアドレスを体系的に管理できるよう
になるので、経路が集約(aggregate)され、ルータのルーティング テー
ブルの肥大もある程度抑制される。
www.e-publishing.jp
▶ IP アドレス割り振りのルール変更
従前どおり、IP アドレスの割り当てを個別に(無秩序に)行ってしまう
「無秩序に」とは
と、IP アドレスの死蔵やルーティングテーブルの肥大が一層深刻化する。
「物理的な接続状態と、論理的なネットワークアド
レスとが全く無関係に」割り当てられることである。 そこで、IP アドレスの割り振りのルールを変更し、連続的な IP アドレ
例えば、地理的には地球の反対側に位置する組織な スのブロックを ISP ごとに割り振るようにし、さらに、ISP はアクセス
のに、ネットワークアドレスでは、隣同士の番号と
ポイントの地理的位置を考慮してユーザに割り当てるようにする。
いったことである。
これによって、電話番号のように、IP アドレスが地域ごとに経路集約
このような割り当てをすると、ルータのルーティン
(aggregate)
され、ルーティングテーブルの肥大化をある程度抑制できる。
グテーブルが肥大化して、ルーティングが非効率と
なり、ネットワーク管理も煩雑になってしまう。
プライベートIPアドレス
プライベートIPアドレスには、
次のような番号を用いることが推奨されている。
プライベートIPアドレス
ネットマスク
0.0.0 ∼ 10.255.255.255
255. 0.0.0
172. 16.0.0 ∼ 172. 31.255.255
255.240.0.0
192.168.0.0 ∼ 192.168.255.255
255.255.0.0
10.
▶ プライベート IP アドレスと NAT の利用
今までみてきた IP アドレスは、グローバル IP アドレス(又はパブリッ
ク IP アドレス)と言われ、全世界規模でユニークに割り当てられるアド
レスである。
しかし、私的なネットワーク内だけで通信する場合やポイント・ツー・
ポイントのリンクでは、その中だけでホストのアドレスが区別できれば
よいのであり、貴重なグローバル IP アドレスをわざわざ用いる必要は無
い。そこで、そのようなネットワーク内では、プライベート IP アドレス
を用いるようにする。
これらのアドレスを持ったパケットは、
外部のインターネットに接続する境界ルータ
(NATを
設定したルータ)
で遮断され、
フォワーディングされない。
ルータ
スイッチングHUB
…
プライベート IP アドレス
スタティック NAT とダイナミック NAT
NAT の設定にはスタティックとダイナミックとが
ある。プライベートネットワーク内と外部との間
にセッションを確立したい場合には、プールされ
たグローバル IP アドレスの一部をスタティックに
(固定的に)設定する。
インターネット
グローバルIPアドレス
210.148.212.32 / 27
境界ルータ
NATを設定
192.168.1.0
プライベートIPアドレス
192.168.1.1 ∼
スイッチングHUB
・・・
192.168.1.1
192.168.1.2
・・・
NAT の変換例
192.168.1.1 → 210.148.212.35
192.168.1.2 → 210.148.212.40
プライベート
IP アドレス
スイッチングHUB
…
グローバル IP アドレス
P-P
ルータ
インターネット
スイッチングHUB
…
グローバル IP アドレス
プライベート IP アドレスは、あくまで「内輪」だけのアドレスなので、
外部のインターネットとやりとりするには、グローバル IP アドレスとの
変換が必要になる。
このグローバル IP アドレスとプライベート IP アドレスとの変換をする
機能が、NAT:Network Address Translation(ナット)である。
NAT 対応のルータでは複数のグローバル IP アドレス(通常はサブネッ
トの範囲)のプールが可能であり、外部と通信するときだけプライベー
ト IP アドレスに1:1で変換する。当然、プールされたグローバル IP
アドレスは全クライアント分は無いのであるが、全クライアントが同時
に外部のインターネットにアクセスすることは稀なので、少ないグロー
バル IP アドレスのプールで済むのである。
左に、210.148.212.32 / 27 というグローバル IP アドレスを割り当て、
プライベート IP アドレス範囲に 192.168.1.0 ∼を用いた例を示す。
210.148.212.32 / 27 によって、25 − 2 = 30 個のグローバル IP アドレ
スをプールできるので、プライベート ネットワーク側からは、同時に
30 台のホストが外部のインターネットにアクセスできる。
副次的効果として、NAT を設定した LAN では、セキュリティ性を高め
ることにができる。何故なら、プライベート IP アドレスを割り振ったホ
ストに対しては、外部のインターネットから直接アクセスすることはで
きないからである。(たとえプライベート IP アドレスが特定されたとし
ても、プライベート IP アドレスを使用したパケットは、インターネット
上では破棄されてしまうので、インターネットを介した攻撃は不可能。)
www.e-publishing.jp
NAPT の変換例
192.168.1.1:1234 → 210.148.212.3:1234
192.168.1.2:1235 → 210.148.212.3:1235
↑
↑
ポート番号
ポート番号の違いにより
同じ IP アドレスを区別する
・ 宛先IPアドレス: 255.255.255.255
・ 宛先MACアドレス: FF-FF-FF-FF-FF-FF
・ 送信元IPアドレス: 0.0.0.0
・ 送信元MACアドレス: LANカードのもの
DHCP
サーバ
UDPパケット
UDPパケット
LANカード
DHCP
クライアント
DHCPクライアントの
IPアドレスを指定
モバイル端末
・ 宛先IPアドレス: 255.255.255.255
・ 宛先MACアドレス: FF-FF-FF-FF-FF-FF
・ 送信元IPアドレス
: 0.0.0.0
DHCP
・ 送信元MACアドレス
: LANカードのもの
クライアント
DHCP
DHCP
サーバ
サーバ
▶ NAPT(Network Address Port Translation)
NAT は、インターネットとプライベートネット間で、IP アドレスについ
てのみ1:1の変換をするものなので、より多数のホストが同時にイン
ターネットにアクセスする場合には不十分である。
そこで、IP アドレスの変換に加え、IP アドレスとポート番号の対(ソケッ
ト:socket と呼ばれる。)により、1:多の通信を可能にしようとするのが、
NAPT(Network Address Port Translation)である。
一般に、NAPT では1つのグローバル IP アドレスが使われる。
なお、NAPT は、IP マスカレード、拡張 NAT、NAT Plus などと呼ばれ
る場合もある。因に、マスカレード (masquerade) とは「仮装舞踏会」
の意味で、Linux 上で動作するソフトウエアの一つとして開発されたも
のの名に由来する。
▶ DHCP(Dynamic Host Configuration Protocol)
DHCP の主たる目的は、LAN に接続されたクライアントに IP アドレス
等を動的に(ダイナミックに)割り当てることである。
つまり、DHCP では、クライアントとなる端末が LAN に接続されると、
IP アドレスがプールされた DHCP サーバから動的に IP アドレスが貸し
出(lease:リース)され、終了時すると返却される。
従って、DHCP の利用によって、ネットワークアドレス管理作業の大幅
な節減になると共に、IP アドレスの有効利用にもなっている。
因みに、DHCP クライアントと DHCP サーバとの距離は近いので、
DHCP のトランスポート層プロトコルには UDP が用いられている。
DHCP は、LAN(有線、無線)だけでなく、WAN において ISP がユー
ザ側に IP アドレスを割り当てる際にも利用されている。
また、小規模なネットワーク向けに、DHCP を実装したルータも市販さ
れている。
DHCP サーバの IP アドレスや、クライアントにリースする IP アドレス
のリース期間等は、コマンドラインから「>ipconfig /all」と入力するこ
UDPパケット
とにより表示することできる。DHCP におけるクライアント側設定パラ
動的に IP アドレスが変化したのでは不都合な場合
DHCP-OFFER(U)
IPアドレスの
DHCPクライアントの
リースを提示
メータには、IP アドレスを始めとして、次に示すようなものがある。
LANカード
(例:サーバ、ルータ、ネットワークプリンタ等の
IPアドレスを指定
DHCP を使用しない場合
UDPパケット
DHCP-DISCOVER
(B)
IPアドレスの
DHCP
では動的に IP アドレスを割り当てるが、
リースを要求
提示された
DHCPDHCP-REQUEST(B)
IPアドレスの
IP アドレス)は手動で、
静的(static)に割り当てる。
クライアント
使用許可を
要求 モバイル端末 DHCP-ACK(U)
IPアドレスの
使用を了解
B:Broadcast
U:Unicast
DHCP
クライアント
IPアドレスの
リースを要求
DHCP
サーバ
DHCP-DISCOVER(B)
DHCP-OFFER(U)
提示された
IPアドレスの
使用許可を
要求
DHCP-REQUEST(B)
DHCP-ACK(U)
B:Broadcast
U:Unicast
IPアドレスの
リースを提示
IPアドレスの
使用を了解
・IP アドレスとそのリース期間
・サブネットマスク
・デフォルトゲートウェイの IP アドレス
・DNS サーバの IP アドレス
DHCP における IP アドレス等のリースは、左に示すように行われる。
まず、DHCP クライアントは、ネットワーク上に DHCP-DISCOVER を
ブロードキャストして、IP アドレスのリースを要求する。
それに対し、ネットワーク上の DHCP サーバ(あるいはルータ)は、
手持ちの IP アドレスのリースを提示した応答:DHCP-OFFER を返す。
それに対し、DHCP クライアントは、提示された IP アドレスを使用する
場合には、その使用許可:DHCP-REQUEST を DHCP サーバに求める。
このように、DHCP クライアント側から、IP アドレスの使用許可をわざ
わざ要求する理由は、DHCP サーバは非常に重要なので、ネットワーク
上に複数台設置される場合があり、何れの提示を受け入れるかを明確に
DHCP サーバ側に伝える必要があるからである。
www.e-publishing.jp
可変長サブネットマスク(VLSM)故、当然!
VLSM は、特別、革新的な技術という訳ではなく、
クラスレスルーティングの所産に他ならない。
クラスレスルーティング、つまり、ネットマスク
情報(可変長のプリフィックス長)を、ルーティ
ング情報に含めて伝達できるルーティングプロト
コルでは、IP アドレスのネットワーク部を、可変
長のネットマスクにより連続的に切り出すことが
■可変長サブネットマスク(VLSM:Variable Length Subnet Mask)
可変長サブネットマスク(VLSM)は、サブネット部分をさらにサブネッ
ト化(サブ - サブネット化)し、ネットワークの状況に合わせて、より
柔軟にアドレス設定して IP アドレスを無駄なく効率的に使おうとする技
術である。IPv4 から IPv6 への過渡期の技術の一つとして位置づけられる。
具体例をみていこう。
クラス C アドレス「210.148.212.0/24」を使って、次に示すようなネッ
トワークに IP アドレスを割り振ってみよう。
できるので、その可変長サブネットマスクに基づ
いた柔軟なアドレスの割り振りは、必然的に可能
ルータ A
なことである。
30
ルータ B
ルータ C
30
30
ルータ D
ルータ E
30
30
LAN については、現在ではバス型 LAN を使うことは稀であるが、LAN
のシンボルマークとして「
」といった表示をしている。
また、図中の数値は LAN に接続すべきホストの台数を表している。
各 LAN に 30 台のホストを接続できるようにするには、
2 ­ 2 = 30 より、
ルータ A
ホスト部には5ビットを確保する必要がある。
従って、サブネットを構成するに際しては、第4オクテット目の上位3
30
ビットをサブネットに割り振り、残りの5ビットをホストアドレスに割
ルータ B
ルータ C
り振ることになる。
5
適用するネットマスクの長さ
・ホスト数が少ないネットワーク → 長いマスク
・ホスト数が多いネットワーク → 短いマスク
第1オクテット
30
第2オクテット
30
第3オクテット
第4オクテット
���
���
���
�
� � � � ルータ
� � �D� � � � � � � � � � � � � � � � � ルータ
� � �E � � � � �
30
・サブネット 0: 210.148.212. 0
・サブネット 1: 210.148.212. 32
・サブネット 2: 210.148.212. 64
・サブネット 3: 210.148.212. 96
・サブネット 4: 210.148.212.128
・サブネット 5: 210.148.212.160
・サブネット 6: 210.148.212.192
・サブネット 7: 210.148.212.224
30
サブネット
/
/
/
/
/
/
/
/
ホスト
27
27
27
27
27
27
27
27
これらのサブネットのうち、サブネット 0 は、かつては、ネットワーク
とサブネットが同じアドレスのときに、混乱が起こるかもしれないとの
懸念から、使用しないことが推奨されていたので、一応、ここでも使用
しないこととする。
(現在では、ネットワーク・テクノロジーの進歩により使用できる。)
www.e-publishing.jp
これらのサブネットアドレスを各 LAN(ルータの LAN インタフェース)
に割り当てた一例は、次の図のようになる。
ルータ A
�����������������
ルータ B
ルータ C
�����������������
�����������������
ルータ D
ルータ E
������������������
������������������
次に、ルータ同士を結ぶポイント・ツー・ポイント接続(ルータのシリ
アルインタフェース)にアドレスを割り振ってみよう。
残るサブネットアドレスは次の2つで、何れも 30 個のホストアドレス
を得ることができる。
・210.148.212.192 / 27
210.148.212.193 ∼ 210.148.212.222 の 30 個
210.148.212.223 はブロードキャスト
・210.148.212.224 / 27
210.148.212.225 ∼ 210.148.212.254 の 30 個
210.148.212.255 はブロードキャスト
一方、アドレスを割り振るのは4箇所であり、1つのポイント・ツー・
ポイント接続部分のアドレスは2つあればよく、30 個もいらない。
そこで、上記のサブネットをさらに細分化することを考える。
ポイント・ツー・ポイント接続部分に必要なアドレスは2つなので、
22 ­ 2 = 4 ­ 2 = 2 より、ホストビットには2ビットを割り振る。
従って、プリフィックスは「/30」とし、上記の2つのアドレスのうち
の1つをさらに細分化した「210.148.212.192/30」について考える。
これは、サブネットをさらにサブネット化したサブ - サブネットとも言
うべきものである。
第1オクテット
第2オクテット
第3オクテット
第4オクテット
���
���
���
���
� � � � � �� � � � � � � � � � � � � � � �� � � � � � �� � �
サブ サブ - サブ
ネット ネット
・ サブ - サブネット 0:
・ サブ - サブネット 1:
・ サブ - サブネット 2:
・ サブ - サブネット 3:
・ サブ - サブネット 4:
・ サブ - サブネット 5:
・ サブ - サブネット 6:
・ サブ - サブネット 7:
210.148.212.192
210.148.212.196
210.148.212.200
210.148.212.204
210.148.212.208
210.148.212.212
210.148.212.216
210.148.212.220
/
/
/
/
/
/
/
/
30
30
30
30
30
30
30
30
www.e-publishing.jp
ルータ同士のポイント・ツー・ポイント接続は4箇所あるので、これら
サブ - サブネットのうちの4つを選んでアドレスに割り振ればよい。
����
������������������
����
ルータ B
����
ルータ A
����
������������������
����
ルータ C
����
������������������
������������������
����
����
ルータ D
ルータ E
上図で、例えば、「.193」は「210.148.212.193/30」の意味である。
このように、可変長サブネット(VLSM)では、サブネットマスク(プ
リフィックス長)を柔軟に変え、一つの自律システム内で異なるサブネッ
トマスクを使用することができ、IP アドレスを無駄無く利用できる。
ところで、VLSM を実現するには、ルーティング・プロトコル(ルータ
同士がネットワーク情報を交換するのに使用するプロトコル)が VLSM
をサポートし、かつ、利用するルータがそのルーティング・プロトコル
を扱える(話せる)必要がある。
VLSM をサポートしているルーティング・プロトコルには、RIP2 や
OSPF がある。
収束(convergence)とは
同一システム内の全てのルータに適切な経路情報が
行き渡ること。
コンバージェンスまでの時間が大きいと、システム
内ルータのルーティング・テーブル間に矛盾を来し、
ルーティング・ループが発生する場合がある。
*経路集約(route aggregation)
経路要約(route summarization)とも言われる。
規模の大きなネットワークにおいて、VLSM を使用できるときには、
同一ルータに収容するホストには、なるべく上位ビットが共通した
アドレスを割り振るようにし、経路を集約することが重要である。
経路集約によって、ルータのルーティングテーブルへのエントリ数を
減らすことができ、効率的で迅速なルーティングと収束(convergence)
までの時間短縮が可能となる。
例)132.151.90.0 / 24 ∼ 132.151.95.0 / 24 を集約したアドレス
はどうなるだろうか?
第3オクテットのビット列は次のようになる。
90 → 01011010
95 → 01011111
これより、共通するビット列は上位5ビットまでである。
従って、01011 000 → 88 より、
集約したアドレスは、132.151.88.0 / 21 となる。
www.e-publishing.jp