ネットワークスペシャリスト - SE娘の剣 -

ネットワークスペシャリストの試験対策サイト(by 左門至峰の株式会社エスエスコンサルティング)です。ネットワークスペシャリスト試験の 勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの情報を掲載します。試験対策セミナー・研修も行っております。 ネットワークスペシャリスト試験対策・勉強なら左門至峰の最も詳しい過去問解説「ネスペ」シリーズ(技術評論社)で!!

IPv6

1.IPv6基礎

1.IPv6とは

▼IPv4と比べた特徴
(1)長さ
・v4が32ビット v6は128ビット

(2)ヘッダ
・ヘッダがシンプルに(IHL、ID、フラグ、フラグメントオフセットなど7つを廃止)
・v4のヘッダ 20バイト v6のヘッダは40バイト(IPアドレスが16バイトに増えているので、ある意味仕方がない)
・v6はヘッダが固定長(意味を確認中)

(3)機能
・モバイルIP
・IPsec対応(ESP、AH)
拡張ヘッダにて利用可能である。
・NAPTが不要になる。

ネットワークスペシャリスト試験の過去問(H19NW午前 問25)にIPv6とIPv4の違いに関する出題があるので引用する。正解を導くだけでなく、他の選択肢がなぜ間違っているかも考えてみよう。

【H19NW午前 問25】
IPv6においてIPv4から仕様変更された内容の説明として、適切なものはどれか。

ア IPヘッダのTOSフィールドを使用し、特定のクラスのパケットに対する資源予約ができるようになった。
イ IPヘッダのアドレス空間が、32ビットから64ビットに拡張されている。
ウ IPヘッダのチェックサムフィールドを追加し、誤り検出機能を強化している。
エ IPレベルのセキュリティ機能(IPsec)である認証と改ざん検出機能がサポート必須となり、パケットを暗号化したり送信元を認証したりすることができる。






IPv6では、TOSフィールドやチェックサムフィールドはありません。
また、IPアドレス空間は、128ビットです。
さて、正解ですが、エです。

▼IPv6におけるIPアドレスの設定
(1)手動による設定
 手動にて固定で設定する。従来、パソコンにて固定IPを手動で設定したのと同じ。
(2)自動で設定
 ①DHCPサーバからの取得
  IPv4と同様。ステートフルという
 ②DHCPなしで自動設定する
 ステートレスという。IPv6対応のルータからデフォルトゲートウェイやサブネットマスク情報を自動で取得する。過去問では、IPv6に関して「IPアドレスを端末に自動設定することが可能である。(H20NW午前 問27)」と述べている。

▼NGN回線への接続
NGNでは、IPv4とIPv6の両方のIPアドレスが割り当てられる。
NTTのフレッツスクエアネクストなど、NTT内の専用サイトに接続する場合はIPv6を利用する。
プロバイダと接続する場合は、さらにIPアドレスが割り当てられる。よってセッションを複数持つことになる。
また、IPv6のIPアドレスを払いだすプロバイダもある。マルチプレフィックス問題に発展している。

▼IPv6への対応
IPv6に対応しなければいけないものは何か。基本的に全てであるが、具体的に見ていこう。
(1)ネットワーク回線
線そのものはLayer1なので、IPv6だろうがIPv4だろうが関係ない。とはいえ、回線を提供するキャリアの網がIPv6に対応していなければ使えない。IPv6のサービス提供をうけ、IPv6のIPアドレスの払い出しを受ける必要がある。

(2)ネットワーク機器
ルータやスイッチ、家庭におけるIPv6対応ルータ、Firewallなどのセキュリティ製品。ほとんどの機器はかなり前からIPv6に対応している。なので、機器を入れ替えなくてもいいかと思う。ただ、設定変更は必要。IPv6の設定を入れなおす必要があり、全ての機器に設定するとなると、結構大変。IPv4とIPv6は混在できるので、便利ではある。

(3)サーバやパソコン
IPv4とIPv6はアドレスが違うため、NICを分ける必要があるか?とうと、そうではない。混在できるし、ほとんどがIPv6対応である。WindowsVistaなどの家庭用PCでも、標準でIPv4とv6のデュアルスタックが可能である。なので、設定変更だけでIPv6化できる。

GoogleはIPv6に対応したサイトを構築
http://ipv6.google.com
これは、IPv6でしか見ることができない。今のネットワークはほとんどIPv4なのだから、経路の途中はIPv4しかない場合も多いだろう。そこで、IPv4網をIPv6で通すためには、6to4によるトンネリング(またはカプセル化)を使う。

▼IPv6セキュリティ
ヘッダが拡張されていたり、変更されている機能部分で、IPv4とは違ったセキュリティを考慮するが必要になる。
より注意が必要という感じである。

2.IPv6のアドレス表記

IPv6は、128ビットの値を16ビットずつ「:」を使って8つに区切り、16進数で表す。
まずは過去問(H25秋FE午後問3)を見てみましょう。

IPv6では, 128ビットを16ビットごとに区切り,各16ビット(以下,16ビットセクションという)を16進数で表し,区切りにコロン(:)を使用する。また,次の規則を使用してアドレスを表現する文字列を圧縮できる。
 (1)各16ビットセクションの先行する0を省略する。例えば, 0012は12になる。 ただし,16ビットセクションが0000のときは,0とする。
 (2)0の16ビットセクションが連続する場合は,連続する2個のコロン(::)で表す。 例えば, 2001:0db8:0000:0000:0000:ffee:0042:8329は2001:db8::ff00:42:8329と表す。ただし,::は1か所にだけ使用できる。

 IPv6もIPv4と同様に,アドレスはネットワークを表す部分とホストを表す部分から成る。IPv6では,ネットワークの部分が何ビットで表されるかを示すのにプレフィックス長が用いられる。プレフィックス長は,先頭からのビット数を10進数で表したものである。アドレスとプレフィックス長は,スラッシュ(/)で区切る。例えば, 2001:db8:abcd:12::/64では,プレフィックス長は64であり,先頭から64ビットがネットワークアドレス部であることを表している。


・[プレフィックス 64ビット][インターフェースID 64ビット]
・プレフィックスはネットワークアドレスとも言われ、ネットワークを表す。
・インターフェースIDはホスト(端末)を表す。ホストには複数IFが割り振られ、異なるIPアドレスを持つので、ホストIDではなくインターフェースIDとなった。
・インターフェースIDは固定で設定する方法と、自動で割り当てる方法がある。
自動の場合、MACアドレス48ビットをもとに作るEUI-64がある(後述)

(2)表現方法
2バイトづつで表現する。
例 1111:2222:3333:4444:5555:6666:7777:8888
ループバックは
::1/128

(3)省略のルール
・0で始まる場合、0を省略。(例) 0012 → 12 
これはIPv4でも同じ。192.168.001.001とは書かない
※終わりの0は省略できない。
・すべて0は:0:で省略 (例):0000: → :0:
・連続する:0:は::に省略可能。(例):0:0:0:0: → ::
※ただし1回だけ
実際の例でやってみましょう。
0012:0000:0000:0000:ABCD:0000:0000:1200
→12::ABCD:0:0:1200
2

デフォルトルートはどう書くのですか?
参考までに、Ciscoルータでデフォルトルートを書く場合は以下のようになります。
 Router(config)#ipv6 route ::/0 インターフェース名

3.IPv6アドレスの種類

▼IPv6アドレスの種類
IPv4との比較も含めて、以下の表に記載する。

  IPv4 IPv6
ユニキャスト ・グローバルユニキャストアドレス
・ユニークローカルユニキャストアドレス 
・リンクローカルアドレス(リンクローカルユニキャストアドレス)
マルチキャスト マルチキャストアドレス
ブロードキャスト 廃止
エニーキャスト -


❶ユニキャスト
IPv4と同じで、一つのアドレスに送信する。
2001::/16など
以下の3つがある。
・グローバルユニキャストアドレス(IPv4でいうグローバルIP)
・ユニークローカルユニキャストアドレス(IPv4でいうプライべ―トIP) 
・・リンクローカルアドレス(リンクローカルユニキャストアドレス)(IPv6独自の概念)
→参考ですが、IPv4における169.254.X.XのIPアドレスは、APIPA(Automatic Privete IP Addres)による自動プライベートIPアドレス、リンクローカルアドレスと呼ばれます。

❷マルチキャスト
IPv4(224.0.0.0/4)と同じで、複数のアドレスに送信する。
ffで始まる。
例1 ff02::1(全ノード向け。v4のブロードキャストと同じ)
例2 ff02::2(全ルータ向け。)
※ちなみに※fは「1111」である。

❸ブロードキャスト
IPv6からは無くなった。マルチキャストとエニーキャストがカバーするが、基本的にはマルチキャストが対応する。

❹エニーキャスト

IPv4アドレスでは、PC(正確にはPCのNIC)ごとにIPアドレスが割り当てられ、重複は許されませんでした。
IPv6のエニーキャストアドレスは、IPv6で新たに定義された、複数のPCに割り当てられた同一のIPアドレスです。(つまり、一つのIPを複数の端末が共有する。)
ブロードキャストと違い、応答するのは一番近いIFのみが応答する。近いというのはもちろん、ネットワーク的に近いという意味。(ルーティングの距離やコストをイメージしてください)

ネットワークスペシャリストを目指す女性SEあれ 

グループに共通のIPv6アドレスが割り振られるのですか?
そういうことになる。そのエニーキャストアドレス宛に通信をすると、グループの端末のどれかが応答する。
例として、DNSサーバで考えてみましょう。ユニキャストであれば、1台のDSNサーバとしか通信ができません。エニーキャストを使えば、グループのどれかのDNSサーバが応答するので、冗長化および負荷分散がもできます。
ただ、実際の機器でこのエニーキャストアドレスを実装している例は多くありません。

■ループバック
IPv4 127.0.0.1など(?)
IPv6 ::1/128 ※0000・・・0001

▼スコープ
スコープという概念ができた。これは、IPv4にはない。
❶リンクローカルスコープ
あるリンクのみで利用される。ルータを超えない。
(例)リンクローカルアドレス
リンクローカル(ブロードキャストドメイン内の、隣接するネットワーク)で利用できるIPアドレス。
これがあれば、ルータなどで区切られていないネットワーク内の通信が可能になる。
アドレス体系はfe80::/10 
プレフィックスは常にfe80::/64 

❷グローバルスコープ
通常のアドレス
例、グローバルユニキャストアドレス

4.プライベートアドレスとグローバルアドレス

以下に整理してみた

  IPv4 IPv6
プライベートアドレス クラスA:10.0.0.0/8
クラスB:172.16.0.0/12
クラスC:192.168.0.0/16
ユニークローカルユニキャストアドレス
fd00::/8が自由に利用できる。
グローバルアドレス 上記以外 グローバルユニキャストアドレス
2000::/3 ※二進数では「001」で始まる
(リンクローカルアドレス) APIPA(Automatic Privete IP Addres)に
よる自動プライベートIPアドレス
169.254.X.X
リンクローカルユニキャストアドレス
fe80::/10

1

プライベートアドレス(ユニークローカルユニキャストアドレス)とリンクローカルアドレスの使い分けがよく分かりません。
リンクローカルアドレスは、IPv4のプライベートアドレスやグローバルアドレスとは別に、常に設定される。たとえば、ユニークローカルユニキャストアドレスを設定してみよう。
ネットワークの設定でIPv6アドレスを設定する。(※アドレスは過去問のものを拝借)
ipv6
以下のように、ユニークローカルユニキャストアドレスと、リンクローカルアドレス(自動)の2つのIPが設定される。
ipv62
では、問題を解いてみよう。

IPv6グローバルユニキャストアドレスはどれか。
 ア  ::1   イ  2001:dc3::35
 ウ  fd00::12:fff:fea9:18   エ  fe80::f:acff:fea9:18
(H25春SC午後2問18) 






アはループバック。
グローバルユニキャストアドレス(IPv4でいうグローバルアドレス)は、200で始まるものなので、イが正解である。
ウはユニークローカルユニキャストアドレス(IPv4でいうプライベートアドレス)
エはリンクローカルユニキャストアドレス

5.IPv6アドレスの詳細

■1.IPv6アドレス詳細
❶グローバルユニキャストアドレスについて
IPv4のグローバルIPアドレスと考えてもらえばいい
・[プレフィックス 64bit][インターフェースID 64bit]
・プレフィックスは、グローバルルーティングプレフィックス(nビット)とサブネットID(64-nビット)に分けられる。
・上を書き直すとこうなる
[グローバルルーティングプレフィックス nビット][サブネットID 64-nビット][インターフェースID 64bit]
・たとえば、2001:dc3:222::/48というグローバルアドレスを公的な機関から割り当てられたとする。企業では、サブネットワークとして、任意の番号をつければよい。
たとえば
 ・総務部 2001:dc3:222:1::/64
 ・営業部 2001:dc3:222:2::/64
 ・技術部 2001:dc3:222:3::/64
 ※図示する
そして、ルータや端末のIPアドレスは、当然ながら通常通り任意につければよい。たとえば、
 ・ルータ 2001:dc3:222:1::1
 ・パソコン 2001:dc3:222:1::101~300
 ・Webサーバ 2001:dc3:222:1::80
 ・DNSサーバ 2001:dc3:222:1::53
 ※この命名はセキュリティ上の懸念があるので、必ずしも推奨ではない。
 このようにシンプルなIPアドレス設計にすると、IPv6もそれほどややこしいものではない。
 
❷リンクローカルアドレスの補足
・[プレフィックス 64bit][インターフェースID 64bit]
・プレフィックスはfe80::/10と決まっているので、上を書き直すとこうなる
[1111111010 10ビット][00・・00 54ビット][インターフェースID 64bit]
・自分のパソコンにて、ipconfigコマンドで、このような構成になっているかを確認してみましょう。

■リンクローカルアドレスは要るのか?
IPv6のアドレスは、グローバルアドレス(とユニーク・ローカル・ユニキャスト・アドレス)が基本である。グローバルアドレスで通信する。加えて、リンクローカルアドレスを設定する。2個も設定するのは面倒だしややこしい。果たして、リンクローカルアドレスは必要なのか?
 取り決めとして、必須です。しかし、設定しなくても、隣接するノード間では通信ができる。とはいえ、OSPFのネイバーではリンクローカルアドレスを使ったりと、随所で使っていたりする。なので、素直に設定するようにしましょう。 逆に、リンクローカルアドレスのみを設定した場合はどうだろう。グローバルアドレスを設定しない場合である。その場合は、隣接するノードとの通信であれば、通信が可能。


❸ユニークローカルユニキャストアドレス(ULA)の補足
・ユニークローカルアドレスともいう。
・[プレフィックス 64bit][インターフェースID 64bit]というのはここでも同じ。
・プレフィックスはfc00::/7(2進数表記で1111110から始まる)と決まっている。7bitなので、実際にはfc00::/8とfd00::/8の2つがある。
[1111110 7ビット][0 or 1][グローバルID 40ビット][サブネットID 16bit][インターフェースID 64bit]
・自分のパソコンにて、ipconfigコマンドで、このような構成になっているかを確認してみましょう。

■2.IPv6アドレスでの通信をやってみよう。
IPv6アドレスは,十分に普及していません。ですから,IPv4とIPv6の2つ環境がしばらくの間,共存することになります。
ネットワークスペシャリストを目指す女性SEあれ?
IPv4とIPv6のプロトコルは,互換性があるのですか?
残念ながら互換性はない。だからIPv4のアドレスの端末とIPv6アドレスの端末は通信することができないんだけど、たいていのPCやネットワーク機器はIPv4とIPv6の両方に対応している。
ご自身のパソコンで、「コントロール パネル\ネットワークとインターネット\ネットワーク接続」から、「イーサネット」などのネットワークを右クリックで「プロパティ」を見てみましょう。
ipv6
このように、「インターネットプロトコル バージョン6(TCP/IPv6)」のチェックが入っていて、IPv6はデフォルトでIPv6が有効になっています。(チェックボックスを外すとIPv6は無効になります。)
ネットワークスペシャリストを目指す女性SEハテナ 

ということは、もしかして、私のPCからIPv6で通信することができますか?
もちろん。試しにテストしてみよう。2台のPCを用意し、間にネットワーク機器として、スイッチングハブを入れてみます。構成は以下です。
ipv62
まず、PC1にて、自身のIPv6アドレスを確認しましょう。

C:\Windows>ipconfig
Windows IP 構成
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .:
 リンクローカル IPv6 アドレス. . . . .: fe80::9c41:391a:ad03:66dc%12
 自動構成 IPv4 アドレス. . . . . . . .: 169.254.102.220
 サブネット マスク . . . . . . . . . .: 255.255.0.0
 デフォルト ゲートウェイ . . . . . . .:

ここにおける、「fe80::9c41:391a:ad03:66dc」がこのインターフェースのIPv6アドレスです。参考までに、%12はスコープIDと呼ばれるもので、このPCにいくつかあるインターフェースの番号である、その程度に考えておいてください。
まず、自分自身のIPv6アドレスにPingを実施してみましょう。

C:\Windows>ping fe80::9c41:391a:ad03:66dc
fe80::9c41:391a:ad03:66dc に ping を送信しています 32 バイトのデータ:
fe80::9c41:391a:ad03:66dc からの応答: 時間 <1ms
fe80::9c41:391a:ad03:66dc からの応答: 時間 <1ms
fe80::9c41:391a:ad03:66dc からの応答: 時間 <1ms
fe80::9c41:391a:ad03:66dc からの応答: 時間 <1ms
fe80::9c41:391a:ad03:66dc の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms


もちろん、このように、正常な応答が帰ってきます。
次に、PC2のIPv6アドレスにPingを打ってみましょう。先と同様に、PC2にてipconfigを実行して、PC2のIPv6アドレスを調べます。そして、調査の結果、「fe80::223:8bff:fe18:d3b5」であることが分かったので、このIPv6アドレスにpingを打ってみたいと思います。

C:\Windows>ping fe80::223:8bff:fe18:d3b5
fe80::223:8bff:fe18:d3b5 に ping を送信しています 32 バイトのデータ:
fe80::223:8bff:fe18:d3b5 からの応答: 時間 =1ms
fe80::223:8bff:fe18:d3b5 からの応答: 時間 <1ms
fe80::223:8bff:fe18:d3b5 からの応答: 時間 <1ms
fe80::223:8bff:fe18:d3b5 からの応答: 時間 <1ms
fe80::223:8bff:fe18:d3b5 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 1ms、平均 = 0ms


この通り、PCもネットワーク機器も、IPv6の設定を特に行うことなく、IPv6通信を行うことができるのです。

また、ネットワーク機器も同様です。
この検証に使ったルータは古いルータで、IFが100Mbpsですが、古くからIPv6対応しています。
仮に、IPv6のリンクローカルアドレスとして、fe80::7を割り当てましょう。

Router(config)#interface fastEthernet 8
Router(config-if)#ipv6 address fe80::7 link-local

もちろん、PCからPingを打つこともできます。
また、1つのIFにIPv6アドレス複数設定することができる。100個でもつけることが可能です。

6.IPv6ヘッダの構成

・IPv4では13項目の情報が存在したが、IPv6では8項目に削減されてシンプルになった。
・シンプルになったからヘッダ長も短くなったかと期待した。しかし、40バイトなので、IPv4ヘッダの2倍である。まあIPアドレスそのものが4倍になり32バイトが必要なので、これは仕方がないだろう。

▼基本ヘッダ
1)バージョン(4ビット):バージョン6
2) Traffic Class (8ビット)
3)フローラベル(20ビット)
4) ペイロード長(16ビット)
5)Next Header(8ビット):
6)Hop Limit(8ビット):
7)送信元IPアドレス(128ビット):
8)宛先IPアドレス(128ビット):

これ以外に、IPsecの機能を持つ場合は拡張ヘッダで行う。基本ヘッダはIPv4と異なって40バイトに固定されている。(拡張ヘッダは可変だから”可変だろう”という突っ込みを入れたくなる)

基本ヘッダの中のNext Headerに、拡張ヘッダの内容が記載される。
拡張ヘッダの内容は、ホップバイホップオプション以外はルータで確認する必要がない。なので、ルータの処理は軽減される。

▼拡張ヘッダ
1)ホップバイホップオプション:中継ルータが処理すべきオプションが格納される。内容はあいまい。
2)宛先オプション:宛先ノードが処理すべきオプション。内容はあいまい。
3)ルーティングヘッダ:経由すべきルータを指定するソースルーティングのようなもの
4)フラグメントヘッダ:Path MTU Discoveryにより最適なMTUを調査するためのヘッダ。MTUが分かればそのサイズにフラグメントされる。
5)認証ヘッダ:AHのヘッダを格納 ←ここがIPsec
6)暗号化ヘッダ:ESPのヘッダを格納 ←ここがIPsec

▼ネットワークスペシャリスト試験の過去問(H24年NW午後Ⅱ問2)を解いてみよう。

IPヘッダの変換には様々な処理が必要である。 IPv4ヘッダとIPv6ヘッダは,それぞれ20バイト,[ a ]バイトと長さが異なる。IPv6のIPアドレスは[ b ]ビットであり,それによって表せるIPアドレス数は,IPv4と比較して2の[ c ]乗倍である。また,IPv6には,標準ヘッダの他に,フラグメントヘッダやルーティングヘッダといった,IPv4にはない[ ウ ]ヘッダが導入されている。また,  IPv4では,経路中のルータが必要に応じてパケットを分割することができるが,IPv6では許されていないという違いもある。トランスレータは,これらの違いを吸収して,IPv4とIPv6を相互変換している。






正解:
a 40
b 128
c 96
ウ 拡張

▼過去問(H28年秋AP午前)を解いてみよう。

問36 IPv6において,拡張ヘッダを利用することによって実現できるセキュリティ機能はどれか。
ア URLフィルタリング機能   イ 暗号化機能
ウ ウイルス検疫機能      エ 情報漏えい検知機能






正解:イ

7.IPv6に関する過去問

■H26秋NW午前Ⅱ

問1 IPv6が利用できるネットワークに接続したPCにおいて,二つのIPv6アドレスが割り当てられていた。
(1)2001:db8::b083:ba94:60c7:7c36
(2)fe80::200:c0ff:fea8:2
このうち、(2)はリンクローカルユニキャストアドレスである。この説明として適切なものはどれか。

ア 下位のビットにこのPCのIPv4アドレスを埋め込み,  IPv6アドレスとIPv4アドレスを関連付けて管理を容易にするアドレスである。
イ グローバルユニキャストアドレスが取得できなかったときだけに有効なアドレスである。
ウ このアドレスを使った場合,パケットはネットワークには送信されず,自分自身のPC内で動作しているプログラムとだけ通信できる。
エ このアドレスをもつネットワークインタフェースからルータを介さずに直接接続できる相手との通信にだけ使用できるアドレスである。






正解:エ


■H23秋NW午前Ⅱ

問10 IPv6のマルチキャストアドレスのプレフィックスはどれか。
ア 2000::/3
イ FC00::/7
ウ FE80::/10
エ FF00::/8






正解:ア



■H24秋NW午前Ⅱ

問13 IPv4とIPv6の両方にある機能はどれか。
ア 実時間処理用のパケットを処理するためのフローラベル
イ パケットヘッダの誤りを検出するためのチェックサム
ウ 一つのパケットで複数のノートにデータを配送するマルチキャスト
エ 複数のノートのうち経路上最も近いノートにデータを配送するエニーキャスト






正解:ウ
マルチキャストは、IPv4、IPv6の両方にあります。エニーキャストはIPv6だけです。

問14 2台のPCをIPv6ネットワークに接続するとき,   2台ともプレフィックスが2001:db8:100:1000::/56のIPv6サブネットに入るようになるIPアドレスの組合せはどれか。
    1台目のPC        2台目のPC
ア 2001:db8:100::aa:bb    2001:db8:100::cc:dd
イ 2001:db8:100:1000::aa:bb 2001:db8:100:2000::cc:dd
ウ 2001:db8:100:1010::aa:bb 2001:db8:100:1020::cc:dd
エ 2001:db8:100:1100::aa:bb 2001:db8:100:1200::cc:dd






正解:ウ

■H25秋NW午前Ⅱ

問9 IPv6プロトコルスタックしかもたないホストとIPv4プロトコルスタックしかもたないホストとの間で通信するための技術はどれか。

ア 6to4    イ IPv4/IPv6トランスレーション
ウ Teredo   エ キャリアグレードNAT






正解は イのIPv4/IPv6トランスレーション

■H26秋NW午前Ⅱ

問6 DNSサーバにおいて,  IPv6のアドレス情報を登録するレコードはどれか。
ア AAAAレコード     ウ MXレコード
イ CNAMEレコード  エ SOAレコード






正解はア

問9 IPv4におけるARPのMACアドレス解決機能をIPv6で実現するプロトコルはどれか。
ア DHCPv6
イ ICMPv6
ウ IGMPv2
エ RIPng






正解:イ

■H27秋NW午前Ⅱ

問9 IPv6においてIPv4から仕様変更された内容の説明として,適切なものはどれか。

ア IPヘッダのToSフィールドを使用し,特定のクラスのパケットに対する資源予約ができるようになった。
イ IPヘッダのアドレス空間が,  32ビットから64ビットに拡張されている。
ウ IPヘッダのチェックサムフィールドを追加し,誤り検出機能を強化している。
エ IPレベルのセキュリティ機能(IPsec)である認証と改ざん検出機能のサポートが必須となり,パケットを暗号化したり送信元を認証したりすることができる。






正解:エ
ア:IPv6にToSフィールドはありません。
イ:IPv6は128ビットです。

■H29秋NW午前Ⅱ

問8 IPv6のIPアドレスに関する記述のうち,適切なものはどれか。

ア IPv4に比べてアドレスフィールドが拡張されたので,ルータでの中継処理の遅延が増加する。
イ IPアドレスは10進数を用いる表記が推奨されている。
ウ 上位96ビットを全て1としたアドレスはIPv4射影アドレスとして使用される。
エ ホストはルータからの情報によって自分のIPアドレスを自動設定できる。






正解:エ

2.IPv6応用

1.IPアドレスの自動設定とRA

ステートレスという。DHCPが無くても、自分でIPアドレスを設定する。ただし、ネットワーク情報はルータから送られてくる。
RA(Router Advertisement)が大事なキーワードです。
具体的な動作は以下です。
①端末はRS(Router Solicitations)メッセージを送り(ff02::2)、ネットワーク情報を要求する。
②ルータはRA(Router Advertisement)を返し(ff02::1)ネットワーク情報とデフォルトゲートウェイ情報を返答する。
③端末は自分のMACアドレスから、EUI-64を利用して48ビットのMACアドレスを64ビットに変換する。
cf.ステートフル・・・・・・DHCP

2.EUI-64による、IPv6アドレスの自動設定

Ciscoルータでやってみましょう。
ipv6 unicast-routing を入力し、IPv6のルーティングを有効にします。そして、IPv6アドレスを設定するインタフェースに移ります。

Router(config)#ipv6 unicast-routing
Router(config)#interface fastethernet 0/0
Router(config-if)#ipv6 enable

これで設定は終わりです。
IFにIPv6のアドレスが設定されました。
確認はsh intではなく、sh ipv6 intで見てみましょう。

Router(config)#sh ipv6 int


以下のように記載されているはずです。
link-local address is ~IPv6アドレス
これは、EUI-64による、IPv6アドレスの自動設定
です。IPアドレスの設定は、MACアドレスからルールに基づき、自動で設定されます。
ちなみに、このIFのMACアドレスも確認してみましょう。

Router(config)#sh int


ここで具体的な法則は書きませんが、このMACアドレスと、IPv6の値は何となく似ていますよね。

3.ARPとND

IPv4ではARPを使っていたが、IPv6では、ICMPv6のND(Neighbor Discovery)を使う。
この点を含めて、IPv6ではICMPv6の理解が重要になる。

4.NAT64とDNS64

■NAT64とDNS64が求められる背景
現在では、多くの場合がPv4とIPv6のデュアルスタック(大半はIPv4のみ)で運用しています。しかし、デュアルスタックではIPv4の節約にはなりません。よって、これが最適な仕組みとは言えません。
また、JPNICのサイト(https://www.nic.ad.jp/ja/newsletter/No64/0800.html)では、「Apple社ではApp Storeへ登録されるアプリの審査基準において、2016年6月1日よりIPv6アドレスのみが割り当てられるネットワークへの対応を求めています。」とあります。
つまり、端末側がIPv6アドレスだけのネットワークが増えていきます。とはいえ、サーバはIPv4の身に対応しているものも多く、IPv6だけにすると、使えないサービスが出てきて、それでは困ります。

JPNICのサイト(https://www.nic.ad.jp/ja/newsletter/No64/0800.html)では、以下の記載があります。

IPv4とIPv6の共存技術としては、通常はIPv4とIPv6を併用するデュアルスタックが用いられることが一般的ですが、NAT64/DNS64ではIPv6アドレスのみを利用したネットワークから、IPv4ネットワークのサービスに接続できることが特徴です。
そのため、デュアルスタック構成よりもIPv4アドレスの節約ができるということで、最近注目を集めている移行技術です。


■NAT64/DNS64の構成
NAT64/DNS64 を使う場合は、端末はIPv6のみです。サーバもIPv6であれば面倒な処理をする必要はもちろんありません。サーバがIPv4のみの場合に、NAT64/DNS64の仕組みが必要です。
雑ですが、図にすると以下のようになります。
nat64

図に関して、少し補足します。
・左下のPCが、IPv6専用のPCです。SV1と通信するために、DNSサーバにIPアドレスを問い合わせます。
・DNSサーバはDNS64が有効です。DNSサーバは、IPv6レコードであるAAAAレコードがあれば、それを返します。そして、IPv6で通信をします。
・ここでは、AAAAレコードが無い前提で進めます。DNSサーバでは、IPv4アドレスをRFC6052のルールに従い、IPv6アドレスに変換し、PCに回答します。
・PCはSV1に対して、IPv6アドレスで通信をします。NAT64対応のルータは、IPv6アドレスをIPv4アドレスに変換して、SV1と通信をします。
・このとき、IPv4とIPv6でアドレス変換をします。

宛先はRFC6052のルールに従います。送信元は、PCのIPv6アドレスを、ルータのIPに変換します。そうしないと、IPv4のSV1と通信できない。よって、ルータのIPv4側のIFのIPv4アドレスか、NATでプールしてあるIPv4アドレスにNATする。この変換はNATテーブルに記録する。

以下のJPNICのサイトに詳しい解説があるので、参考にしてください。
https://www.nic.ad.jp/ja/newsletter/No64/0800.html

■NAT64とDNS64の過去問
過去問(R1秋FE午後問4)の設問2をみましょう。
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_2/2019r01a_fe_pm_qs.pdf

DNS64の機能について。
過去問からポイントを
・IPv4アドレスのIPv6アドレス表現は,当該IPv4アドレスを示す4バイトの前に,あらかじめ決められた12バイトのプレフィクスを付加したものである。
・NAT64の機能はルータが実現する
 
設問2 次の記述中の[  ]に入れる正しい答えを,解答群の中から選べ。ここで,a1~a3に入れる答えは,a に関する解答群の中から組合せとして正しいものを選ぶものとする。

 IPv6とIPv4とは互換性がないので,IPv6のネットワーク内の機器(以下,IPv6機器という)とIPv4のネットワーク内の機器(以下, IPv4機器という)とは直接通信することができない。IPv6機器からIPv4機器にアクセスする方法の一つに,NATの機能を拡張したNAT64と,DNSの機能を拡張したDNS64との組合せによる方法がある。この方法によるIPv6機器からIPv4機器へのアクセスの流れを次に示す。

(1) IPv6機器は,アクセス先の機器のIPアドレスを,DNS64から入手する。
 DNS64は[ a1 ]のネットワークに置かれるDNSであり,ホスト名に対応するIPアドレスの問合せに対し,対応する[ a2 ]アドレスがあればそれを返し,対応する[ a2 ]アドレスがなく,[ a3 ]アドレスがあればそれを[ a2 ]アドレスに変換して返す。ここで,IPv4アドレスのIPv6アドレス表現は,当該IPv4アドレスを示す4バイトの前に,あらかじめ決められた12バイトのプレフィクスを付加したものである。
(2) IPv6機器は,入手したIPアドレスに宛ててIPv6のパケットを送信する。
(3) (2)のパケットがIPv4機器向けならば,当該パケットとその返信パケットは,NAT64の機能をもつルータ(以下,NAT64ルータという)が受信する。
(4) NAT64ルータは,IPv6機器からIPv4機器に向けて送信されたIPv6のパケットをIPv4のパケットに,その返信パケットであるIPv4のパケットをIPv6のパケットに,それぞれ変換し,転送する。このとき,IPアドレス及びポート番号は,動的NATによる書換えの考え方を用いて変換する。NAT64ルータによるIPアドレスとポート番号の変換例を,図1に示す。

R1秋FE午後問4設問2
図1 NAT64ルータによるIPアドレスとポート番号の変換例

R1秋FE午後問4設問2 aに対する解答群

b~dに関する解答群
 ア 192.168.0.0   イ 192.168.0.1    ウ 192.168.0.2
 エ 64:ff9b::      オ 64:ff9b::c0a8:1  カ 64:ff9b::c0a8:2
 キ fc00::        ク fc00::1       ケ fc00::2






■空欄a
a1:IPv6
a2:IPv6
a3:IPv4
よって、正解はエ

■空欄b-d
【b】の宛先IPアドレスを考える。
IPv6機器から送られた宛先IPアドレスは、64:ff9b::c0a8:2である。
しかし、このままではIPv4機器に届かない。IPv4機器のIPアドレスである192.168.0.2に変換して送信する。
解答:ウ(192.168.0.2)

ちなみに、どうやって変換するか。流れを解説する。
まず、IPv6機器は、DNS64に対しIPv4機器(例えばホスト名はpc2.ipv4.dom)のIPアドレスを問い合わせる。DNS64サーバは、問題文にあるように「【a3:IPv4】アドレスがあればそれを【a2:IPv6】アドレスに変換して返す。」
このとき、問題文にあるように、「当該IPv4アドレスを示す4バイトの前に,あらかじめ決められた12バイトのプレフィクスを付加」する。今回でいうと、192.168.0.2(16進数にするとc0a8.02)の前に「64:ff9b::」を付与していることがわかる。

【c】NAT64ルータで変換された送信元IPアドレスを考える。
cの送信元IPアドレスも、IPv4に変換しないと、IPv4機器は理解できない。
では何に変換するか。図1のNATルータの図に192.168.0.1という記載がある。

なので、NATテーブルとして以下を持っている。
【変換前(IPv6)】  【変換後(IPv4)】
   fc00::2       192.168.0.1

解答:イ(192.168.0.1)

Q.DNS64って、普通のDNSサーバとは別に存在する?2つがあるの?
IPv6の端末があるのであれば、IPv6対応のDNSサーバがもちろん必要。DNS64に対応させていればいい。仮にIPv4とIPv6が混在するネットワークであれば、一つのDNSサーバで共存させればいい。

【d】最後に、IPv6パケットの送信元IPアドレスを考える。
これは、IPv4機器(192.168.0.2)のIPv6アドレスである、64:ff9b::c0a8:2である。
解答:カ(64:ff9b::c0a8:2)

5.IPoE(ネイティブ方式)
・IPoE(IP over Ethernet)は、「ネイティブ方式」とも言われる。
・PPPoE接続と比較で考えるといいだろう。
・IPoEはIPv6だけのサービス
・NTT東西の場合、IPv6のIPoE(ネイティブ方式)とPPPoE(トンネル方式)の2つのサービスがある。
・IPoEの方が、シンプルな接続になる。
 https://ipoe-c.jp/ipoe/
6.IPv4射影アドレス

※試験にはおそらく出ません

IPv4射影アドレスは、IPv4をIPv6に変換したアドレスで、IPv4(32ビット)の前に、80ビットの0と16ビットが1を付与します。IPv4しか対応していない端末と通信する場合に使用されます。

3.IPv6の設定

1.IPv6によるPing試験

■構成
[PC1 Windows8] ---- [HP-SW 5120] ---- [PC2 WindowsXP]
※Windows8には、設定は何もしないし、HP-SWも設定は不要。デフォルトでIPv6通信が許可される。
WindowsXPだけは、設定が必要で、「netsh int ipv6 install」をコマンドプロンプトから実行する。

■PC1(Windows8)からのコマンドプロンプトによる確認
(1)IPアドレスの確認

C:\Windows>ipconfig
Windows IP 構成
イーサネット アダプター イーサネット:
   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::9c41:391a:ad03:66dc%12
   自動構成 IPv4 アドレス. . . . . . . .: 169.254.102.220
   サブネット マスク . . . . . . . . . .: 255.255.0.0
   デフォルト ゲートウェイ . . . . . . .:

・%12の意味は、スコープID。IFの番号と思ってもいいだろう。
・リンクローカルアドレスのプレフィックスは常にfe80::/64 
・後半の64bitのインターフェースIDはランダムに設定される

(2)自分のIPv6アドレスにPing
当然、飛ぶ

C:\Windows>ping fe80::9c41:391a:ad03:66dc
fe80::9c41:391a:ad03:66dc に ping を送信しています 32 バイトのデータ:
fe80::9c41:391a:ad03:66dc からの応答: 時間 <1ms
fe80::9c41:391a:ad03:66dc からの応答: 時間 <1ms
fe80::9c41:391a:ad03:66dc からの応答: 時間 <1ms
fe80::9c41:391a:ad03:66dc からの応答: 時間 <1ms
fe80::9c41:391a:ad03:66dc の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms

     
(3)通信相手のIPアドレスの確認
その前に、WindowsXPなので、IPv6対応にする

C:\>netsh int ipv6 install
OK
C:\>ipconfig
Ethernet adapter ローカル エリア接続:
        Connection-specific DNS Suffix  . :
        Autoconfiguration IP Address. . . : 169.254.32.106
        Subnet Mask . . . . . . . . . . . : 255.255.0.0
        IP Address. . . . . . . . . . . . : fe80::223:8bff:fe18:d3b5%5
        Default Gateway . . . . . . . . . :

※IPv4のアドレスは設定していない。

(4)通信相手にIPv6でPing

C:\Windows>ping fe80::223:8bff:fe18:d3b5
fe80::223:8bff:fe18:d3b5 に ping を送信しています 32 バイトのデータ:
fe80::223:8bff:fe18:d3b5 からの応答: 時間 =1ms
fe80::223:8bff:fe18:d3b5 からの応答: 時間 <1ms
fe80::223:8bff:fe18:d3b5 からの応答: 時間 <1ms
fe80::223:8bff:fe18:d3b5 からの応答: 時間 <1ms
fe80::223:8bff:fe18:d3b5 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 1ms、平均 = 0ms


(5)スコープIDをつけたらどうだろう
スコープIDは、自分のIFの番号と考えればよい。
sef4 


普通のPingではIFを指定しませんよね?
そうですね。ルーティングテーブルがあるから、それに従って、どのIFから出るかがわかります。
リンクローカルアドレスに関しては、同一セグメントでしか届かないアドレスで、ルーティングテーブルが存在しない。だから、IFを指定してあげるのが親切です。

では、やってみましょう。相手のIPアドレスは「fe80::223:8bff:fe18:d3b5%5」なので、これにping

C:\Windows>ping fe80::223:8bff:fe18:d3b5%5
fe80::223:8bff:fe18:d3b5%5 に ping を送信しています 32 バイトのデータ:
ping: 転送に失敗しました。一般エラーです。
ping: 転送に失敗しました。一般エラーです。
ping: 転送に失敗しました。一般エラーです。
ping: 転送に失敗しました。一般エラーです。
fe80::223:8bff:fe18:d3b5%5 の ping 統計:
    パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)

1

あれ?
エラーだ
どのIF番号からpingを打つかなので、自分のスコープID%12を指定しなければいけない。

C:\Windows>ping fe80::223:8bff:fe18:d3b5%12
fe80::223:8bff:fe18:d3b5%12 に ping を送信しています 32 バイトのデータ:
fe80::223:8bff:fe18:d3b5%12 からの応答: 時間 =1ms
fe80::223:8bff:fe18:d3b5%12 からの応答: 時間 <1ms
fe80::223:8bff:fe18:d3b5%12 からの応答: 時間 =1ms
fe80::223:8bff:fe18:d3b5%12 からの応答: 時間 <1ms
fe80::223:8bff:fe18:d3b5%12 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 1ms、平均 = 0ms

今度はうまくいった。

2.IPv6でのルーティング

▼IPv6でのルーティングプロトコル
RIP→RIPng ※ngはNextGenerationの意味。
OSPF(日頃使っているのはv2)→OSPFv3
ルーティングの仕組みやに関しては、v4とv6で大きな変更はない。
以下に、Ciscoルータの場合の設定をみてみよう。簡単なので、実際にやっていただくことをお勧めします。

▼CiscoルータでのOSPF設定
(1)IPv6によるOSPFの設定
シンプルな設定は以下です。IPv4と基本的には同じであるが、設定は若干違う。networkの設定をせず、IFにareaの設定をする。

ipv6 unicast-routing
interface FastEthernet0/0
 ipv6 address 2001:dc3::1/64 ←グローバルの場合はプレフィックスをつける
 ipv6 address fe80::1:1 link-local ←リンクローカルアドレスであることを明示
 ipv6 ospf 1 area 0 ←OSPFのプロセスIDを1とし、エリアを0に設定する。

※確認は、3つのルータでやった方がいいだろう。ルーティング情報を伝搬してくるので。
※OSPFのネイバーはリンクローカルアドレスにて張られるので、リンクローカルアドレスの設定は必須。

(2)確認コマンド
IPv4とはちょっと違う。

sh ipv6 route

これで、ospfのoがつくルーティングが見えていればよい。
その他、sh ipv6 neighborsなども確認してみよう。

3.サーバにおけるIPv6のネットワーク設定

sef1

IPv6のサーバ設定とか、難しそうですね。
たしかに、難しいと感じる人もいるだろう。でも、やってみると、以外にそれほどでもない。たとえば、サーバを構築するときに、IPv4アドレスに関する設定なんて、どれほど設定するだろうか?
sef6
そういえばそうですね。
最初にIPアドレスの設定をして、その後はDNSのAレコードにIPアドレスを書いたり、フィルタでアドレスを書いたりなど、それほど多くは無いですね。
そうなんです。そう思えば、基本的にはそれほど複雑ではない。慣れていないということがよく分からないという最たる理由でしょう。IPv6アドレスの基本であるグローバルアドレスやリンクローカルアドレスなどをしっかりと理解しておけば、あとは基本的には同じです。
一方、ネットワーク機器の場合、ネットワーク情報をすべてIPv6の設定をいれなければいけません。結構大変です。

IPv4と基本的には同じです。同じ設定ファイルに、同じような設定を追加します。

❶IFのIPアドレスの設定
/etc/sysconfig/network-scripts/ifcfg-eth0
にて以下を設定します。
※当然ながら、eth0以外のIFであれば、そのファイルを設定します。

IPV6INIT=yes ←IPv6を有効に
IPV6ADDR=2001:xxx::101/64 ←v6アドレスの設定
IPV6_DEFAULTGW=2001:xxx::1 ←デフォルトGWの設定


❷確認コマンド

#ifconfig


❸疎通確認
pingではなく、ping6のコマンドを使う

#ping6 2001:xxx::101


❹IPのEUI-64での自動IP設定の無効化
 ifconfigで確認すると、EUI-64の自動IP設定が入っていると思う。つまり、IPアドレスが複数設定されている。余分な情報が入るとややこしいしいので、無効化しておいた方がいいでしょう。
 /etc/sysconfig/network のファイルにおいて、以下の設定をします。 

IPV6_AUTOCONF=no

 
❺DNSサーバの指定
恐らく、IPv4のDNSサーバでも対応できると思う。IPv6のDNSサーバを指定する場合には、IPv4と同じように/etc/resolv.confにnameserverを指定する
以上です。
思ったよりあっけないですよね。

4.IPv6のDNS

▼イントロ
DNSサーバは、IPv6用に専用に立てることもできるが、普通は共存であろう。共存したDNSサーバで、IPv4とIPv6のデュアルスタックですることが多いことでしょう。

▼DNSサーバの設定
BINDなどのDNSサーバは以前からIPv6対応です。特段これといった設定はなく、そのままIPv6で動作します。
以下を設定すれば、とりあえずは動きます。細かなオプションやセキュリティ設定は適宜行います。
①ゾーンファイルの設定(正引き、逆引きなど)
②IPv6トランスポートの有効
IPv6のパケットからのDNSクエリーに答える機能(IPv6トランスポート)を有効にするには、named.confのoptionsに以下をいれます。IPを指定しても可。

  listen-on-v6 { any; };


▼ゾーンファイル
書き方は、IPv4がAレコードなのに対し、IPv6ではAAAAレコードを使います。
女性ハテナ 

IPv4とIPv6のどっちが返ってくるの? 
普通に考えると、IPv4のパケットで問い合わせが来たらIPv4、IPv6のパケットできたらIPv6を返せばいいと思う。
サーバOSの実装次第です。が、両方返すと考えてもらったらいいでしょう。v4とv6でトランスレートされていたり、キャッシュDNS経由だったりすることも多いので、v4できたからといって、v4を返せばいいとは限らないのです。。
パソコンでもnslookupコマンドで確認してみましょう。
IPv4のアドレスだけを返すのがほとんどですが、両方返すのもあります。

> www.google.com
(中略)
権限のない回答:
名前:    www.google.com
Addresses:  2404:6800:4004:800::1011
          173.194.38.84
          173.194.38.80         
            ・・・


これを見る限り、このDNSサーバのゾーンファイルには、以下のようなレコードが記載されていると想定されます。

www    IN    AAAA 2404:6800:4004:800::1011
www    IN    A    173.194.38.84
www    IN    A    173.194.38.80


▼逆引き設定
IPv4と同じです。ですが、IPアドレスのレンジがかなり拡張されましたので、がっつり逆引きをやるとメモリが破たんします。なので、公開サーバなど、ごく一部のもののみ設定すればいいでしょう。IPv4と同じで、逆引きを設定しなくても、運用はできます。

5.各種サーバの設定

IPv6化するのにたいした設定はありません。ネットワークの設定をすることが基本になります。
それ以外に、IPv6だからこそという設定はほとんどありません。たとえば、WebサーバのApacheはそのままでIPv6化されていますし、メールサーバのPostfixやDovecotも同じです。ただ、Postfixの場合はmain.cfに以下をいれます。 

inet_protocols = ipv4, ipv6 #またはall

DNSサーバと同じですが、オプション設定やセキュリティ設定など、必要な設定はありますが、とりあえず動くという段階にするには、設定はこの程度です。