問1 社内ネットワークの IPv6 対応
社内ネットワークの IPv6 対応に関する次の記述を読んで,設問に答えよ。
Q 社は全国に拠点をもつ大手の電機メーカーである。Q 社で利用される社内ネットワークには IPv4 アドレスだけが割り当てられており,従業員は社内ネットワークに接続された PC を利用して,社内 Web,電子メール,ファイル共有,チャットや Web 会議などのサービスを提供する V 社 SaaS,及びインターネット上の Web サイトにアクセスして業務を行っている。
Q 社で利用している SaaS や Web サイトの IPv6 の対応状況,及び近年の IPv6 普及率の向上を踏まえ,情報システム部は IPv6 の調査と社内ネットワークの IPv6 対応について検討することにした。IPv6 の調査と社内ネットワークの IPv6 対応の検討は,情報システム部の P 主任が担当することになった。
〔社内ネットワークの概要〕
Q 社の現状の社内ネットワーク構成を図1に示す。
図1の概要を次に示す。
- 社内ネットワークの PC,ネットワーク機器及びサーバには IPv4 アドレスを割り当てている。
- ルータB にはデフォルトルート及び NAPT を設定している。
- FW では,ステートフルパケットインスペクションを用いたアクセス制御を行っていて,許可及び拒否した通信のログを記録している。
- ルータB,FW 及び各拠点の L3SW は,OSPFv2 を用いて経路制御を行っている。
- ルータB は,OSPFv2 でデフォルトルートを配布している。
- データセンターと各拠点との間は,レイヤー2の広域イーサ網で接続されている。
- PC は,IPv4 アドレス,デフォルトゲートウェイ及びキャッシュ DNS サーバに関する情報を,DHCP サーバから取得している。
〔IPv6 対応の方針〕
V 社 SaaS の一部及びインターネット上の Web サイトの一部は,現時点では IPv6 に対応していない。P 主任は,社内ネットワークの IPv6 対応後も IPv4 のネットワークへの接続を確保する必要があると考えて,社内ネットワークには,IPv4 と IPv6 のデュアルスタックのネットワークを採用する方針で,IPv6 対応について検討することにした。
〔IPv6 におけるアドレス解決〕
IPv6 におけるアドレス解決では,IPv4 の ARP に相当する機能をもつ,RFC 4861 で規定された Neighbor Discovery Protocol(以下,NDP という)が用いられる。
IPv4 の ARP によるアドレス解決では,要求元のノードは,求める MAC アドレスに対応する IPv4 アドレスを ARP リクエストの a フィールドに入れて,b キャストで送信する。次に,ARP リクエストを受信した,要求された IPv4 アドレスをもつノードは,自身の MAC アドレスを ARP c の送信元 MAC アドレスフィールドに入れて,要求元のノード宛てに送信する。
IPv6 の NDP によるアドレス解決では,要求元のノードは,求める MAC アドレスに対応する IPv6 アドレスを ICMPv6 の Neighbor Solicitation(以下,NS という)メッセージに入れて,マルチキャストで送信する。次に,NS メッセージを受信した,要求された IPv6 アドレスをもつノードは,Neighbor Advertisement(以下,NA という)メッセージに自身の MAC アドレスを入れて,要求元のノード宛てに送信する。
〔IPv6 アドレスの割当て〕
NDP は,ICMPv6 の NS メッセージ及び NA メッセージに加えて Router Solicitation(以下,RS という)メッセージや Router Advertisement(以下,RA という)メッセージなども用いて,アドレス解決以外の次の機能を実現している。
- データリンク層で通信可能な範囲にあるルータを発見する機能
- サブネットプレフィックスやデフォルトルータを決定するための情報を,ノードに通知する機能
- 利用予定の IPv6 アドレスがほかのノードで利用されていないか確認する重複アドレス検出機能
IPv6 アドレスの構造,使用方法及び自動設定については,RFC 4291 で規定された IPv6 アドレス体系,及び RFC 4862 で規定された SLAAC(IPv6 Stateless Address Autoconfiguration)に規定されている。
IPv6 アドレスは 128 ビットで構成され,d ビットずつを“:”で区切って表される。2001:db8:aabb:1::1/64 を例とする IPv6 アドレスの構造を図2に示す。
IPv6 アドレスには,リンクローカルユニキャストアドレス(以下,LLA という)とグローバルユニキャストアドレス(以下,GUA という)がある。①LLA はある範囲でネットワークインタフェースを一意に識別できる IPv6 アドレスであり,サブネットプレフィックスには“fe80::/64”を用いる。GUA は,IPv6 で構成されるインターネットを含むグローバルなネットワークで,ネットワークインタフェースを一意に識別できる IPv6 アドレスである。
インタフェース識別子の生成方法を次に示す。
- 疑似乱数関数を用いてランダムなインタフェース識別子を生成する方法
- e ビットの MAC アドレスから f ビットの Modified EUI-64 形式のインタフェース識別子を生成する方法
ノード1における NDP 及び SLAAC を用いた IPv6 アドレスの生成処理を図3に示す。なお,Q 社の社内ネットワークの拠点1においては,ノード1及びノード2は PC であり,ノード3は L3SW1 である。
図3中の処理(ⅰ)〜(ⅵ)の概要を次に示す。
- (ⅰ) ノード1は,仮の LLA を生成して NS メッセージに入れて送信し,ほかのノードから NA メッセージの応答がないことを確認する。
- (ⅱ) ノード1は,仮の LLA を正式な LLA として NA メッセージに入れて,全ノードマルチキャストアドレス宛てに送信する。
- (ⅲ) ノード1は,RS メッセージを全ルータマルチキャストアドレス宛てに送信する。
- (ⅳ) RS メッセージを受信したノード3は,GUA の生成に用いるサブネットプレフィックス,及びデフォルトルータを決定するための情報を RA メッセージに入れて,ノード1宛てに送信する。
- (ⅴ) ノード1は,RA メッセージのサブネットプレフィックスと生成したインタフェース識別子を組み合わせた仮の GUA を NS メッセージに入れて送信し,ほかのノードから NA メッセージの応答がないことを確認する。
- (ⅵ) ノード1は,仮の GUA を正式な GUA として NA メッセージに入れて,全ノードマルチキャストアドレス宛てに送信する。
ノード1は,ノード3を経由して外部のノードと通信を行うために,処理(ⅳ)で受信した,RA メッセージの送信元であるノード3の LLA を g に設定する。
Q 社のネットワークにおける IPv6 アドレスの割当てについて,P 主任が調査した結果の一部を次に示す。
- Q 社は,ISP から,プレフィックス長が 48 又は 56 の GUA の割当てを受けることができる。
- ISP から割り当てられた GUA を,プレフィックス長が 64 のネットワークに分割して,利用することができる。
- SLAAC を利用して,PC の LLA,GUA,及び g を自動で設定することができる。
- ルータB,FW 及び各拠点の L3SW には,LLA 及び GUA を静的に割り当てることができる。
- 固定の MAC アドレスから Modified EUI-64 形式のインタフェース識別子を生成する方法は非推奨である。
PC のインタフェース識別子が疑似乱数関数を用いてランダムに生成される場合,②利用者のプライバシー保護に有用であるが,PC 管理の観点で考慮が必要になると P 主任は考えた。
〔IPv6 の名前解決〕
IPv4 の名前解決と比べて IPv6 の名前解決では,512 バイトよりも大きな DNS メッセージを送受信する可能性が高い。DNS の機能を拡張するために RFC 6891 で規定された Extension Mechanisms for DNS version 0(以下,EDNS という)では,スタブリゾルバとフルサービスリゾルバとの間,及びフルサービスリゾルバと権威 DNS サーバとの間で,UDP 上で送受信される DNS メッセージのサイズの上限を緩和している。
P 主任は,IPv6 アドレスの名前解決について,フルサービスリゾルバであるキャッシュ DNS サーバを管理する情報システム部の R 係長に相談した。2人の会話を次に示す。
- P 主任:社内ネットワークを IPv6 に対応させることになった場合に,キャッシュ DNS サーバに IPv6 アドレスを割り当てる必要がありますか。
- R 係長:不要です。キャッシュ DNS サーバは IPv4 のネットワーク上で DNS メッセージを送受信して,FQDN に対応する IPv6 アドレスを解決できます。例えば,IPv6 と IPv4 の両方に対応する Web サイトの名前解決を行う場合に,PC は AAAA レコードと A レコードを用いて名前解決を要求することで,IPv6 アドレスと IPv4 アドレスの両方を取得します。
- P 主任:FQDN から IPv6 アドレスと IPv4 アドレスの両方を解決した場合,Q 社の PC はどのように動作するのですか。
- R 係長:AAAA レコードと A レコードの応答をほぼ同じタイミングで受信した場合には,IPv6 を優先して通信を行います。
- P 主任:IPv6 の DNS メッセージは,IPv4 の DNS メッセージよりもサイズが大きくなると考えています。UDP 上で送受信される DNS メッセージのサイズには上限がありますが,何か対応が必要でしょうか。
- R 係長:Q 社のキャッシュ DNS サーバは EDNS に対応済みです。PC から名前解決の要求を受けたキャッシュ DNS サーバが,権威 DNS サーバに問い合わせる場合を例に説明します。キャッシュ DNS サーバは,まず,DNS を利用して権威 DNS サーバの EDNS の対応可否を確認します。EDNS を利用できるときには,両方のサーバ間で調整した最大のメッセージサイズまでであれば,512 バイトを超える DNS メッセージであっても UDP で送受信します。DNS メッセージが最大のメッセージサイズを超えるときや,EDNS に対応していない権威 DNS サーバと 512 バイトを超える DNS メッセージを送受信するときには,h で送受信することになります。
P 主任が作成した DNS の通信例を図4に,V 社 SaaS の FQDN に対する AAAA レコードの応答例を図5に示す。
③IPv6 のネットワークだけが不通となった場合に,利用している OS や Web ブラウザによっては従業員が異常に気付くことができず,情報システム部に異常を連絡できない可能性があると P 主任は考えた。IPv6 のネットワークの異常を検知するために,データセンターに監視サーバを導入して,IPv6 のインターネットへのアクセスや,各拠点の L3SW の GUA に対して ping6 コマンドによる監視を行うことにした。
〔IPv6 ネットワークの設計〕
P 主任は,図1の社内ネットワークを基に,IPv4 と IPv6 のデュアルスタックのネットワークを設計した。P 主任が設計した社内ネットワーク構成を図6に示す。
図6の概要を次に示す。
- IPv4 のネットワーク設計に関する変更はない。
- PC,ネットワーク機器及び監視サーバには,IPv4 アドレスに加えて IPv6 アドレスを割り当てる。
- ISP から Q 社に割り当てられる GUA を,2001:db8:yyyy::/48 として設計する。
- ルータB には,ルータA の LLA をネクストホップとするデフォルトルートを設定する。
- ルータB,FW 及び各拠点の L3SW は,OSPFv3 を用いて IPv6 の経路制御を行う。
- OSPFv3 では LLA を用いて隣接関係を確立して IPv6 の経路制御を行うので,④FW と各拠点の L3SW との間の,PC やサーバを接続しないネットワークに GUA を割り当てる必要はないが,静的に割り当てる。
- ルータB は,OSPFv3 でデフォルトルートを配布する。
- ⑤PC は,SLAAC を用いて IPv6 アドレス及びデフォルトルータを設定する。
ルータB,FW 及び L3SW1 の IPv6 の経路情報を表1に示す。
IPv6 のネットワーク設計について,P 主任は情報システム部の S 課長に,図6及び表1を用いて説明した。2人の会話の一部を次に示す。
- P 主任:ISP には,Q 社にプレフィックス長が 48 の GUA を割り当ててもらえることを確認しました。図6及び表1は ISP から割り当てられる GUA を 2001:db8:yyyy::/48 として作成しています。ISP のルータA には,ルータB の LLA をネクストホップとする 2001:db8:yyyy::/48 宛ての静的経路が設定されます。
- S 課長:表1の経路情報について説明してください。
- P 主任:項番1は,ISP を経由してインターネットにアクセスするためのデフォルトルートです。項番2は,ISP から割り当てられるプレフィックス長が 48 の GUA のうち,使用されない GUA が存在するので設定します。⑥項番2の経路情報を設定しない場合,ルーティングループが発生します。⑦項番1と項番2の両方の経路情報に該当する IP パケットの転送では,ルータB は項番2の経路情報を選択します。社内ネットワークの経路制御には OSPFv3 を利用します。項番3と項番5は,拠点1のネットワーク宛ての経路情報です。項番4と項番6は,ルータB から配布されるデフォルトルートによって登録される経路情報です。
- S 課長:IPv6 のネットワークは,IPv4 のネットワークと比較して情報セキュリティ面で違いはありますか。
- P 主任:異なる点があります。IPv4 のネットワークでは FW によるアクセス制御に加えて,ルータB に i を設定しているので,インターネットから社内ネットワークには簡単に通信できない設計になっています。IPv6 のネットワークでは i を利用しないので,FW のアクセス制御の設計については慎重に検討する必要があります。
- S 課長:FW では,インターネットから社内ネットワーク宛ての全ての通信を拒否する設定を行えばよいのでしょうか。
- P 主任:IPv6 の通信では,ICMPv6 メッセージを通信の制御に利用しているので,ICMPv6 メッセージを拒否すると通信障害を発生させるおそれがあります。例えば,中継する機器が MTU サイズよりも大きいサイズの IP パケットを転送できないときに,⑧中継する機器から送信元にタイプ2の ICMPv6 メッセージである“Packet Too Big”を送信する PMTUD(Path MTU Discovery)に利用されています。ほかにも,ICMPv6 メッセージのタイプによっては FW で許可すべきものがあるので,調査する予定です。
P 主任による IPv6 の調査と IPv6 対応の検討の結果は情報システム部で承認されて,社内ネットワークへの IPv6 導入において活用されることになった。
出題趣旨(IPA)
企業で利用されているインターネット上のクラウドサービスやWebサイトは,IPv6に対応したものが増えている。また,世界的にもIPv6の普及率が向上している。このような背景から,ネットワーク技術者にとって,IPv6アドレスの割当て,PCがSaaS及びWebサイトとIPv6で通信する前に行うDNS通信の流れや,IPv6の経路制御設計など,IPv6に関する基本的な知識は,今後より重要になってくる。本問では,IPv6の調査と社内ネットワークのIPv6対応の検討を題材として,IPv4及びIPv6に関する知識及び理解力を問う。
設問と解答例
本文中の a 〜 c に入れる適切な字句を答えよ。
〔a〕解答例
- 宛先IPアドレス
〔b〕解答例
- ブロード
〔c〕解答例
- リプライ
解説
本文の根拠
〔IPv6 におけるアドレス解決〕
要求元のノードは,求める MAC アドレスに対応する IPv4 アドレスを ARP リクエストの a フィールドに入れて,b キャストで送信する。
〔IPv6 におけるアドレス解決〕
自身の MAC アドレスを ARP c の送信元 MAC アドレスフィールドに入れて,要求元のノード宛てに送信する。
〔IPv6 におけるアドレス解決〕
IPv6 アドレスを ICMPv6 の Neighbor Solicitation(以下,NS という)メッセージに入れて,マルチキャストで送信する。
ARP(RFC 826)の手順をそのまま埋める。要求元は,MAC アドレスを知りたい相手の IPv4 アドレスを ARP リクエストの宛先 IP アドレス(Target Protocol Address)のフィールドに入れ,同じセグメントの全ノードに届くようブロードキャストで送る。該当する IPv4 アドレスをもつノードだけが,自分の MAC アドレスを送信元 MAC アドレスに入れた ARP リプライをユニキャストで返す。
本文は直後の段落で IPv6 の NDP と対比している。IPv6 では同じ問合せを NS メッセージに入れて「マルチキャストで送信する」。IPv6 にはブロードキャストが無いので,対比の相手である b はブロードキャストだと分かる。c も,NS に対する NA が「応答」に当たることから,ARP の応答であるリプライと決まる。
間違えやすい点。a は「宛先 MAC アドレス」ではない。宛先 MAC アドレスは分からないから問い合わせているのであり,フィールドに入れるのは IP アドレスである。b は空欄の後ろに「キャスト」が続くので「ブロード」だけを書く。c も「ARP c」と続くので「リプライ」(「レスポンス」「応答」と書いても意味は同じだが,ARP の用語としてはリプライ)。
本文中の d 〜 f に入れる適切な数値を答えよ。
〔d〕解答例
- 16
〔e〕解答例
- 48
〔f〕解答例
- 64
解説
本文の根拠
〔IPv6 アドレスの割当て〕
IPv6 アドレスは 128 ビットで構成され,d ビットずつを“:”で区切って表される。
図2
2001:0db8:aabb:0001:0000:0000:0000:0001 と省略せずに書いたアドレス
〔IPv6 アドレスの割当て〕
e ビットの MAC アドレスから f ビットの Modified EUI-64 形式のインタフェース識別子を生成する方法
d は図2から数えられる。省略しない表記では“:”で区切られた欄が8つあり,1欄は16進数4桁。16進数1桁は4ビットなので1欄は16ビット,8欄で128ビットになる(RFC 4291 2.2節)。
e と f は RFC 4291 の付録Aにある Modified EUI-64 の作り方である。イーサネットの MAC アドレス(48ビット)の上位24ビットと下位24ビットの間に 0xFFFE の16ビットを挟み,U/L ビットを反転して64ビットのインタフェース識別子にする。64ビットという長さは,図2でインタフェース識別子が後半4欄(16ビット×4)を占めていることとも合う。
間違えやすい点は単位。d は“:”1区切りの桁数(4桁)ではなくビット数を問うている。e・f の「EUI-64」の64がそのまま f の答えになっているので,e に 64 と書かないこと。
本文中の下線①について,LLA が有効な範囲を 20 字以内で答えよ。
解答例
- データリンク層で通信可能な範囲
解説
本文の根拠
〔IPv6 アドレスの割当て〕
①LLA はある範囲でネットワークインタフェースを一意に識別できる IPv6 アドレスであり,サブネットプレフィックスには“fe80::/64”を用いる。
〔IPv6 アドレスの割当て〕
データリンク層で通信可能な範囲にあるルータを発見する機能
リンクローカルアドレスは,名前のとおり1つのリンクの中だけで使うアドレスである。RFC 4291 2.5.6節は,リンクローカルアドレスは単一のリンク上でのアドレス付けに使うよう設計されており,ルータはリンクローカルの送信元・宛先をもつパケットを他のリンクへ転送してはならないと定めている。つまり有効範囲は,ルータを越えずに届く範囲=データリンク層で通信できる範囲である。
本文にもこの範囲を指す言い方がある。NDP の機能の説明にある「データリンク層で通信可能な範囲」である。GUA が「インターネットを含むグローバルなネットワークで」一意なのと対比されている。
20字に収める。解答例は「データリンク層で通信可能な範囲」で15字。「同一リンク内」「同じセグメント内」「ルータを越えない範囲」も同じことを言っている。「社内ネットワーク」や「拠点内」は広すぎる(拠点の中でも L3SW を越えれば別のリンク)。
図3中の処理(ⅰ)及び(ⅴ)を行う目的を,55 字以内で答えよ。
解答例
- 同じデータリンク層上に同じIPv6アドレスを使用しているノードがいないことを確認するため
解説
本文の根拠
〔IPv6 アドレスの割当て〕
利用予定の IPv6 アドレスがほかのノードで利用されていないか確認する重複アドレス検出機能
図3の処理(ⅰ)
(ⅰ) ノード1は,仮の LLA を生成して NS メッセージに入れて送信し,ほかのノードから NA メッセージの応答がないことを確認する。
図3の処理(ⅴ)
(ⅴ) ノード1は,RA メッセージのサブネットプレフィックスと生成したインタフェース識別子を組み合わせた仮の GUA を NS メッセージに入れて送信し,ほかのノードから NA メッセージの応答がないことを確認する。
処理(ⅰ)と(ⅴ)は,NDP の3つめの機能として本文が挙げる重複アドレス検出(DAD,RFC 4862 5.4節)である。これから使う仮のアドレスを NS に入れて送り,同じアドレスを使っているノードがあれば NA で応答が返る。応答が無ければ重複は無いと判断して,(ⅱ)(ⅵ)で正式なアドレスにする。
(ⅰ)は LLA,(ⅴ)は GUA が対象なので,どちらのアドレスにも同じ確認をしている。確認する範囲は,NS がマルチキャストで届く範囲,すなわち同じデータリンク(リンク)の中である。図3の注1のとおり,NS の宛先は要請ノードマルチキャストアドレスで,同じアドレスをもつノードだけが受け取る。
55字に収める。解答例は「同じデータリンク層上に同じIPv6アドレスを使用しているノードがいないことを確認するため」で44字。要素は「同じリンク上で」「同じ IPv6 アドレス(仮のアドレス)を」「ほかのノードが使っていないことの確認」の3つ。「アドレスの重複を検出するため」だけでは,本文の機能名を言い換えただけで,何と何が重複するかが書けていない。
図3中の処理(ⅱ)の正式な LLA が fe80::8:800:200c:417a であり,処理(ⅳ)の RA メッセージに含まれるサブネットプレフィックスが 2001:db8:aabb:1::/64 であった場合に,処理(ⅴ)で生成される仮の GUA 及びプレフィックス長を答えよ。
〔GUA〕解答例
- 2001:db8:aabb:1:8:800:200c:417a
〔プレフィックス長〕解答例
- 64
解説
本文の根拠
図2
前半の 2001:0db8:aabb:0001 がサブネットプレフィックス,後半の 0000:0000:0000:0001 がインタフェース識別子であることを示している。
図3の処理(ⅴ)
RA メッセージのサブネットプレフィックスと生成したインタフェース識別子を組み合わせた仮の GUA
〔IPv6 アドレスの割当て〕
サブネットプレフィックスには“fe80::/64”を用いる。
LLA は fe80::/64 に,ノードが生成したインタフェース識別子(下位64ビット)を付けたものである。fe80::8:800:200c:417a の“::”を展開すると fe80:0000:0000:0000:0008:0800:200c:417a となり,下位64ビットのインタフェース識別子は 0008:0800:200c:417a である。
処理(ⅴ)は,RA で受け取ったサブネットプレフィックスと,生成済みのこのインタフェース識別子を組み合わせる。2001:db8:aabb:1::/64 の上位64ビット 2001:0db8:aabb:0001 に 0008:0800:200c:417a を続けると 2001:0db8:aabb:0001:0008:0800:200c:417a。先頭の0を省略すると 2001:db8:aabb:1:8:800:200c:417a,プレフィックス長は RA のプレフィックスと同じ 64 になる。
間違えやすい点。インタフェース識別子を取り出すとき,fe80 の後ろの“::”が0の欄を3つ分表していることに注意する(欄の数を数えて8欄にそろえる)。書くときは“::”で0の連続を省略できるが,このアドレスには0だけの欄が無いので省略する箇所は無い。
本文中の g に入れる適切な字句を答えよ。
〔g〕解答例
- デフォルトルータ
- デフォルトゲートウェイ
解説
本文の根拠
図3の処理(ⅳ)
(ⅳ) RS メッセージを受信したノード3は,GUA の生成に用いるサブネットプレフィックス,及びデフォルトルータを決定するための情報を RA メッセージに入れて,ノード1宛てに送信する。
〔IPv6 アドレスの割当て〕
ノード1は,ノード3を経由して外部のノードと通信を行うために,処理(ⅳ)で受信した,RA メッセージの送信元であるノード3の LLA を g に設定する。
外部(他のネットワーク)宛ての通信を託す先のルータを設定する,という文脈なので,g はデフォルトルータ(デフォルトゲートウェイ)である。IPv4 で DHCP から受け取っていたデフォルトゲートウェイに当たる。
本文の(ⅳ)の説明に「デフォルトルータを決定するための情報を RA メッセージに入れて」とある。RFC 4861 6.3.4節のとおり,ホストは RA を受け取ると,その送信元アドレス(ルータのリンクローカルアドレス)をデフォルトルータの一覧に加える。ノード3(L3SW1)の LLA がデフォルトルータになるのはこのためである。後の箇条書きの「SLAAC を利用して,PC の LLA,GUA,及び g を自動で設定することができる」も同じ語が入る。
解答例は「デフォルトルータ」又は「デフォルトゲートウェイ」。IPv6 の規格(RFC 4861)の用語はデフォルトルータで,本文もこの語を使っているが,IPv4 で一般的なデフォルトゲートウェイでも同じ機能を指すので正解になる。「ネクストホップ」は経路ごとの転送先のことで,ここでは不十分。
本文中の下線②について,P 主任がこのように考えた理由を,20 字以内で答えよ。
解答例
- PCを特定しづらくなるから
解説
本文の根拠
〔IPv6 アドレスの割当て〕
固定の MAC アドレスから Modified EUI-64 形式のインタフェース識別子を生成する方法は非推奨である。
〔IPv6 アドレスの割当て〕
PC のインタフェース識別子が疑似乱数関数を用いてランダムに生成される場合,②利用者のプライバシー保護に有用であるが,PC 管理の観点で考慮が必要になると P 主任は考えた。
MAC アドレスから作るインタフェース識別子は,どのネットワークにつないでも同じ値になるので,通信の相手や経路上の第三者がその PC を追跡できる。これが非推奨とされる理由である(RFC 8064 は,安定したインタフェース識別子に MAC アドレスを埋め込まないよう勧めている)。ランダムに生成すればこの追跡を防げるので,プライバシー保護に役立つ。
裏返すと,管理する側にとっても IPv6 アドレスから PC を突き止めにくくなる。IPv4 では DHCP サーバが IPv4 アドレスを払い出していたので,どの PC にどのアドレスを渡したかを把握できた。SLAAC でランダムに作るアドレスは PC が自分で決めるので,FW のログなどに残った IPv6 アドレスがどの PC のものかを調べにくい。これが「PC 管理の観点」での考慮点である。
20字に収める。解答例は「PCを特定しづらくなるから」で13字。講評はこの設問の正答率が低かったとしている。下線の前半(プライバシー保護)の理由を書いてしまうと,設問が問う「考慮が必要になる」理由にならない。
採点講評(IPA)
設問2では,(6)の正答率が低かった。プライバシー保護を目的として,IPv6のインタフェース識別子だけでなくMACアドレスをランダムに生成するケースも増えているので,PCがもつ識別子をランダムにすることによって得られるメリットと,新たに発生する課題について理解を深めてほしい。
本文中の h に入れる適切な字句を答えよ。
〔h〕解答例
- TCP
解説
本文の根拠
〔IPv6 の名前解決〕
EDNS を利用できるときには,両方のサーバ間で調整した最大のメッセージサイズまでであれば,512 バイトを超える DNS メッセージであっても UDP で送受信します。
〔IPv6 の名前解決〕
DNS メッセージが最大のメッセージサイズを超えるときや,EDNS に対応していない権威 DNS サーバと 512 バイトを超える DNS メッセージを送受信するときには,h で送受信することになります。
DNS は通常 UDP で送受信し,UDP で運べる大きさは EDNS が無ければ 512 バイト(RFC 1035 4.2.1節),EDNS があれば双方が通知したサイズまで(RFC 6891 6.2.3節)である。これを超える応答は,サーバが途中で切って TC(切り詰め)ビットを立てて返し,受け取った側は TCP で問い合わせ直す(RFC 7766)。
本文は,UDP で送れる場合を先に述べ,「最大のメッセージサイズを超えるとき」と「EDNS に対応していない権威 DNS サーバと 512 バイトを超える」ときを並べている。どちらも UDP の上限を超える場合なので,残る送受信の手段は TCP である。
間違えやすい点。「TCP 53番ポート」までは要らない。フラグメント(IP の分割)で送る,と考えるのは誤りで,DNS は大きなメッセージを TCP に切り替えて送る。
図5中の AAAA レコードの応答について,“saas.example.com.”にアクセスするための V 社 SaaS の IPv6 アドレス,及び V 社 SaaS の IPv6 アドレスを管理している権威 DNS サーバの FQDN を,図5中の字句を用いて全て答えよ。
〔IPv6アドレス〕解答例
- 2001:db8:xxxx::10,2001:db8:xxxx::20
〔FQDN〕解答例
- ns1.example.net.,ns2.example.net.
解説
本文の根拠
図5
saas.example.com. 3600 IN CNAME dual-saas.example.net.,dual-saas.example.net. 240 IN AAAA 2001:db8:xxxx::10,dual-saas.example.net. 240 IN AAAA 2001:db8:xxxx::20 の3行。
図5
example.net. 172800 IN NS ns1.example.net.,example.net. 172800 IN NS ns2.example.net. の2行。
図5 注記1
saas.example.com. は,V 社 SaaS の FQDN である。
ANSWER SECTION から追う。saas.example.com. は CNAME(別名)で,正式な名前は dual-saas.example.net. である。その dual-saas.example.net. に AAAA レコードが2件あるので,V 社 SaaS の IPv6 アドレスは 2001:db8:xxxx::10 と 2001:db8:xxxx::20 の両方である。
権威 DNS サーバは AUTHORITY SECTION の NS レコードで分かる。AAAA レコードをもつ名前は example.net. ゾーンにあり,その NS が ns1.example.net. と ns2.example.net. である。ADDITIONAL SECTION の A レコード(198.51.100.α,β)は,この2台の IPv4 アドレスを添えたもの(グルー)で,FQDN ではない。
間違えやすい点。設問は「全て」に下線を引いている。AAAA も NS も2件ずつあるので,片方だけでは足りない。saas.example.com. の権威サーバ(example.com. の NS)はこの応答に載っていないので,図にない名前を推測で書かないこと。FQDN は末尾のドットまで図5のとおりに書く。
本文中の下線③について,従業員が異常に気付くことができないと P 主任が考えた理由を,45 字以内で答えよ。
解答例
- IPv4にフォールバックしてSaaSの同じWebページにアクセスするから
解説
本文の根拠
〔IPv6 の名前解決〕
AAAA レコードと A レコードの応答をほぼ同じタイミングで受信した場合には,IPv6 を優先して通信を行います。
〔IPv6 の名前解決〕
IPv6 と IPv4 の両方に対応する Web サイトの名前解決を行う場合に,PC は AAAA レコードと A レコードを用いて名前解決を要求することで,IPv6 アドレスと IPv4 アドレスの両方を取得します。
〔IPv6 の名前解決〕
③IPv6 のネットワークだけが不通となった場合に,利用している OS や Web ブラウザによっては従業員が異常に気付くことができず,情報システム部に異常を連絡できない可能性があると P 主任は考えた。
デュアルスタックの PC は,IPv6 と IPv4 の両方のアドレスを取得し,IPv6 を優先して接続を試みる。IPv6 で接続できないと,IPv4 で接続し直す。これをフォールバックといい,OS やブラウザは待ち時間を短くするために両方を並行して試す仕組み(Happy Eyeballs,RFC 8305)を実装している。
本文の R 係長の説明のとおり,PC は AAAA と A の両方を取得しており,IPv6 だけが不通なら IPv4 で同じ Web ページが開く。利用者から見ると普段どおり使えるので,異常に気付かない。講評も「IPv4 で同じ Web ページにアクセスできることがあり,異常に気付きづらい」と書いている。本文が下線の直後で監視サーバを置くことにしたのはこのためである。
45字に収める。解答例は「IPv4にフォールバックしてSaaSの同じWebページにアクセスするから」で36字。「IPv4 に切り替わる」ことと「同じページが見える(利用者から違いが分からない)」ことの両方を入れる。講評はこの設問の正答率が低かったとしている。
採点講評(IPA)
設問3では,(3)の正答率が低かった。IPv4とIPv6のデュアルスタックのネットワークでは,IPv6のネットワークに障害が発生しても,IPv4で同じWebページにアクセスできることがあり,異常に気付きづらい。IPv6のネットワークを設計する際には,監視方法についても考慮が必要になることを理解してほしい。
図6中の a〜d のインタフェース名について,GUA を割り当てない目的を,50 字以内で答えよ。
解答例
- インターネットからルータA,ルータB及びFWにアクセスできないようにするため
解説
本文の根拠
図6 アドレス一覧
ルータA:a は fe80::1/64,GUA は未割当て。ルータB:b は fe80::2/64,未割当て。c は fe80::1/64,未割当て。FW:d は fe80::2/64,未割当て。
図6の概要
ルータB には,ルータA の LLA をネクストホップとするデフォルトルートを設定する。
図6の概要
OSPFv3 では LLA を用いて隣接関係を確立して IPv6 の経路制御を行うので
a〜d は,ルータA とルータB の間,ルータB と FW の間のインタフェースである。LLA はリンクの外へ転送されない(RFC 4291 2.5.6節)ので,GUA を付けなければ,インターネットのどこからもこれらのインタフェースを宛先にしたパケットは届かない。ルータや FW そのものを外部からの攻撃(管理画面へのアクセスなど)にさらさないために,GUA を割り当てない。
それでも経路制御は成り立つ。本文のとおり,ルータB のデフォルトルートはルータA の LLA をネクストホップにしており,ISP のルータA もルータB の LLA をネクストホップにした静的経路をもつ。OSPFv3 も LLA で隣接関係を結ぶ(RFC 5340)。転送に必要なのはネクストホップの LLA だけなので,GUA は無くてよい。
50字に収める。解答例は「インターネットからルータA,ルータB及びFWにアクセスできないようにするため」で38字。守る対象(ルータA,ルータB,FW)と,何から(インターネットから)を書く。「GUA が不要だから」は理由であって目的ではない。
本文中の下線④について,GUA を“静的に”割り当てることによって得られる利点を,経由するネットワーク機器を調べるときに使用されるコマンド名を用いて,45 字以内で答えよ。
解答例
- traceroute6を利用して調べるときに各機器を識別しやすくする。
解説
本文の根拠
図6の概要
④FW と各拠点の L3SW との間の,PC やサーバを接続しないネットワークに GUA を割り当てる必要はないが,静的に割り当てる
〔IPv6 の名前解決〕
データセンターに監視サーバを導入して,IPv6 のインターネットへのアクセスや,各拠点の L3SW の GUA に対して ping6 コマンドによる監視を行うことにした。
経由するネットワーク機器を調べるコマンドは traceroute(IPv6 では traceroute6)である。traceroute6 はホップリミットを1から順に増やしてパケットを送り,途中の機器が返す ICMPv6 Time Exceeded(RFC 4443 3.3節)の送信元アドレスを並べて経路を表示する。
このとき返ってくる送信元アドレスが,機器ごとに決まった GUA であれば,表示されたアドレスからどの機器を通ったかがすぐ分かる。静的に割り当てるのは,アドレスが変わらず,一覧(図6の表)と突き合わせられるようにするためである。監視サーバから拠点の L3SW へ ping6 を打つ運用とも組み合わせて,障害のあった区間を切り分けやすくなる。
45字に収める。解答例は「traceroute6を利用して調べるときに各機器を識別しやすくする。」で35字。設問が指定するコマンド名を必ず入れる。講評はこの設問の正答率は平均的だったとして,traceroute が切り分けに役立つことを挙げている。
採点講評(IPA)
設問4では,(2)の正答率は平均的であった。tracerouteコマンドは,pingコマンドと同様にネットワークの状態確認やトラブルシューティングにおいて非常に有用なツールである。障害発生時の切り分けや早期復旧にも役立つので,ネットワーク関連のコマンドやツールを使いこなすスキルを身に付けてほしい。
本文中の下線⑤の設定を行うために,各拠点の L3SW で行われる動作を,ICMPv6 のメッセージ名を用いて 40 字以内で答えよ。
解答例
- PCが送信したRSメッセージに対してRAメッセージを応答する。
解説
本文の根拠
図6の概要
⑤PC は,SLAAC を用いて IPv6 アドレス及びデフォルトルータを設定する。
図3の処理(ⅲ)
(ⅲ) ノード1は,RS メッセージを全ルータマルチキャストアドレス宛てに送信する。
図3の処理(ⅳ)
(ⅳ) RS メッセージを受信したノード3は,GUA の生成に用いるサブネットプレフィックス,及びデフォルトルータを決定するための情報を RA メッセージに入れて,ノード1宛てに送信する。
SLAAC で PC が GUA とデフォルトルータを決めるには,ルータから RA を受け取る必要がある。PC は起動時に RS を全ルータマルチキャストアドレス宛てに送り,これを受けたルータが RA を返す(RFC 4861 6.2.6節)。拠点1では,ノード3が L3SW1 なので,各拠点の L3SW がこの役を担う。
本文の図3がこの手順そのもので,(ⅲ)で PC が RS を送り,(ⅳ)で L3SW1 がサブネットプレフィックスとデフォルトルータを決める情報を RA で返す。設問は「ICMPv6 のメッセージ名を用いて」とあるので,RS と RA の名前を使って書く。
40字に収める。解答例は「PCが送信したRSメッセージに対してRAメッセージを応答する。」で31字。L3SW は RS を受けなくても定期的に RA を送る(RFC 4861 6.2.4節)が,本文の図3の流れに沿って RS への応答として書けばよい。
表1中の [ ア ] 〜 [ ケ ] に入れる適切な字句を答えよ。
〔ア〕解答例
- fe80::1
〔イ〕解答例
- b
〔ウ〕解答例
- fe80::2
〔エ〕解答例
- c
〔オ〕解答例
- fe80::1
〔カ〕解答例
- d
〔キ〕解答例
- fe80::2
〔ク〕解答例
- f
〔ケ〕解答例
- fe80::1
解説
本文の根拠
図6 アドレス一覧
ルータA:a は fe80::1/64,GUA は未割当て。ルータB:b は fe80::2/64,未割当て。c は fe80::1/64,未割当て。FW:d は fe80::2/64,未割当て。e は fe80::1/64,2001:db8:yyyy:1::1/64。f は fe80::1/64,2001:db8:yyyy:2::1/64。L3SW1:g は fe80::2/64,2001:db8:yyyy:2::2/64。h は fe80::1/64,2001:db8:yyyy:3::1/64。
図6の概要
ルータB には,ルータA の LLA をネクストホップとするデフォルトルートを設定する。
S 課長との会話
項番3と項番5は,拠点1のネットワーク宛ての経路情報です。項番4と項番6は,ルータB から配布されるデフォルトルートによって登録される経路情報です。
LLA は同じリンク上でしか意味をもたないので,ネクストホップは「隣の機器の,こちら側のインタフェースの LLA」,出口は「自分の,そのリンクにつながるインタフェース」になる。fe80::1 が a にも c にも e にもあるように,LLA はリンクごとに重複してよい。
項番1(ルータB のデフォルトルート)はルータA へ向かう。隣はルータA の a(fe80::1),出口はルータB の b。ア=fe80::1,イ=b。項番3(ルータB から拠点1の 2001:db8:yyyy:3::/64)は FW へ向かう。隣は FW の d(fe80::2),出口は c。ウ=fe80::2,エ=c。項番4(FW のデフォルトルート)はルータB へ向かう。隣はルータB の c(fe80::1),出口は d。オ=fe80::1,カ=d。項番5(FW から 3::/64)は L3SW1 へ向かう。隣は L3SW1 の g(fe80::2),出口は f。キ=fe80::2,ク=f。項番6(L3SW1 のデフォルトルート)は FW へ向かう。隣は FW の f(fe80::1)で,出口は表にあるとおり g。ケ=fe80::1。
間違えやすい点。自分のインタフェースの LLA をネクストホップに書いてしまうこと(出口が c なら,ネクストホップは c の向かいの d)。拠点宛ての経路でも,ネクストホップに GUA(2001:db8:yyyy:2::2 など)ではなく LLA を書く。OSPFv3 が LLA で経路を交換するからである(RFC 5340)。
本文中の下線⑥について,表1中の項番2の経路情報を設定しない場合に,インターネットから未使用の GUA 宛てに送信された IP パケットを,ルータA 及びルータB はどのように処理するか。IPv4 の“TTL”と同じように用いられる,“ホップリミット”という字句を用いて 35 字以内で答えよ。
解答例
- ホップリミットが0になるまで相互に転送し合い,廃棄する。
解説
本文の根拠
P 主任の説明
ISP のルータA には,ルータB の LLA をネクストホップとする 2001:db8:yyyy::/48 宛ての静的経路が設定されます。
表1 項番1・2
項番1 ルータB,静的経路制御,::/0,ネクストホップは[ ア ],出口は[ イ ]。項番2 ルータB,静的経路制御,2001:db8:yyyy::/48,ネクストホップはなし,出口は Null(注1)。
P 主任の説明
⑥項番2の経路情報を設定しない場合,ルーティングループが発生します
未使用の GUA(たとえば 2001:db8:yyyy:ff::1)宛てのパケットをたどる。ルータA は /48 の静的経路に従ってルータB へ送る。ルータB には,社内で使っている /64(1::〜3::)の経路はあるが,未使用のサブネットの経路は無い。項番2が無ければデフォルトルート(項番1)に当たり,ルータA へ送り返す。ルータA はまた /48 でルータB へ送る。これがルーティングループである。
ループは永遠には続かない。IPv6 ヘッダーのホップリミット(RFC 8200。IPv4 の TTL に当たる)は,ルータが転送するたびに1減り,0になったパケットは廃棄される(ICMPv6 Time Exceeded を返す。RFC 4443 3.3節)。項番2の Null 経路があれば,ルータB は /48 の中の未使用アドレス宛てをその場で捨てるので,往復は起きない。
35字に収める。解答例は「ホップリミットが0になるまで相互に転送し合い,廃棄する。」で28字。「ルータA とルータB の間で行き来する」ことと「ホップリミットが0で廃棄される」ことの両方を書く。
本文中の下線⑦について,表1中の項番2の経路情報が選択されるのはなぜか。25 字以内で答えよ。
解答例
- ロンゲストマッチによって選択されるから
解説
本文の根拠
P 主任の説明
⑦項番1と項番2の両方の経路情報に該当する IP パケットの転送では,ルータB は項番2の経路情報を選択します
表1 項番1・2
項番1 ルータB,静的経路制御,::/0,ネクストホップは[ ア ],出口は[ イ ]。項番2 ルータB,静的経路制御,2001:db8:yyyy::/48,ネクストホップはなし,出口は Null(注1)。
ルータは,宛先に当てはまる経路が複数あるとき,プレフィックス長が最も長い(最も具体的な)経路を選ぶ。これをロンゲストマッチ(最長一致)という。
項番1の ::/0 はプレフィックス長0で全ての宛先に当てはまる。項番2の 2001:db8:yyyy::/48 は長さ48で,Q 社のアドレスだけに当てはまる。両方に当たるパケット(Q 社のアドレス宛て)では,長い /48 の項番2が選ばれる。さらに社内で使っている /64(項番3など)があれば,そちらがもっと長いので優先され,項番2は「使っていない残り」だけを受け持つ。
25字に収める。解答例は「ロンゲストマッチによって選択されるから」で19字。「プレフィックス長が長い経路が優先されるから」でも同じ意味になる。どちらも静的経路なので,アドミニストレーティブディスタンスやメトリックの比較で決まるのではない。
本文中の i に入れる適切な字句を答えよ。
〔i〕解答例
- NAPT
解説
本文の根拠
図1の概要
ルータB にはデフォルトルート及び NAPT を設定している。
S 課長との会話
IPv4 のネットワークでは FW によるアクセス制御に加えて,ルータB に i を設定しているので,インターネットから社内ネットワークには簡単に通信できない設計になっています。
現状のルータB には,図1の概要に書かれているとおり NAPT が設定されている。NAPT(RFC 3022)は,社内のプライベートアドレスとポート番号を,グローバルアドレス1つと別のポート番号に対応付けて変換する。対応表は社内から外へ出た通信で作られるので,外から始まる通信には変換先が無く,社内に届かない。これが「簡単に通信できない」理由である。
IPv6 では,全ての PC に GUA を割り当てるので,アドレス変換をしない。インターネットから社内の PC の GUA を宛先にしたパケットがそのまま届きうるので,FW のアクセス制御だけが防壁になる。本文が「慎重に検討する必要があります」と言うのはこのためである。
間違えやすい点。「NAT」と答えると,アドレスだけを1対1で変換する方式も含み,本文の図1の概要にある語とも違う。本文に出てくる語をそのまま使って NAPT と書く。
本文中の下線⑧について,PMTUD によって何が検出されるか。20 字以内で答えよ。
解答例
- 通信経路における最小のMTU
解説
本文の根拠
P 主任の説明
例えば,中継する機器が MTU サイズよりも大きいサイズの IP パケットを転送できないときに,⑧中継する機器から送信元にタイプ2の ICMPv6 メッセージである“Packet Too Big”を送信する PMTUD(Path MTU Discovery)に利用されています。
IPv6 では,ルータはパケットを分割(フラグメント)しない。送信元だけが分割できる(RFC 8200 4.5節)。そこで送信元は,経路上で通せる最大のパケットサイズ,つまり経路上の各リンクの MTU のうち最も小さい値(パス MTU)を知っておく必要がある。これを求めるのが PMTUD(RFC 8201)である。
送信元が大きなパケットを送り,途中の機器が次のリンクの MTU を超えると判断すると,Packet Too Big(ICMPv6 タイプ2,RFC 4443 3.2節)にそのリンクの MTU を入れて送信元へ返す。送信元はその値に合わせて送り直し,これを繰り返して最小の MTU に行き着く。FW がこの ICMPv6 を拒否すると,送信元は MTU を知ることができず,大きなパケットだけが届かない障害になる。
20字に収める。解答例は「通信経路における最小のMTU」で14字。「パス MTU」と答えても同じ意味だが,何を指すか(経路上の最小の MTU)まで書くほうが確実。
出典:令和7年度 春期 ネットワークスペシャリスト試験 午後Ⅱ 問1(表記を一部改変)