
はじめに
IPv6は、現在広く使用されている第4バージョンのIPプロトコルであるIPv4の後継であり、このプロトコルのロジックのほとんどを自然に継承します。 そのため、たとえば、IPv4とIPv6のパケットヘッダーは非常に似ており、同じパケット転送ロジックが使用されます-受信者アドレスに基づくルーティング、TTLを使用したネットワークでのパケットの使用時間の制御など。 ただし、大きな違いがあります。IPアドレス自体の長さを変更することに加えて、指向性(ブロードキャスト、ダイレクトブロードキャスト)など、あらゆる形式のブロードキャストを使用することは拒否されました。 代わりに、マルチキャストが使用されるようになりました。 ICMPに機能が割り当てられたARPプロトコルも消滅しました。これにより、単純な禁止がすでに不可能になったため、情報セキュリティ部門はこのプロトコルにより注意を払わざるを得なくなります。 読者がほとんどのITリソースで簡単に見つけることができるため、プロトコルで発生したすべての変更については説明しません。 代わりに、IPv6で動作するようにCisco IOSデバイスを設定する実用的な例を示します。
多くの初心者ネットワークの専門家は、「今すぐIPv6を学習する必要がありますか?」と自問します。私たちの意見では、今日、IPv6を個別の章または技術として扱うことはできなくなりました。 そのため、たとえば、ダイナミックルーティングプロトコルEIGRPの動作を検討する場合、IPv4とIPv6の両方に対して同時にラボでテストネットワークを設定する価値があります。 言葉から行動に移ろう!
IPv6アドレッシング
IPv6アドレスは128ビット長で、IPv4の4倍の長さです。 IPv6アドレスの数は膨大で、2128≈3.431038になります。 IPv6アドレス自体は、プレフィックスとホストアドレス(インターフェイス識別子とも呼ばれます)の2つの部分に分けることができます。 この区分は、クラスレスルーティングにIPv4で使用されていたものと非常に似ています。
IPv6アドレスは16進数で記述され、4桁の各グループはコロンで区切られます。 たとえば、2001:1111:2222:3333:4444:5555:6666:7777
マスクはスラッシュで示されます(例:/ 64)。
IPv6アドレスでは、ゼロの長いシーケンスが発生する可能性があるため、アドレスの簡略化されたレコードが提供されます。 まず、数字の各グループの先行ゼロは記録されない場合があります。つまり、アドレス2001:0001:0002:0003:0004:0005:0006:7000の代わりに、2001:1:2:3:4:5:6:7000を書き込むことができます。 末尾のゼロは削除されません。 アドレス内の数字のグループ(または行内の複数のグループ)にゼロしか含まれていない場合、二重コロンで置き換えることができます。 たとえば、アドレス2001:1:0:0:0:0:0:1の代わりに、2001:1 :: 1の形式の短縮レコードを使用できます。 この方法でアドレスを1回だけ減らすことができることに注意してください。
以下は、IPv6アドレスを書き込むための正しい形式と誤った形式です。
正しいエントリ。
2001:0000:0db8:0000:0000:0000:07a0:765d
2001:0:db8:0:0:0:7a0:765d
2001:0:db8 :: 7a0:765d
誤った形式。
2001 :: db8 :: 7a0:765d
2001:0:db8 :: 7a:765d
面白いカット。
:: / 0-デフォルトゲートウェイ
:: 1-ループバック
2001:2345:6789 :: / 64-あるネットワークのアドレス
ただし、すべてのIPv6アドレスを広域ネットワーク上のホストに割り当てることはできません。 いくつかの予約範囲とアドレスタイプがあります。 IPv6アドレスは、次の3つのタイプのいずれかです。
•ユニキャスト
•マルチキャスト
•エニーキャスト
ユニキャストアドレスは、同様のIPv4アドレスと非常に似ており、ネットワークデバイスインターフェイス、サーバー、およびエンドユーザーホストに割り当てることができます。 グループまたはマルチキャストアドレスは、グループ内の複数の受信者に一度にパケットを配信するために使用されます。 エニーキャストアドレスを使用する場合、データはこのアドレスが割り当てられている最も近いノードによって受信されます。 IPv6がサポートされているアドレスのリストにブロードキャストアドレスがないという事実に特に注意を払う価値があります。 ユニキャストアドレスの間でも、より詳細なタイプの内訳があります。
•リンクローカル
•グローバルユニキャスト
•一意のローカル
一意のローカルグループに属するアドレスはRFC 4193で説明されており、その目的はRFC 1918で説明されているプライベートIPv4プロトコルアドレスに非常に似ています。リンクローカルグループアドレスは、同じL2ネットワークに接続されたデバイス間で情報を転送するために使用されます。 ほとんどのグローバルユニキャストアドレスは、特定のネットワークノード上のインターフェイスに割り当てることができます。 予約済みアドレスのリストを以下に示します。
住所
| 仮面
| 説明
| 注釈
|
::
| 128
| - | IPv4のアナログ0.0.0.0
|
:: 1
| 128
| ループバック
| IPv4のアナログ127.0.0.1
|
:: xx.xx.xx.xx
| 96
| ビルトインIPv4
| IPv4互換。 非推奨、使用されていません
|
:: ffff:xx.xx.xx.xx
| 96
| IPv6にマップされたIPv4
| IPv6をサポートしないホストの場合
|
2001:db8 ::
| 32
| ドキュメンテーション
| 例のために予約されています。 RFC 3849
|
fe80 ::-febf ::
| 10
| リンクローカル
| IPv4のアナログ169.254.0.0/16
|
fc00 ::
| 7
| 一意のローカルユニキャスト
| 彼はサイトローカルを置き換えました。 RFC 4193
|
ffxx ::
| 8
| マルチキャスト
| - |
基本的なインターフェイスのセットアップ
IPv6ルーティングは、ipv6 unicast-routingコマンドを使用して有効にします。 原則として、ルーターは指定されたコマンドを入力せずにIPv6プロトコルをサポートしますが、それなしでは、デバイスはIPv6のホストとして機能します。 IPv4で慣れているコマンドの多くはIPv6にもありますが、ipオプションの代わりにipv6ワードが必要です。
インターフェイスでアドレスを設定するには、いくつかの方法があります。 IPv6サポートを有効にすると、インターフェイスにリンクローカルアドレスが自動的に割り当てられます。
R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#int gi0/0 R1(config-if)#ipv6 enable R1(config-if)#^Z R1#show ipv6 int bri Ethernet0/0 [administratively down/down] unassigned GigabitEthernet0/0 [up/up] FE80::C800:3FFF:FED0:A008
リンクローカルアドレスの一部は、インターフェイスMACアドレスに基づいてEUI-64アルゴリズムを使用して計算されます。 これを行うために、48バイトのMACアドレスの中央に2バイトが自動的に追加されます。16進表記ではFFFEの形式であり、MACアドレスの最初のバイトの7番目のビットが反転します。 以下の図は、説明したアルゴリズムの動作を概略的に示しています。


上記のリンクローカルアドレスをルーターのGi0 / 0インターフェイスの物理アドレスと比較します(sho int Gi0 / 0コマンドの出力の非必須部分は削除されています)。
R1#show int gi0/0 GigabitEthernet0/0 is up, line protocol is up Hardware is i82543 (Livengood), address is ca00.3fd0.a008 (bia ca00.3fd0.a008) EUI-64 IPv6 : CA00:3FFF:FED0:A008.
インターフェイスへのアドレスの手動割り当ては、ipv6 addressコマンドを使用して実行されます。たとえば、ipv6 address 2001:db8 :: 1/64。 ネットワークセグメントのアドレスを示すことのみが可能で、残りはEUI-64によって変換された物理インターフェイスアドレスを使用して自動的に割り当てられます。これには、eui-64キーワードを指定したコマンドを使用します。
R2#conf t R2(config)#int gi0/0 R2(config-if)#ipv ad 2001:db8::/64 eui-64 R2(config-if)#^Z R2#show ipv6 int bri Ethernet0/0 [administratively down/down] unassigned GigabitEthernet0/0 [up/up] FE80::C801:42FF:FEA4:8 2001:DB8::C801:42FF:FEA4:8
リンクローカルアドレスを使用した単一のL2セグメント内でのメッセージングが可能であり、場合によっては使用されますが、ほとんどの場合、インターフェイスには通常のルーティング可能なIPv6アドレスを割り当てる必要があります。 たとえば、OSPFまたはEIGRP近隣は、リンクローカルアドレスを使用して確立されます。 自動近隣検索およびその他のサービスプロトコルもリンクローカルアドレスで機能します
R1#sho ipv6 int brief Ethernet0/0 [administratively down/down] unassigned GigabitEthernet0/0 [up/up] FE80::C800:42FF:FEA4:8 2001:DB8::1 R1#sho ipv ei ne IPv6-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 Link-local address: Gi0/0 12 00:01:03 39 234 0 3 FE80::C801:42FF:FEA4:8 R1#ping FE80::C801:42FF:FEA4:8 Output Interface: GigabitEthernet0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FE80::C801:42FF:FEA4:8, timeout is 2 seconds: Packet sent with a source address of FE80::C800:42FF:FEA4:8 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/20/48 ms
当然、DHCPプロトコルを使用してIPv6のアドレスを自動的に割り当てる機能は保持されていました。 ただし、IPv6には、ステートレスとステートフルの2種類のDHCPがあり、それぞれipv6 address autoconfigコマンドとipv6 address dhcpコマンドを使用して設定されることに注意してください。
前述のように、IPv6はARPを使用しなくなりました。 ネイバー検出は、NDP(Neighbor Discovery Protocol)を使用してICMPメッセージを交換し、マルチキャストアドレスFF02 :: 1に送信することにより実行されます。
R1#show ipv6 neighbors IPv6 Address Age Link-layer Addr State Interface FE80::C801:42FF:FEA4:8 25 ca01.42a4.0008 STALE Gi0/0
Windowsファミリのオペレーティングシステムには、隣人のリスト(arp –aコマンドの類似物)を表示する機能もありますが、より長いシステムコールを使用する必要があります。
C:\>netsh interface ipv6 show neighbors Interface 1: Loopback Pseudo-Interface 1 Internet Address Physical Address Type -------------------------------------------- ----------------- ----------- ff02::c Permanent ff02::16 Permanent ff02::1:2 Permanent ff02::1:3 Permanent ff02::1:ff1e:f939 Permanent Interface 24: 4 Internet Address Physical Address Type -------------------------------------------- ----------------- ----------- 2001:db8:0: 5::1 00-11-5c-1b-3d-49 Reachable (Router) fe80::ffff:ffff:fffe Unreachable Unreachable fe80::211:5cff:fe1b:3d49 00-11-5c-1b-3d-49 Stale (Router) fe80::218:f3ff:fe73:33d7 Unreachable Unreachable fe80::a541:1a9:3b2d:7734 Unreachable Unreachable ff02::1 33-33-00-00-00-01 Permanent ff02::2 33-33-00-00-00-02 Permanent ff02::c 33-33-00-00-00-0c Permanent ff02::16 33-33-00-00-00-16 Permanent ff02::1:2 33-33-00-01-00-02 Permanent ff02::1:3 33-33-00-01-00-03 Permanent ff02::1:ff00:0 33-33-ff-00-00-00 Permanent ff02::1:ff00:1 33-33-ff-00-00-01 Permanent
同様に、ルーターはローカルセグメントで検索されますが、この場合、パケットはアドレスFF02 :: 2に送信されます。 関心のあるノードは、RS(ルーター要請)メッセージを送信し、そこにルーターからRA(ルーター広告)応答を受信します。 指定された回答には、このネットワークのIPプロトコルのパラメーターが含まれています。 説明されているプロセスを次の図に示します。

LANセグメントに接続されたルーターのディスカバリーは、ステートレスDHCPとも呼ばれるステートレスアドレス自動構成(SLAAC)手順を使用してホストIPv6アドレスを取得するために使用されます。
______________
UPD 5/05/14:同僚が解説で正しく述べているように、SLAACとステートレスDHCPを区別する必要があります。 マキシムとのテキストでは、重要な単語「MISTAKES」は省略されました。 哲学の教科書で、引用を文脈から引き裂くことは不可能であると言われていたことを覚えておいてください。そうしないと、「それ(引用)を考えるのは間違いです」と判明します:)
まとめると、「ステートレスアドレス自動設定(SLAAC)。これは、一部の文献では、ステートレスDHCPと呼ばれています。」
見落としと不実表示をおIびします
______________
(ルーティング、トンネリング、およびVRFの形式で続きます- ここ )。
この記事はマキシムクリマノフ (foxnetwork.ru、私は共著者)によって書かれたもので、幅広い読者向けに出版するように頼まれました。