目 次
目 次/関連項目

1.7 IPアドレスの枯渇問題

 1.3節で少し触れたように、近年のホストの急増によるIPアドレスの不足が問題になっている。1.3節で紹介したCIDRはこの問題の解決策の1つである。次に紹介するNATやIPマスカレードもIPアドレスの枯渇問題における解決策の1つである。


1.7.1 NATとIPマスカレード

 IPアドレスには誰もが自由に使用することができるプライベートIPアドレスがある。NAT(Network Address Translator)はこのプライベートIPアドレスを利用したプロトコルである。NATは内側(ローカル)のネットワークのホストにはプライベートIPアドレスを割り当て、外側(グローバル)のネットワークに接続する時にグローバルIPアドレスに変換する(図1.7.1)。このように、NATはホストが外部のネットワーク(Internet)に接続するときにグローバルIPアドレスを割り当てるプロトコルである。この変換処理はルータで行われる。ただし、その際に使用するルータはNATに対応している必要がある。

図1.7.1:NATの仕組み


 NATを用いると外部から内部のネットワークに直接アクセスすることができないので、内部のセキュリティを高めることができる。

 ただし、NATの場合、複数のホストが同時に1つのグローバルIPアドレスを持つことはできない。NATルータがどのホストにパケットを返せばよいか判断できなくなるためである。つまり、NATはプライベートIPアドレスとグローバルIPアドレスは1対1の関係にある(図1.7.2)。

図1.7.2:NATはホストの数だけグローバルIPアドレスが必要



 これを改良したのがIPマスカレード(IP masquerade)である。IPマスカレードではIPアドレスに加えて、TCPおよびUDPで使用されるポート番号も変換する。IPアドレスだけでは、どのホストからのパケットかを理解することができないのでポート番号を内部ホストの識別子として利用する。IPマスカレードでは1つのグローバルIPアドレスで複数のホストを同時にインターネットに接続することができる。

図1.7.3:IPマスカレードでは1つのグローバルIPアドレスで済む


 IPマスカレードは正式にはNAPT(Network Address Port Translation)というが、IPマスカレードと呼ばれることが多い。また、NATとIPマスカレードを区別せずに、単にNATと呼ぶときもある。

 NATについてはRFC 1631/2663で規定されている。


1.7.2 IPv6

 NATやCIDRなどはIPアドレスの枯渇問題における短期的な解決方法に過ぎない。IPアドレス枯渇問題の根本的な解決方法として、IPそのものを新しく変えてしまおうという試みがすでに始まっている。これがIPv6(IP version 6)がある。

 IPv6ではIPアドレスのアドレス長以外に、将来のネットワークに耐えられるように様々な改良が施されている。以下にIPv4との違いを中心にIPv6の特徴を説明する。IPv6の基本RFCはRFC 1883である。

 IPv6のヘッダフォーマットを下の図に示す。

0 4 8 12 16 20 24 28    31
Version
(バージョン)
Traffic Class
(トラフィックスクラス)
Flow Label
(フローラベル)
Payload Length
(ペイロードの長さ)
Next Header
(次のヘッダ)
Hop Limit
(最大ホップ数)
 
Source Address
(送信元IPアドレス)
 
 
Destination Address
(宛先IPアドレス)
 
Next Header
(次のヘッダ)
Options
(オプション)
 
Data
(データ)

図1.7.4:IPv6のヘッダフォーマット

 また、IPv6はIPv4と比べて以下のような改良が施されている。

  • アドレスの領域が128ビット
     
     IPアドレスの領域がIPv4の32ビットから128ビットに拡張された。これによりIPアドレスが枯渇して足りなくなるような問題はなくなる。また、表記方法も従来の10進数の表記から16進数での表記に変わった。16進数で4桁ずつ" : "(コロン)で区切る。
     
     例:1234:5678:9ABC:DEF1:2345:6789:ABCD:EF12

     また、次のように0が続く場合、0は省略できる。コロンを2つ続けて書くとそこに0が入るという意味になる。

     例:1234:0:0:0:0:0:3AAC:F34A → 1234::3AAC:F34A

     しかし、省略できるのは一箇所のみ次のような省略はできない。

     例:1234:0:0:0:223C:0:0:AAA1 → 1234::223C:AAA1 (これはできない)

     この場合、省略すると次のどちらかになる。
     
     例:1234:0:0:0:223C:0:0:AAA1 → 1234::223C:0:0:AAA1
       1234:0:0:0:223C:0:0:AAA1 → 1234:0:0:0:223C::AAA1

  • IPアドレスの管理の簡略化
     
     IPv4の場合、企業のLANなどではIPアドレスを管理するサーバ(これをDHCPサーバと呼ぶ)から自動的にIPアドレスを取得するか、管理者からIPアドレスを聞いて、手動で設定するなどしてIPアドレスを取得していた。

     IPv6では上位64ビットがネットワークアドレス、下位64ビットがホストアドレスとなり、下位64ビットはホストのMACアドレスが入り、上位64ビットはルータからネットワークアドレスを取得する。つまり、ルータに接続した瞬間にIPアドレスを取得できるようになる。これによりIPアドレスの管理が簡略化し、管理者の負担が軽減される。このようにルータからIPアドレスを取得する方式をRA(router advertisement)方式という。

0 32 64 96

127

上位64ビット:ネットワークアドレス
ルータから取得する
下位64ビット:ホストアドレス
MACアドレスが入る
図1.7.5:IPv6におけるネットワークアドレスとホストアドレス


  • ヘッダフォーマットの簡略化
     
     IPv4にヘッダにあるフィールドのいくつかは、削除されるか任意使用に変更されている。例えばチェックサムはIPv6では削除されている。これによりルータでチェックサムを計算する必要がなくなりルータでの処理が短縮される。