助け合いフォーラム

Cisco

CCNA(200-301)
問題ID : 8221
問題を開く
MACアドレス「11-11-11-11-11-11」を持つRouterAのFa0/0で、EUI-64によって 自動的にリンクローカルアドレスが生成された。
生成されたリンクローカルアドレスはどれか。

正解

fe80::1311:11ff:fe11:1111

解説

リンクローカルアドレスは、そのリンク上でのみ使われるユニキャストアドレスです。アドレスのフィールドは以下の2つにわけられます。


EUI-64は、MACアドレス(48ビット)に「fffe」という16ビットをプラスし 64ビットにするフォーマットです。リンクローカルユニキャストアドレスのインターフェースIDを自動的に生成する際に利用されます。
例えば「11-22-33-44-55-66」というMACアドレスを持つインターフェースの場合、以下のように「1322:33ff:fe44:5566」というインターフェースIDになります。


設問の「11-11-11-11-11-11」の場合は「1311:11ff:fe11:1111」というインターフェースIDになります。
また、リンクローカルアドレスの前半64ビットは「fe80:0000:0000:0000」と決められています。

よって正解は
・fe80::1311:11ff:fe11:1111
です。

その他の選択肢については、以下の通りです。
・2001:db8::1311:11ff:fe11:1111
前半64ビットが正しくないので誤りです。

・fe80::1111:11ff:fe11:1111
・fe80::1111:1111:1111:1111
インターフェースIDが正しくないので誤りです。

・fd00::1111:1111:1111:1111
前半64ビットとインターフェースIDが正しくないので誤りです。

参考

【ICMPv6】(Internet Control Message Protocol for IPv6)
ICMPv6は、IPv6用のICMPです。
ICMPv6では、IPv4で使われていたICMPのエラー通知などの機能に加えて、ARPに相当するアドレス解決の機能もあわせ持つようになりました。
ICMPv6の主な機能は以下の通りです。
・エラー通知:パケットが破棄された理由を送信元に通知する機能
・近隣探索:同一セグメント上のデバイスのアドレスを調べる機能(NDやNDPとも呼ばれる)

【NDPの主なポイント】(Neighbor Discovery Protocol:近隣探索プロトコル)
NDPは同一セグメント上のデバイスのMACアドレスを調べるために以下のICMPv6パケットを使用します。
・NS(Neighbor Solicitation:近隣要請):MACアドレスを問い合わせるパケット
・NA(Neighbor Advertisement:近隣広告):NSへの応答パケット

NDPは同一セグメント上のデバイスのIPv6アドレスを調べるために以下のICMPv6パケットを使用します。
・RS(Router Solicitation:ルータ要請):RAを要請するパケット
・RA(Router Advertisement:ルータ広告):セグメントのプレフィックスなどを伝えるパケット

NDPによって以下の機能が実現されます。
・MACアドレスの解決(IPv4のARPに相当)
・SLAAC(StateLess Address Auto Configuration:アドレスの自動設定)
・DAD(Duplicate Address Detection:重複アドレスの検出)

【IPv6アドレスの割り当て方法】
IPv6アドレスの割り当てには複数の方法があります。


【SLAAC】(StateLess Address Auto Configuration)
SLAACはIPv6に標準で搭載されたアドレス自動設定機能です。SLAACはICMPv6のNDPを利用して自動設定を行います。SLAACは以下の流れでアドレス設定を行います。

1. IPv6ルーティングが有効なルータが定期的にRAによって、そのセグメントのプレフィックスを広告する
2. ネットワークに追加されたホストはRSを送信し、ルータがRAを即時に送信するよう要求する
3. ホストは、受信したRAからプレフィックスを、EUI-64によってインターフェースIDを取得し、IPv6アドレスを自動設定する。また、RAを送信したルータのIPv6アドレスをデフォルトゲートウェイとして設定する
4.アドレス設定が完了し、通信が可能になる

【EUI-64】
EUI-64は、MACアドレス(48ビット)に「fffe」という16ビットをプラスし 64ビットにするフォーマットです。リンクローカルユニキャストアドレスのインターフェースIDを自動的に生成する際に利用されます。
例えば「11-22-33-44-55-66」というMACアドレスを持つインターフェースの場合、以下のように「1322:33ff:fe44:5566」というインターフェースIDになります。

EUI-64で生成されるインターフェースIDは64ビットですので、プレフィックス長は必然的に64ビット(/64)となります。言い換えれば、自動アドレス割り当てを利用する場合はプレフィックス長が64ビットとなるように設計する必要があります。

【コマンド構文:インターフェースのIPv6情報を表示】
#show ipv6 interface

上記コマンドにより、インターフェースに設定しているIPv6アドレスを確認することができます。
上に戻る

リンクローカルアドレス生成の過程

投稿日 2024/09/06

リンクローカル生成時の過程の計算についての質問です。
なぜ先頭から7ビット目を反転(2進数)にする必要があるのでしょうか。
また、48ビットを24ビットに分けてその間に16ビットを追加する理由はなぜなのでしょうか。先頭に追加するのではだめなのでしょうか。

2024/09/06 15:38

はじめまして。回答にはなっておりませんが、CCNAを取る段階ではこれについては考えないほうがいいかもしれません。
研究者などが考えて定義したものなので、どのようにしてこのような計算かはわかりません。というのが自分の回答です。
ちなみにビット反転はサブネットマスク計算しかり、ACLのワイルドカードもそうですが、余談でL2のマルチキャストのMACアドレスも似ている計算をしますので、
2進数のビットを反転させると10進数・16進数ではどういう数値になるか計算することは大事なことかもしれませんね。


コメント

この返信に対して
コメントを記入できます

2024/09/07 01:32

経緯や何かはこちらが参考になるかなと思います。

Geekなページ:IPv6アドレスにおける「インターフェース識別子」という名称の謎とModified EUI-64によるIPv6アドレス生成
https://www.geekpage.jp/blog/?id=2020-7-21-1

EUI-64では、グローバルに一意な値である場合にはuniversal/localビットが0なので、 64ビットのうち、最下位ビットのみが1となるような値(注:インターフェース識別子部分が「::1」となるようなアドレスのこと)は、グローバルに一意という意味があることになってしまいます。

たとえば、2001:db8::1というユニキャストIPv6アドレスを手動で設定したとき、Modified EUI-64ではなく、通常のEUI-64を採用していた場合、 インターフェース識別子に含まれるuビットが0 となるので、 64ビットのうち最下位ビットのみが1というインターフェース識別子がグローバルに一意であるものを示すことになってしまう わけです。

しかし、 手動設定での2001:db8::1というユニキャストIPv6アドレスの下位64ビットは世界で一意となるようなユニークな値ではありません。 こういう設定を行いたい人が多そうなので、 Modified EUI-64では、uビットが0の場合はlocalで、1の場合がuniversalという風に、意味を反転させたのです。


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?