Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6...

76
Junos ® ネットワークキングテクノロジー シリーズ Day One IPv6の探求 著者:クリス・グルンデマン 1章: IPv6の概要 ..................................................... 7 2章: IPv6のはじめに................................................ 25 3章: IPv6でのダイナミックルーティング ............................... 47 付録................................................................. 73

Transcript of Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6...

Page 1: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

Junos®ネットワークキングテクノロジーシリーズ

Day One:IPv6の探求

著者:クリス・グルンデマン

第1章:IPv6の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

第2章:IPv6のはじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

第3章:IPv6でのダイナミックルーティング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

付録 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Page 2: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

© 2011 by Juniper Networks, Inc. All rights reserved. Juniper Networks、Juniper Networksのロゴ、Junos、NetScreen、ScreenOSは、Juniper Networks, Inc.(以下、ジュニパーネットワークス)の米国およびその他の国における登録商標です。Junoseは、ジュニパーネットワークスの商標です。その他の商標、サービスマーク、登録商標、登録サービスマークは、それぞれの所有者に帰属します。

ジュニパーネットワークスは、本書に誤りが含まれることがあっても責任を負いません。ジュニパーネットワークスは予告なく本書を変更、修正、転載、改訂する権利を留保します。ジュニパーネットワークスが製造、販売する製品、あるいはその部品は、ジュニパーネットワークスが保有する、あるいはライセンスを受けた以下の米国特許のうち 1件または複数により保護されている場合があります。米国特許第 5,473,599号、第 5,905,725号、第 5,909,440号、第 6,192,051号、第 6,333,650号、第 6,359,479号、第 6,406,312号、第 6,429,706号、第 6,459,579号、第 6,493,347号、第 6,538,518号、第 6,538,899号、第 6,552,918号、第 6,567,902号、第 6,578,186号、第 6,590,785号。

発行者:Juniper Networks Books著者:クリス・グルンデマン主編集者:パトリック・エイムズ原稿整理・校正編集者:ナンシー・ケルベルJunosプログラムマネージャ:キャシー・ガデッキ

ISBN:978-1-936779-06-2(印刷物)印刷:Vervante Corporation(米国)ISBN:978-1-936779-07-9(電子書籍)

改訂:第 3版、2011年 1月 4 5 6 7 8 9 10 #7100132-en

著者の紹介クリス・グルンデマンは、IP、イーサネット、無線イーサネットの大規模ネットワークの設計、実装、運用を専門としています。JNCIE-M #449で、現在は tw telecom社に従事しており、既存および次世代の技術の評価、設計、実装、保守に向けた最先端技術に取り組んでいます。

クリスは CO ISOC(インターネット協会のコロラド支部)の創設者兼会長であり、ARINのポリシー策定プロセスにも積極的に参加しています。ジュニパーネットワークスに着目したニュース情報サイト、Burning With The Bushの主任開発者兼編集長を務めるかたわら、主にネットワーク運用、技術ポリシー、インターネットの将来に着目したインターネット関連の投稿を目的とした個人ブログも管理しています。

著者の謝辞本書の制作に貢献いただいた皆様に感謝を申し上げます。友人でもあるジュニパーネットワークスの常駐エンジニア、ネイト・デイ氏は、執筆にあたってインスピレーションを高めてくれました。パトリック・エイムズ氏は、編集者としても指導者としても絶対的な存在でした。キャシー・ガデッキ氏は、プロジェクトを軌道に乗せて、レビュープロセスで深い洞察力を発揮してくださいました。ベッカ・ニツァン氏からは、最初から最後まで、並外れた技術的専門知識を拝借しました。マシュー・モリアーティ氏のお力は、ご自身がよくわかっておられます。ライアン・プリベット氏とマーク・カルキンズ氏は、優秀なエンジニアとして、また、自己啓発の観点から、私のモチベーションの維持に貢献してくださいました。IETFとその寄稿者の皆さんは、IPv6プロトコルを定義し、駆動するための技術的なオープンスタンダードを作成してくださいました。これなしでは、本書(ひょっとしたらインターネットの未来も)存在しなかったでしょう。そして何よりも、本書を執筆することを含めて私が何かをするために必要な時間、サポート、そして愛を与えてくれた私の妻、エリン・グルンデマンに感謝したいと思います。皆さん、ありがとうございました。

本書は、www.juniper.net/dayoneからさまざまな形式で入手できます。 ご提案やご意見、ご批判がある場合は、[email protected]まで電子メールをお送りください。 Twitter(@Day1Junos)でDay Oneシリーズをフォローしてください。

ii

Page 3: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

iii

ポール・L・グルンデマン(1949~ 2010)に捧ぐ

これ以上望めないほどの偉大な父親であり、まれに見る偉大な人物でした。すべてのことに感謝します。父へ。

Page 4: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

iv

Day Oneへようこそ『Day One:IPv6の探求』は、Junosネットワーク技術シリーズの最初の Day Oneブックレットです。このシリーズは、Junosに実装されている IPv6プロトコルをはじめ、さまざまな主要ネットワーク技術を段階的に案内することを目的としています。

最初のブックレットである本書は、ネイティブの IPv6機能に重点を置いています。どんなネットワークでも、IPv6を IPv4と同時に実装する場合が多いと思われますが、すぐに統合の説明に入るよりも、IPv6ネイティブの段階的な説明から入るほうが、IPv6の全体像をよりよく理解できます。どうしてでしょうか。第一の理由は、特に Junosに実装する場合には、2つのプロトコルの間に設定や動作において多くの類似点があるものの、IPv6はIPv4とは別個の新しいプロトコルであるということです。事実、IPv6のパケットと IPv4のパケットは、ワイヤ上では互換性がありません。簡単に言うと、IPv6を実装すると、既存の物理的トポロジーに新しい論理的ネットワークのレイヤーを追加することになります。このシリーズの Day Oneブックレットでは、この観点から IPv6にアプローチします。IPv6のみから始めて、後続のブックレットでプロトコルの統合まで進むもう 1つの理由は、実習が盛り込まれているからです。これらのブックレットを読み、ご自身でトピックに取り組んでいくことにより、Junosにおける IPv6の設定と運用について、段階的に、より深く理解することができます。このように、段階的かつ系統的に進めていくことにより、重要事項を見落とすことなく、短時間での習得が可能になります。

Page 5: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

本書を読む前に知っておくべきこと

編集モードを使用した設定変更など、Junosおよび Junos CLIの基本を理解しておく必要があります。

ルーティングに関する基本的な知識とともに、IPv4ネットワークのある程度の経験が必要です。

本書は、インタフェースのアドレス指定やスタティックルートなどの基本的な IPv4接続を設定できること、基本的なネットワークを必要に応じてトラブルシューティングできる方を想定しています。

RIP、OSPF、IS-ISなどの IPv4ルーティングプロトコルの知識も役立ちます。

本書は、エンタープライズまたはサービスプロバイダのネットワークの経験があるエンジニアを対象としています。

本書は、IPv6を初めて使用するユーザーや、Junosで IPv6を初めて使用するユーザーを主な対象としていますが、経験のあるユーザーが再確認のために使用することもできるように作成されています。

本書を読み終わってから可能になること

IPv6アドレスの長さを理解し、IPv6アドレスを読み取り、IPv6の分類およびさまざまな既知の IPv6アドレスの認識方法を理解することができます。

すべてのタイプのインタフェースに inet6ファミリーおよび IPv6のアドレスを追加することにより、ご使用のネットワーク上でIPv6を有効にできます。

IPv6近隣探索を設定およびテストし、IPv6にスタティックルートを実装できます。

ping、traceroute、各種showコマンドなど、IPv6のトラブルシューティングおよび検証用の基本的なコマンドを使用できます。

基本的な IPv6ネイティブネットワークを構築するために必要な設定およびテストの作業をすべて完了できます。

RIPng、OSPF3、IS-ISの 3つの IGP(Interior Gateway Protocol)がどのようにして IPv6をサポートするかを理解できます。

現在のネットワーク内で、ご自身で選んだ IGPを使用して、IPv6の基本的なダイナミックルーティングの動作を有効にし、検証できます。

v

Page 6: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

付録本書『Day One:IPv6の探求』の印刷版をお読みの場合、本書はPDF版および電子版でも入手可能で、いずれも付録として数ページが補足されています。www.juniper.net/dayoneでは、本書の PDF版または電子版を無料でダウンロードできるほか、ジュニパーネットワークスから提供されているその他の出版物や情報も確認できます。

注 ご意見やご批判をお寄せください。ご提案は、電子メールで[email protected]までお送りください。

vi

Page 7: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章

IPv6の概要

IPv6とIPv4の互換性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

IPv6アドレスについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

IPv6プロトコルについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

近隣探索とSLAAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

IPv6アドレスの数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

第1章の「実践」の解答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Page 8: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

8 Day One:IPv6の探求

本書の読者の皆さんは、おそらく、IPv6(Internet Protocol version 6)に関して、また、IPv6を現在のネットワークでどのように活用できるかについて理解を深めたいと考えていることでしょう。IPv4(Internet Protocol version 4)アドレスの枯渇が差し迫っている中、多くのネットワーク事業者が、IPv6やさまざまな形式の NAT(Network Address Translation)など、考えられるソリューションに注目しています。

IPv4で使用可能なアドレスは、およそ 42億個です。それでも、さまざまな個人デバイス用に 1人で複数の IPアドレスを必要とするユーザーが多く、また、その他のアドレス指定の用途もあるため(ネットワーク機器やインタフェース、サブネットなど)、今の IPv4 アドレスプールでは、将来的なニーズを満たすには不十分です。世界的に見たアドレス需要と現在割り振り可能なアドレスプールを簡単に比較しただけで、既存の IPv4を使用したアプローチでは、グローバルインターネットおよびそこに接続される多数のネットワークやデバイスに到底対応できないことは明らかです。現時点での予測では、IANAの割り振り可能な IPv4プールは 2011年前半で枯渇し、各 RIRのプールも、そのすぐ後に枯渇すると言われています。IPv6を使用すれば、理論上は最大で 3.4×10^38個のアドレスが提供されるため、この拡張性に関する問題の長期的なソリューションとなります。つまり、340,282,366,920,938,463,463,374,607,431,768,211,456

個の IPv6アドレスが提供されます。IPv4アドレスの「枯渇」と言うとぞっとするかもしれませんが、最初に覚えておくべきことは、NATソリューションを使用すれば、現在の IPv4ベースのコンテンツ /エンドポイントと新たな IPv6ソリューションの橋渡しの役割を果たすことができるということです。つまり、IPv4アドレスの枯渇がインターネットの終焉というわけでは全くありません。

IPv6と IPv4の互換性IPv6が初めての場合は、IPv6と IPv4の互換性について疑問を持つかもしれません。IPv4プロトコルと IPv6プロトコルは、ワイヤ上では互換性がないため、さらに考慮が必要になります。例えば、通信事業者の場合は、新しい IPv6アドレスを割り当てても、IPv4のみのエンドポイントにアクセスするという加入者のニーズは解決できません。

Page 9: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章:IPv6の概要 9

IPv4アドレスが不足している場合は、移行メカニズムが必要です。NAT技術の 1つを採用すると、加入者 /ユーザーの IPv4アドレス指定に関する差し迫ったニーズに対応できます。NATソリューションはすべて、IPv4アドレスの既存のプールを共有するという考え方を中心に展開します。ブロードバンドサービスの場合は、1つの IPv4アドレスを多数の加入者が共有することを意味します。商業サービスの場合は、IPv4アドレスのもっと小規模なブロックをエンタープライズネットワーク内で共有することを意味します。こうした NAT技術には、DS-Lite、NAT444、NAT64など、さまざまな種類があります。これらの技術は、IPv6へ移行しながら、IPv4サービスを維持するのに役立ちます。その準備のための第一歩は、IPv6についてさらに学習し、現在のネットワークを IPv6に対応できるようにすることです。

さらに詳しくは IPv4アドレスの枯渇問題および考えられるソリューションの詳細については、ジュニパーネットワークスのホワイトペーパー、『Tools and Strategies for Coping with IPv4 Address Depletion』を参照してください。このホワイトペーパーでは、現在の状況が率直に分析されており、IPv4アドレスが枯渇した場合に使用できる技術が紹介されています。

IPv6についてのさらなる学習の第一歩を念頭に置いて、この章ではアドレスの長さからパケット形式まで、IPv6プロトコルを簡単に、ベンダーにとらわれずに見ていきます。ただし、説明が進むと、さらに詳しい内容も出てきます。IPv6の設定と運用に関する知識を身に付けるための基礎をしっかりと固め、後続の章に備えましょう。

IPv6アドレスについてIPv6に関して最初に気付くことは、アドレスが IPv4のアドレスとは全く違って見えることです。

主な違いは、もちろん、長さです。IPv4アドレスが 32ビットの長さなのに対し、IPv6アドレスは 128ビットです。つまり、IPv4アドレスは 32個の 1と0で構成されており、IPv6アドレスは 128個の 1と0で構成されている、128桁の 2進数ということです。このように非常に長いため、IPv6アドレスは IPv4アドレスとは別の表記法で記述せざるを得なくなっており、IPv4アドレスと簡単に区別することができます。

Page 10: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

10 Day One:IPv6の探求

しかし、見慣れないためとはいえ、このように長く、表記法も新しいため、IPv6は最初は理解しにくいかもしれません。図 1.1は、2進表記法での 128ビットの IPv6アドレスの形式を、IPv6パケット内での記述方法で示しています。

00100000000000010000110110111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

図 1.1 2進表記法の IPv6アドレス

例えば、IPv4で馴染みのあるドット形式 10進表記法(192.0.2.1)を使用する場合は、この 128ビットのアドレスを 8ビットのセクション16個に分割する必要があります。その結果、アドレスは、32.1.13.184. 0.0.0.0.0.0.0.0.0.0.0.1のようになります。これでは、少し扱いづらいと言わざるを得ません。かわりに、図 1.2に示すように、16ビットの 2進数のセクション 8個に分割します。

0010000000000001 0000110110111000 0000000000000000 00000000000000000000000000000000 0000000000000000 0000000000000000 0000000000000001

図 1.2 IPv6アドレスを 16ビットの 2進数セクション8個に分割

これでも扱いづらいことに変わりはありません。しかし、16進(HEX)表記法では 4ビットを 1文字で表すことができるため、これを使用して、アドレスをもっと読みやすい形式に縮めます。図 1.3では、図 1.2のIPv6アドレス例の 2番目の 16ビット(2番目のブロック)を使用して、2進数から 16進数への変換を示しています。

注 10進表記法で記述したときは、128ビットの IPv6アドレス 1つで最大 48桁を使用しますが、16進表記法を使用した場合は 32桁以下で済みます。

0000110110111000 0000 1101 1011 1000 0 d b 8

図 1.3 2進数から 16進数への変換

10

Page 11: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章:IPv6の概要 11

16進数に変換すると、16ビットセグメントはそれぞれコロン(:)で区切られます。IPv4アドレスでは、10進形式で記述したときにピリオド(.)を使用して 8ビットセグメントごとに区切られますので、両者の違いは明らかです。図 1.4を参照してください。IPv6アドレスを 16進表記法で記述すると、表示されるゼロの数を減らすことにより、アドレスを大幅に短縮することができます。これは次の 2つの方法で行うことができます。

� ゼロの抑制:8個のセグメントがすべて 16ビットで構成されていることがわかっているため、各セクションの先頭にあるゼロを削除しても、アドレスは曖昧にはなりません。例えば、0db8はdb8と記述できます。抑制できるのはセクションの先頭にあるゼロのみで、セグメントの途中や末尾にあるゼロは省略できないこと、各セグメントが 4桁の 16進数で構成されていること、この2つがユーザー側(ルーター側)でわかっています。そのため、db8は 0db8と同じであると断定できるのです。

注 実は、このゼロの抑制は、まったく馴染みのない考え方というわけではありません。IPv4でも同じ方法が使用されています。192.000.002.001とは記述せず、各セクションの先頭のゼロを抑制して、192.0.2.1と記述します。

� ゼロの圧縮:同様に、1つのアドレスは 8個のセグメントで構成されていることがわかっているため、すべてゼロのセグメントが複数続いている場合は、それらを圧縮してもアドレスが混乱することはありません。ただし、これを行うのは 1つのアドレスで 1回限りです。セグメントを圧縮するときは、ダブルコロン(::)を使用します。例えば、2001:0db8::3f6cとなっている場合、アドレスには合計 8個のセグメントが含まれている必要があるため、::は、すべてゼロの連続したセグメントが 5個あることを表します。

図 1.4では、ここでの IPv6アドレスの例を、16進数に直接変換したものと、抑制や圧縮が可能なゼロをすべて処理した後のものを示しています。不要なゼロを削除すると、アドレスがいかに読みやすくなるかがおわかりいただけるでしょう。

2001:0db8:0000:0000:0000:0000:0000:0001上記は以下のようになります。

2001:db8::1

図 1.4 16進表記法の IPv6アドレス

Page 12: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

12 Day One:IPv6の探求

実践:IPv6アドレスのゼロの圧縮 2001:0db8:0000:0000:c5ef:0000:0000:0001を正しく表しているものは次のうちどれですか(複数解答可)。

1. 2001:0db8::c5ef:0:0:1

2. 2001:db8::c5ef::1

3. 2001:db8:0:0:c5ef::1

4. 2001:0db8:0:c5ef:0:0:1

5. 2001:db8::c5ef:0:0:1

解答はこの章の最後にあります。次に自分でやってみましょう。2001:0db8:0000:0000:ffff:0c8a:0000:0005には何通りの記述方法がありますか。

IPv6のプレフィックス

IPv4 の CIDR(Classless Interdomain Routing)と同様に、IPv6アドレス指定の大きなメリットの 1つは、階層構造です。IPv6アドレスは、さまざまな長さのプレフィックスに分割でき、これらのサブネットプレフィックスは、IPv4 CIDRプレフィックスと同様に、ip-address/prefix-lengthの表記法で表現されます。

IPv6の場合、 � ip-addressは、上記のいずれかの 16進表記法で表記された任意の IPv6アドレスです。

� prefix-lengthは、プレフィックスを構成するアドレスの左端のビットの数を指定する 10進値です。

例えば、図 1.1に示した IPv6アドレスが 64ビットのプレフィックスの一部である場合は、以下のような方法で表現できます。

� 2001:0db8:0000:0000:0000:0000:0000:0001/64

� 2001:db8:0:0:0:0:0:1/64

� 2001:db8::1/64

プレフィックス自体は 2001:db8::/64と表現されます。ダブルコロンは必須です。

Page 13: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章:IPv6の概要 13

IPv6アドレスの分類

IPv4と同様に、IPv6アドレスはインタフェースまたはインタフェースのグループの識別子の役割を果たします。これも IPv4と同様ですが、IPv6アドレスは、これらのインタフェースの表現方法に基づいて、複数のタイプに分類されます。IPv6には次の 3つのタイプのアドレスがあります。

� ユニキャスト:IPv6ユニキャストアドレスは、単一のインタフェースを識別する際に使用します。ユニキャストアドレスに送信されたパケットは、その特定のインタフェースに配信されます。

� エニーキャスト:IPv6エニーキャストアドレスは、通常は別々のノードに所属するインタフェースのグループを識別します。エニーキャストアドレスを宛先とするパケットは、アクティブルーティングプロトコルで特定された、グループ内の最も近いインタフェースに送信されます。

� マルチキャスト:IPv6マルチキャストアドレスも、通常は別々のノードに所属するインタフェースのグループを識別します。マルチキャストアドレスに送信されたパケットは、グループ内のすべてのインタフェースに配信されます。

注 IPv6にはブロードキャストアドレスはありません。IPv4でブロードキャストアドレスが対応していた機能は、IPv6ではマルチキャストアドレスによって提供されます。

IPv6アドレスのタイプは、高位(左端)のビットを使用して識別します。表 1.1を参照してください。マルチキャストアドレスを示す図 1.5では、最初の(左端の)8ビットによってタイプを識別します。

表 1.1 IPv6アドレスのタイプ

アドレスタイプ 2進プレフィックス 16進プレフィックス未指定 0000...0 (128ビット) ::/128

ループバック 000...01 (128ビット) ::1/128

IPv4-Mapped 00…01111111111111111 (96ビット) ::ffff:0:0/96

マルチキャスト 11111111 FF00::/8

リンクローカルユニキャスト 1111111010 FE80::/10

ユニークローカルユニキャスト(ULA) 1111110 FC00::/7

グローバルユニキャスト (その他すべて)

Page 14: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

14 Day One:IPv6の探求

エニーキャストアドレスは、グローバルユニキャストプールから取得されます。エニーキャストおよびユニキャストのアドレスは、形式に基づいて見分けることはできません。

マルチキャストアドレスIPv4から IPv6への主な変更点の 1つは、IPv6で、マルチキャストアドレスのサポートが向上し、拡張されたことです。図 1.5は、IPv6マルチキャストアドレスの形式を示しています。

予約1111 1111 プレフィックス

8ビット

フラグ スコープ plen グループID

4ビット 4ビット 8ビット 8ビット 64ビット 32ビット

インジケータ ユニキャストネットワークプレフィックス(適宜)

図 1.5 IPv6マルチキャストアドレスの形式

ネットワーク通信事業者が IPv6に対応するときは、マルチキャストアドレスの形式と機能の基本を理解しておく必要があります。それは、IPv6にはブロードキャストアドレスがないからです。IPv4でのマルチキャストの使用方法に加えて、ブロードキャストアドレスの代わりにもマルチキャストが使用されます。特に熟知しておく必要のあるフィールドは、インジケータ、スコープ、グループ IDの 3つです。これらのフィールドは、ルーティングプロトコルメッセージも含めて、すべての IPv6マルチキャストトラフィックで使用されます。

インジケータは常に 11111111(16進表記法では FF)です。これは、任意の IPv6アドレスがマルチキャストアドレスであることを示す高位ビットパターンだからです。スコープは、マルチキャストパケットが配信される範囲を示します。次の 4つの値を指定できます。

� ノードローカル(1) � リンクローカル(2) � サイトローカル(5) � グローバル(E)

グループ IDは、指定されたスコープ内のマルチキャストグループを示します。割り当てられているマルチキャストグループの例は次のとおりです。

Page 15: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章:IPv6の概要 15

� すべてのノード(1) – 有効なスコープは 1または 2

� すべてのルーター(2) – 有効なスコープは 1、2、5のいずれか � OSPF指定ルーター(6) – スコープ 2でのみ有効 � NTP(101) – どのスコープでも有効

実践:マルチキャストアドレスの識別

次のマルチキャストアドレスの例で、理解度を試してみてください。1. FF02::1

2. FF02::6

3. FF05::101

解答はこの章の最後にあります。

さらに詳しくは IPv6マルチキャストアドレスの詳細については、RFC 2375『IPv6 Multicast Address Assignments』、RFC 3306『Unicast-Prefix-based IPv6 Multicast Addresses』、RFC 3307『Allocation Guidelines for IPv6 Multicast Addresses』を参照してください。

グローバルユニキャストアドレスIPv4と同様に、ユニキャストアドレスは、最もよく使用する IPv6アドレスのタイプです。IPv6では割り当て可能なアドレスが豊富にあることから、各インタフェースごとにアドレスが割り当てられるため、ネットワークに接続されている事実上すべてのマシンが最低 1つのグローバルユニキャストアドレスを持つことが考えられます。(もしよろしければ、確認のためこの文をもう一度読んでください)。このため、現在他の目的に指定されていない IPv6アドレス空間はすべて、グローバルユニキャストアドレスとして使用するために予約されています。ただし、現時点では、/3だけが使用可能として割り当てられています。IETF(Internet Engineering Task Force)では、2進プレフィックス 001(16進プレフィックス 2000::/3)を、インターネットで使用するように IANA(Internet Assigned Numbers Authority)に割り当てています。つまり、現時点では、有効なグローバルユニキャストアドレスにはすべて 2000::/3というプレフィックスが付いているということです。典型的な IPv6グローバルユニキャストアドレスの形式を図 1.6に示します。

Page 16: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

16 Day One:IPv6の探求

サブネットIDグローバルルーティングプレフィックス

64 ビット

エンドユーザー用の/48ブロック

インタフェースID

45 ビット 16 ビット

IANA RIR LIR/ISP

001

3 ビット

図 1.6 グローバルユニキャスト IPv6アドレスの形式

図 1.6に示すように、典型的な IPv6グローバルユニキャストアドレスの主要な部分は次のとおりです。

� グローバルルーティングプレフィックス:サイトに割り当てられているプレフィックス。通常、これは階層構造になっており、まず IANA(Internet Assigned Numbers Authority)からRIR(Regional Internet Registry)に渡され、次に ISP(Internet

Service Provider)または LIR(Local Internet Registry)に、その後ユーザーまたはユーザーの特定の場所に渡されます。このトランザクションの各段階で、より小さいプレフィックスが下流に割り当てられ、階層が出来上がります。

� サブネット ID:サイト内で特定のリンクまたは LANに割り当てられるプレフィックス。/48がサイトに割り当てられている場合は、サブネット IDに 16ビットを使用できます。これにより、その場所では最大で 65,535 /64のサブネットプレフィックスが使用可能になります。

� インタフェース ID:すべてのユニキャスト IPv6アドレス(000で始まるものを除く)には、MEUI-64(Modified Extended Unique Identifier-64) 形 式 の 64 ビットインタフェース ID が 必 要 で す(RFC 4291『IP Version 6 Addressing Architecture』)。インタフェース IDは、サブネットプレフィックス内で一意である必要があり、リンク上でインタフェースを識別するために使用されます。このため、/64プレフィックスが、IPv6で使用する最少の一般的なサブネットです。

さらに詳しくは MEUI-64形式のインタフェース IDの詳細については、RFC 4291『IP Version 6 Addressing Architecture』のセクション 2.5.1および付録 Aを参照してください。

Page 17: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章:IPv6の概要 17

特殊な IPv6アドレスの概要

表 1.1をよく見直してみると、IPv6内には特殊なアドレスやアドレスグループがいくつかあることがわかります。これらの中には、IPv4のアドレス指定でなじみのあるものもあれば、IPv6で初めてのものもあります。

� 未指定のアドレス(::/128):このゼロのみのアドレスは、ホストが自らのアドレスをわかっていない場合に、ホストを示します。未指定のアドレスは、通常はソースフィールドで、IPv6アドレスの割り当てを受けようとしているデバイスによって使用されます。

� ループバックアドレス(::1/128):ループバック機能には、IPv4では 1ブロック全体が必要でしたが、IPv6では単一のアドレス -を使用します。

� IPv4-Mappedアドレス(::ffff:0:0/96):/96プレフィックスで残される 32ビットには、埋め込み IPv4アドレスが 1つちょうど収まります。IPv4-Mappedの IPv6アドレスは、IPv4ノードのアドレスを IPv6アドレスとして表すために使用します。このアドレスタイプは、IPv4から IPv6への移行に役立つように定義されました。

さらに詳しくは IPv4-Mappedの IPv6アドレスの詳細については、RFC 4038 『Application Aspects of IPv6 Transition』を参照してください。また、IPv4-Mappedアドレスの使用に関連したセキュリティリスクが存在する可能性があるため、注意してください。詳細については、IETFドラフト『IPv4-Mapped Addresses on the Wire Considered Harmful』を参照してください。

� リンクローカルユニキャストアドレス(FE80::/10):名前のとおり、リンクローカルアドレスは、単一のリンクで使用されるユニキャストアドレスです。リンクローカルのソースや宛先アドレスを含むパケットは、他のリンクには転送されません。これらのアドレスは近隣探索、自動アドレス設定や、ルーターが存在しない状況で使用されます。

� ユニークローカルユニキャストアドレス(FC00::/7):一般的には ULAとして知られるこのアドレスグループは、サイト内またはサイトのグループ内でローカルに使用されます。グローバルに一意であるものの、これらのアドレスは、グローバルインターネットではルーティングできません。著者は、IPv6のアップブレードされた RFC 1918(プライベート)アドレス空間としてULAを見ています。

さらに詳しくは ULAの詳細については、RFC 4193『Unique Local IPv6 Unicast Addresses』を参照してください。

Page 18: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

18 Day One:IPv6の探求

IPv6プロトコルについてここまでで、IPv6の形式とタイプについてしっかりと把握できたと思います。今度は、IPv6プロトコルについて掘り下げて、IPv6の複数のヘッダー構造、近隣探索、SLAACを詳しく見ていきましょう。また、IPv6アドレスは実際にいくつあるのかについても簡単に見てみます。

IPv6ヘッダー

IPv6ヘッダーの優れている点は、合理的で、各 IPv6パケットで必要な情報のみが含まれていることです。オプションの IP情報はすべて拡張ヘッダーでエンコードされ、パケットの標準 IPv6ヘッダー(図 1.7を参照)と上位レイヤーヘッダーの間に追加されます。これにより、IPv6ヘッダーは IPv4ヘッダーより効率的になり、今後拡張機能やオプションを IPv6プロトコルに追加する際の柔軟性も大幅に向上します。IPv6パケットはすべて、固定長の 40バイトヘッダーでカプセル化されます。この簡易化された IPv6ヘッダーにより、あらゆる一般的なパケットに関して帯域幅と処理コストを削減できます。オプションの拡張ヘッダーは実際にそれを必要とするパケットのみに追加され、必要なときにのみルーターによって処理されるからです。この方法だと、中間ルーターでは、パケットの最初の40バイトのみを読み取れば、(ほとんどの場合は)その転送方法と転送先がわかります。

ビット 4 12 16 24 32

ソースアドレス

ホップ制限

フローラベル

ペイロード長

トラフィッククラス

次のヘッダー

バージョン

宛先アドレス

図 1.7 IPv6ヘッダー形式

Page 19: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章:IPv6の概要 19

図 1.7に示した、IPv6ヘッダーを構成するコンポーネントは次のとおりです。

� バージョン:4ビットの IPバージョン番号。IPv6パケットの場合は 6に設定されます。

� トラフィッククラス:トラフィッククラスフィールドは長さが 8ビットで、IPv4のサービスのタイプビットや優先ビットのような差別化サービス用にパケットをマークするために使用します。この処理は、実装方法によって、一般的にサービスクラス(CoS)またはサービス品質(QoS)と呼ばれます。

� フローラベル:この 20ビットのフィールドはまだ実験段階ですが、特殊な処理を必要とするパケットのシーケンス(フロー)にラベルを付けることを目的としています。RFC 2460『Internet Protocol, Version 6 (IPv6) Specification』では、デフォルト以外のサービス品質およびリアルタイムサービスを、フローラベルの使用例として示唆しています。

� ペイロード長:全パケット長がヘッダーに表示される IPv4とは異なり、IPv6のヘッダーではペイロード長、つまり、パケット内でこのヘッダーに続くものすべての長さを、拡張ヘッダーおよび送信されるデータを含めて指定します。このフィールドの長さは16ビットです。

� 次のヘッダー:IPv4プロトコルフィールドと同じ値を使用してIPv6ヘッダーの直後のヘッダーのタイプを識別する、8ビットのセレクターです。

� ホップ制限:IPv4ヘッダーの TTL(Time To Live)と同様に、この 8ビットの整数は、パケットが転送されるたびに 1ずつ減ります。ホップ制限が 0に達すると、パケットは破棄されます。

� ソースアドレス:このパケットを送信しているノードの 128ビットの IPv6アドレスです。

� 宛先アドレス:このパケットを受信することになっているノードの128ビットの IPv6アドレスです。

必須の IPv6ヘッダーに加えて、IPv6パケットには 1つまたは複数のオプションの拡張ヘッダーが含まれる場合があります。

さらに詳しくは IPv6ヘッダー(および拡張ヘッダー)の詳細については、RFC 2460『Internet Protocol, Version 6 (IPv6) Specification』を参照してください。

拡張ヘッダー

IPv6では、IPv6ヘッダー自体ではなく拡張ヘッダーにオプションの情報が含まれるため、新しい拡張ヘッダーを導入することにより、IPv6に新しい機能をいつでも追加することが可能です。

Page 20: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

20 Day One:IPv6の探求

現在、IPv6では次の 6つの拡張ヘッダーが定義されています。 � Hop-by-Hop Options:Hop-by-Hop Optionsヘッダーは、パケットの経路にあるすべてのルーターで調べる必要のある情報を送信するのに使用されます。

� 宛先オプション:名前のとおり、このヘッダーにはパケットの宛先ノード用の情報が含まれます。

� ルーティング:IPv6ルーティングヘッダーは、IPv4のルースソースオプションおよびレコードルートオプションと同じ機能を提供します。ソースから宛先へのパケットの経路に含める必要のある 1つまたは複数の中間ノードを指定します。

� フラグメント:パケットのフラグメンテーションは、IPv6ではまれです。これは、各ノードがパスMTUディスカバリを使用して、任意の 2点間で許可されるMTU(Maximum Transmission Unit)を特定するからです。アプリケーションでパケットサイズを適切に調整できない場合は、ソースノードでフラグメントヘッダーを使用してパケットをフラグメント化し、宛先で再アセンブリすることができます。IPv4とは異なり、IPv6のパケットは、送信元のノードでのみフラグメント化できます。

� 認証:認証ヘッダー(AH)は、IPSecの一部であり、コネクションレスインテグリティ、データ発信元認証、アンチリプレイ防御機能を提供します。詳細については、RFC 4302『IP Authentication Header』を参照してください。

� セキュリティペイロードのカプセル化:認証ヘッダーと同様に、セキュリティペイロードのカプセル化(ESP)ヘッダーは IPSecスイートの一部です。このヘッダーは、インテグリティ、認証、機密性、アンチリプレイ防御サービスに使用します。詳細につい て は、RFC 4303『IP Encapsulating Security Payload (ESP)』を参照してください。

さらに詳しくは AHヘッダーと ESPヘッダーの連動およびそれによって提供されるセキュリティサービスの詳細については、RFC 4301『Security Architecture for the Internet Protocol』を参照してください。

近隣探索とSLAAC

IPv6近隣探索では、IPv4の ARP(Address Resolution Protocol)、ICMP(Internet Control Message Protocol)、ルーター検出、ICMPリダイレクトの機能を基に融合と改良を行い、新機能もいくつか追加されています。

Page 21: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章:IPv6の概要 21

IPv6近隣探索には次の 4つの主な機能があります。 � ルーター検出:ルーターは、ルーターアドバタイズメントメッセージを定期的に送信することにより、自らの存在の通知、リンク上のプレフィックスのアドバタイズ、アドレス設定支援、リンクに関するその他の情報(MTU、ホップ制限など)の共有を行います。

� 近隣探索:IPv6のノード間では、近隣要請および近隣アドバタイズメントのメッセージを使用して、リンクレイヤーアドレスを相互通信します。これらのメッセージは、重複アドレスやテストの到達可能性を検出する際にも使用します。

� 近隣者到達不可能性検出:IPv6のノードは、肯定応答を基にパケットの到達を確認します。これは次の 2つの方法で行われます。まず、ノードは、新しい肯定応答が返されること、または類似の上位レイヤーのプロトコルを確認して近隣に送信したパケットが実際に宛先に到達することを「リスン」します。そのような応答が存在しない場合、ノードはユニキャスト近隣要請メッセージを送信し、ネクストホップの到達可能性を確認します。

� リダイレクト:ICMPv6リダイレクトメッセージは ICMPv4リダイレクト機能によく似ており、ルーターがリンク上のホストに対して、指定した宛先により適したネクストホップを通知するために使用されます。この機能の目的は、ルーターを利用して、ホストができるだけ効率の良いローカルルーティングを決定できるようにすることです。

前述したように、近隣探索には、対応する IPv4プロトコルと比べて、多数の改良と新機能が含まれています。例えば、近隣探索では、アドレス解決が ICMPレイヤーに移動します。これにより、ARPよりメディア依存性が低くなり、必要に応じて IPレイヤーセキュリティを使用する機能が追加されます。さらに、近隣探索ではリンクローカルアドレスを使用します。これにより、サイトの番号が新しいグローバルプレフィックスに変更された場合であっても、すべてのノードでルーターの関連付けを維持できます。もう 1つ注目すべき改良点は、近隣探索メッセージにリンクレイヤーアドレス情報が含まれるため、単一のメッセージ(またはメッセージのペア)だけでノードが他者のアドレスを解決でき、その他のアドレス解決は不要であることです。近隣者到達不可能性検出が組み込まれており、変化の激しいネットワークでより確実にパケットを配信できます。近隣者到達不可能性検出および近隣探索を使用すると、ルーター障害やリンク障害、さらには一方向通信などの明らかな部分的リンク障害を検出できます。

Page 22: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

22 Day One:IPv6の探求

最後に、IPv6ルーターアドバタイズメントにはプレフィックス(ネットマスクを含む)が含まれ、同一リンクで複数のプレフィックスをサポートします。ホストは、リンク上のプレフィックスを、ルーターアドバタイズメントから、または、アドバタイズメントを差し控えるようにルーターが設定されている場合は、必要に応じてリダイレクトから知ることができます。

SLAAC

近隣探索はネットワークの世界に多くの改善をもたらしますが、アドレスの自動設定、つまり、SLAAC(Stateless Address Autoconfiguration)も可能になります。IPv6では、DHCPv6(およびスタティック割り当て)によるステートフルアドレス割り当ての機能が維持されていますが、SLAACでは軽量のアドレス設定方法が提供されており、さまざまな状況に有用であるといえるでしょう。SLAACでは、プラグアンドプレイの IP接続を、フェーズ 1のリンクローカルアドレスの割り当てと、フェーズ 2のグローバルアドレスの割り当ての 2つのフェーズで提供します。

フェーズ 1 - リンクローカルアドレスローカル接続用のフェーズ 1の手順は次のとおりです。

1. リンクローカルアドレスの生成:マルチキャスト対応の IPv6が有効なインタフェースが起動されると、ノードではそのインタフェースのリンクローカルアドレスが生成されます。これは、インタフェース識別子をリンクローカルプレフィックスに付加することによって生成されます(FE80::/10)。

2. 重複検出:新しいリンクローカルアドレスをインタフェースに割り当てる前に、ノードは、そのアドレスが一意であることを確認します。これは、新しいアドレスを宛先とした近隣要請メッセージを送信することによって行われます。返信がある場合、そのアドレスは重複しているため、プロセスは停止し、オペレータの介入が必要になります。

3. リンクローカルアドレスの割り当て:アドレスが一意である場合は、ノードは該当するインタフェースにそのアドレスを割り当てます。

この時点で、このノードは、同一リンク上の他のすべてのノードとIPv6接続しています。フェーズ2を実行できるのはホストのみです。ルーターのインタフェースアドレスは他の方法で設定する必要があります。

フェーズ 2 - グローバルアドレスグローバル接続用のフェーズ 2の手順は次のとおりです。

1. ルーターアドバタイズメント:ノードがルーター要請を送信し、リンク上のすべてのルーターに、ルーターアドバタイズメントを

Page 23: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第1章:IPv6の概要 23

送信するよう指示します。ルーターでステートレス自動設定サポートが有効である場合は、ルーターアドバタイズメントには、近隣のホストで使用されるサブネットプレフィックスが含まれます。

2. グローバルアドレスの生成:ホストでは、サブネットプレフィックスをルーターから受信すると、提供されたプレフィックスにインタフェース IDを付加することにより、グローバルアドレスを生成します。

3. 重複アドレス検出:ホストでは、重複アドレス検出(DAD)が再度行われます。今回は、新しいグローバルアドレスに対して行われます。

4. グローバルアドレスの割り当て:アドレスが重複していない場合は、ホストによってインタフェースに割り当てられます。

これで、手動によるホスト設定なしで、完全な IPv6グローバル接続を確立できます。必要なルーター設定もごくわずかです。

さらに詳しくは 近隣探索および SLAACの詳細については、RFC 4861『Neighbor Discovery for IP version 6 (IPv6)』、RFC 4862『IPv6 Stateless A d d r e s s A u t o c o n f i g u r a t i o n』、R F C 4 3 3 9『 I P v 6 H o s t Configuration of DNS Server Information Approaches』を参照してください。

IPv6アドレスの数IPv6アドレスの数に関する話になると、無制限、無限といった言葉が多く飛び交います。そこで、IPv6のアドレス空間がどれだけ大きいものなのか、調べてみましょう。

前述したように、IPv6アドレスは 128ビットで構成されており、理論上の最大アドレス数は 3.4×10^38個です。問題は、非常に大きい数字であるため、それが実際に何を意味するのかを明確に認識することが非常に難しいということです。よく引き合いに出される比較をあげると、地球上の人間 1人あたり5×10^28(およそ 50,000,000,000,000,000,000,000,000,000)個のアドレスがあり、IPv4の 2^96(7.92281625×10^28)倍の一意なアドレスがあります。しかしこれは公正な比較ではありません。IPv6の規格は、個々の IPv6アドレスが個々の IPv4と比べて有意性がはるかに低くなるように設計されているからです。そこで、IPv6アドレスの数を、個々にではなく、有意なブロック単位で見てみましょう。

1つの IPv6 /32には、/48が最大で 65,536個あります。IPv6 /48は「通常の最大」割り当てであるため、これを IPv4 /24と合理的に比較できます。65,536個の IPv4 /24を自由に使用できるようにする

Page 24: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

24 Day One:IPv6の探求

には、/8をご自分の組織に割り当てる必要があります。一意な IPv4 /8は 256個だけであるのに対し、IPv6 /32は 42億個あります。その差は 16,777,216倍であるので、個々のアドレスを比較した場合の 7.9×10^28倍とは大違いです。

ただし、この方法自体にも問題があります。IPv6 /48には個々のアドレスがおよそ 1セプティリオン(1.209×10^24)個含まれていますが、IPv4 /24に含まれているのは 256個だけです。もちろん、IPv6であろうとなかろうと、セプティリオン個(またはそれに近い数)のホストを 1つのネットワークに追加することがあるとは、(未来のいつか、惑星や星までをも統一ネットワークに含めることでもない限り)まず考えられません。要するに、バージョン 6であろうとバージョン 4であろうと、IPアドレスはできる限り効率的に使用する必要があるということです。

第 1章の「実践」の解答実践:IPv6アドレスのゼロの圧縮 2001:0db8:0000:0000:c5ef:0000:0000:0001を正しく表しているものは次のうちどれですか(複数解答可)。1. 2001:0db8::c5ef:0:0:1

2. 2001:db8::c5ef::1

3. 2001:db8:0:0:c5ef::1

4. 2001:0db8:0:c5ef:0:0:1

5. 2001:db8::c5ef:0:0:1

実践:次のマルチキャストアドレスの例で、理解度を試してみてください。1. FF02::1

同一リンク上のすべてのノードを送信者とします。このアドレスは IPv4のブロードキャスト機能の代わりとなります。2. FF02::6

同一リンク上のすべてのOSPF DRを送信者とします。3. FF05::101

同一リンク上のすべての NTPサーバーを送信者とします。

Page 25: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章

IPv6のはじめに

IPv6テストベッド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

IPv6アドレスの割り当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

IPv6の近隣探索の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

IPv6の基本的な検証およびテスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

IPv6での手動によるルートの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Page 26: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

26 Day One:IPv6の探求

IPv6ネットワークを構築するときにジュニパーネットワークスの高性能ルーターを使用する大きなメリットの 1つは、IPv6が ASIC(特定用途向け IC)に直接実装されていることです。ハードウェアに IPv6互換性があるため、IPv6パケットをラインレートで転送できます。この点が、多くの競合ルーターとは異なります。さらに、Junos OSでは、IPv6ネットワークの設定とトラブルシューティングが簡単です。この章を読み終わると、基本的な IPv6ネイティブネットワークを構築するために必要な設定およびテストの作業をすべて完了できるようになります。この章では、IPv6アドレスをインタフェースに割り当てる方法、IPv6近隣探索を設定およびテストする方法、IPv6でスタティックルートを実装する方法を学習します。ping、traceroute、各種 showコマンドなど、IPv6のトラブルシューティングおよび検証用のコマンドもいくつか紹介します。

警告 この章の作業に取り組むには、運用モード、設定モードの両方で支障なく操作できるだけの Junos CLIの経験が必要です。

さらに詳しくは Junos CLIに関する詳細情報と手順を追った説明が必要な場合は、www.juniper.net/dayoneからDay Oneガイド『Exploring the Junos CLI』を参照してください。

IPv6テストベッドラボ環境または非運用環境で一連のデバイスにアクセスできる場合は、IPv6および Junosの理解を深めつつ、本書の例を実際に試してみてください。本章のページ上のすべての例と、「実践」は、図 2.1に示すネットワークを基にしています。

Page 27: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 27

図 2.1 IPv6テストベッドのトポロジーとアドレス指定

IPv6アドレスの割り当てIPv4と同様に、IPv6ネットワーク構築の第一歩は、参加するルーターのすべてのインタフェースにアドレスを割り当てることです。IPv6アドレスの割り当ては、ルーターのループバックインタフェースを設定することから始めます。ネットワークで必要となる多くのプロトコルのさまざまな機能に、ジュニパーネットワークスのルーターの lo0インタフェースアドレスがデフォルトで自動的に使用されます。これにより、設定も簡単なので、IPv6ネットワークを構築する絶好のスタート地点と言えます。ここでは、図 2.1の R1から始めます。

注 本書のテストベッドでは、IPv4設定が存在しない、真新しいネットワークに IPv6を追加します。ただし、ベースラインの IPv4ネットワークに IPv6機能を追加することもできます。IPv6は別個のプロトコルであるため、2つの設定が互いに干渉することはありません。

R1

R5

R4

R3

R2ループバックR1=2001:db8::1/128R2=2001:db8::2/128R3=2001:db8::3/128R4=2001:db8::4/128R5=2001:db8::5/128

::1

::2

::3

::5

2001:db8:0:4::/64

2001

:db8:0

:3::/6

4

2001:db8:0:5::/64

2001:db8:0:::/64

2001:db8:0:7::/64

2001:db8:0:8::/64

2001:db8:0:2::/64

2001

:db8

:0:9

::/64

2001

:db8

:0:1

::/64

ge-1/0/4

ge-1

/0/3

ge-1/0/1

ge-1/0/2ge-1/0/4

ge-1/0/2

ge-1/0/3

ge-1/0/1.100 ge-1/

0/1

ge-1/0/2 ge-1/0/2

ge-1/0/4.34ge-1/0/3.34

ge-1/0/1.100

ge-1/0/4.45ge-1/0/2.45

ge-1/0/3.45ge-1/0/1.45

::4

Page 28: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

28 Day One:IPv6の探求

inet6ファミリーのサポートを含めてルーターのループバックインタフェースを設定するには:1. 設定モードに切り替えます。IDSG@r1> configure Entering configuration mode

[edit]IDSG@r1#

2. 次に、ループバック0、ユニット0の設定にジャンプします。[edit]IDSG@r1# edit interfaces lo0 unit 0

[edit interfaces lo0 unit 0]IDSG@r1#

3. 128 ビットの IPv6ループバックアドレスを設定します。[edit interfaces lo0 unit 0]IDSG@r1# set family inet6 address 2001:db8::1/128

[edit interfaces lo0 unit 0]IDSG@r1#

4. 変更を確認してコミットします。[edit interfaces lo0 unit 0]IDSG@r1# top

[edit]IDSG@r1# show | compare [edit interfaces]+ lo0 {+ unit 0 {+ family inet6 {+ address 2001:db8::1/128;+ }+ }+ }

[edit]IDSG@r1# commit commit complete

[edit]IDSG@r1#

これで、1台目の Junosルーターが IPv6対応になりました。

28

Page 29: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 29

ショートカット Junosの柔軟性を活用する絶好のチャンスです。まず、1台目のルーターのループバックアドレスの設定をコピーして保存します。その後、アドレスを変更してから、いずれかの loadコマンド(load set、load

patch、load merge、load replace)を使用して、ネットワーク内の他のルーターに設定をロードできます。

注 ジュニパーネットワークスのMシリーズおよび Tシリーズのルーターでは、128ビットのプレフィックスをループバックインタフェースに割り当てる必要があります。ループバックインタフェースでは、EUI-64は使用できません。

ループバック以外のインタフェースの設定

R1が IPv6対応になったとはいえ、これはネットワークなのですから、別のルーターに接続できるまでは十分とは言えません。ネットワークでIPv6パケットをやり取りするためには、それに関わるすべてのネットワークインタフェースを IPv6対応にする必要があります。まず、inet6ファミリーのサポートを使用して、ネットワークインタフェースの 1つ目のペアを設定します。ループバック以外のインタフェースはすべて、EUI-64 IPv6アドレスまたは手動で割り当てられた 128ビットアドレスを使用して設定できます。EUI-64キーワードの指示により、ルーターは、設定元のインタフェース用に、アドレスの 64ビットのインタフェース識別子部分を自動的に計算します。

注 本書で言うEUI-64アドレスとは、アドレスのインタフェース識別子部分(最後の 64ビット)に IEEE EUI-64形式を使用する IPv6アドレスのことです。

さらに詳しくは IPv6インタフェース識別子は、RFC 4291『IP Version 6 Addressing Architecture』(http://www.ietf.org/rfc/rfc4291.txt)により、EUI-64形式である必要があります。この RFCの付録 Aでは、Modified EUI-64形式のインタフェース識別子の作成方法が定義されています。IEEE EUI-64 規格については、http://standards.ieee.org/regauth/oui/tutorials/EUI64.htmlを参照してください。

EUI-64キーワードを使用して inet6ファミリーのサポートを含むインタフェースのペアを設定するには:

1. まず、R1で設定対象のインタフェースにジャンプします。[edit]IDSG@r1# edit interfaces ge-1/0/4 unit 0

[edit interfaces ge-1/0/4 unit 0]IDSG@r1#

Page 30: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

30 Day One:IPv6の探求

2. 次に、inet6ファミリーの設定を追加します。[edit interfaces ge-1/0/4 unit 0]IDSG@r1# set family inet6 address 2001:db8:0:1::/64 eui-64

[edit interfaces ge-1/0/4 unit 0]IDSG@r1#

3. 変更を確認してコミットします。[edit interfaces ge-1/0/4 unit 0]IDSG@r1# top

[edit]IDSG@r1# show | compare [edit interfaces]+ ge-1/0/4 {+ unit 0 {+ family inet6 {+ address 2001:db8:0:1::/64 {+ eui-64;+ }+ }+ }+ }

[edit]IDSG@r1# commit commit complete

[edit]IDSG@r1#

4. 同じプロセスを使用して、R2上の対応するインタフェースを設定します。IDSG@r2> configure Entering configuration mode

[edit]IDSG@r2# edit interfaces ge-1/0/2 unit 0

[edit interfaces ge-1/0/2 unit 0]IDSG@r2# set family inet6 address 2001:db8:0:1::/64 eui-64

[edit interfaces ge-1/0/2 unit 0]IDSG@r2# top

[edit]IDSG@r2# commit commit complete

[edit]IDSG@r2#

Page 31: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 31

5. R2の新しいインタフェース設定を再度確認して、行われた変更を確実に理解します。[edit]IDSG@r2# show interfaces ge-1/0/2 unit 0 { family inet6 { address 2001:db8:0:1::/64 { eui-64; } }}

[edit]IDSG@r2#

これで、R1とR2の間の直接リンクが IPv6対応になりました。図 2-1を参照してください。手動で割り当てられた 128ビットアドレスを使用してネットワークインタフェースを設定する方法は、ループバックアドレスを設定する方法と全く同じです。完全な 128ビットアドレスを使用して、EUI-64キーワードを省略します。また、IPv4アドレス指定の場合と同様に、イーサネット、ATM、POS、T3、T1、その他のタイプのインタフェースを設定する場合は、アドレスを割り当てる際にそれぞれ同じコマンド形式に従います。前述の例のように、イーサネットインタフェースの場合は、適切な論理ユニットの下で inet6ファミリーアドレスを指定するだけです。

警告 EUI-64アドレス指定を使用する場合は、デメリットもあります。インタフェースの 48ビット識別子がわからなければ、どのアドレスが計算されるのかがわからないということです。このため、通常は、手動で設定されたアドレスとEUI-64アドレスがルーターのインタフェース上にあることが望ましいでしょう。

実践:IPv6アドレスの割り当て

では、実際にやってみましょう。テストベッド内の残りのインタフェースを、inet6ファミリーのサポートを含めて設定します。本書の例に従って作業をする場合は、図 2.1のループバックアドレスおよびプレフィックスを使用してください。ただし、手動で割り当てられたアドレスではなくEUI-64を使用するかどうか、また、どこで使用するかは、自分で決めてください。同じリンクでさまざまな組み合わせを試してください。どうなりましたか。ご自身のネットワークマップに、どのアドレスに決定したかを必ず記録しておいてください。イーサネット以外のインタフェースがある場合は、付録に含まれる設定例が参考になるかもしれません。この設定例も、ご自身のラボ環境でより簡単にインタフェースの設定を行えることにつながります。

Page 32: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

32 Day One:IPv6の探求

IPv6の近隣探索の設定これで、テストベッド内のすべてのインタフェースに IPv6アドレスが設定されました。この IPv6対応のネットワークを使用して、作業を開始します。IPv6機能を LAN、データセンター、顧客ネットワークに拡張する予定がある場合は、SLAAC(Stateless Address Auto-Configuration)を使用することをお奨めします。つまり、ルーターアドバタイズメントを設定するということです。SLAACは、IPv6プロトコルであり、IPv4の DHCPと同様の機能を提供します。これは第 1章でも説明しました。SLAACを使用すると、ネットワークホストは、ルーターアドバタイズメントで最寄りのルーターによって提供されているプレフィックスに基づいて、グローバルに一意な IPv6アドレスを自動設定できます。これにより、ネットワークの所定のセクションでインタフェースを 1つずつ明示的に設定する必要がなくなります。ルーターアドバタイズメントメッセージは、Mシリーズおよび Tシリーズのルーターではデフォルトで無効になっているため、SLAACを利用するには、このメッセージを有効にする必要があります。図 2.1に示したサンプルトポロジーでこの処理を行うには、以下の手順を使用して、2001:db8:0:9::/64サブネットに接続されている IPv6ホストがローカルの EUI-64アドレスを自動設定できるように、R1とR2を設定します。

ルーターアドバタイズメントメッセージを設定するには: 1. R1で、 [edit protocols router-advertisement]設定階層にジャンプします。[edit]IDSG@r1# edit protocols router-advertisement

[edit protocols router-advertisement]IDSG@r1#

2. 適切なインタフェースおよびプレフィックスを設定します。[edit protocols router-advertisement]IDSG@r1# set interface ge-1/0/1.100 prefix 2001:db8:0:9::/64

[edit protocols router-advertisement]IDSG@r1#

3. 次に、変更を確認してコミットします。[edit protocols router-advertisement]IDSG@r1# top

Page 33: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 33

[edit]IDSG@r1# show | compare [edit]+ protocols {+ router-advertisement {+ interface ge-1/0/1.100 {+ prefix 2001:db8:0:9::/64;+ }+ }+ }

[edit]IDSG@r1# commit commit complete

[edit]IDSG@r1#

4. 同様に R2を設定します。[edit]IDSG@r2# edit protocols router-advertisement

[edit protocols router-advertisement]IDSG@r2# set interface ge-1/0/1.100 prefix 2001:db8:0:9::/64

[edit protocols router-advertisement]IDSG@r2# top

[edit]IDSG@r2# commit commit complete

[edit]IDSG@r2#

5. R2の新しい設定を表示します。[edit]IDSG@r2# show protocols router-advertisement interface ge-1/0/1.100 { prefix 2001:db8:0:9::/64;}

[edit]IDSG@r2#

注 ルーターアドバタイズメントは 2つのルーターで設定する必要はありません。2つのルーターで設定すると、2001:db8:0:9::/64サブネット上の IPv6ホストが冗長化されます。

Page 34: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

34 Day One:IPv6の探求

さらに詳しくは 詳細については、RFC 4861『Neighbor Discovery for IP Version 6 (IPv6)』および RFC 4862『IPv6 Stateless Address Autoconfiguration』を参照してください。

IPv6の基本的な検証およびテストIPv6の基本設定が整ったら、今度はテストと検証に目を向ける番です。まず、アドレス検証から始めて、インタフェースが適切に設定されていることと、設定したリンクを IPv6トラフィックが実際に通過できることを確認してから、R1および R2のルーターアドバタイズメントの検証に移ります。

ベストプラクティス ネットワークを設定するときは、可能なときにはいつでも作業を止めて、テストすることを推奨します。こうすると、手順ごとに行った変更が切り分けられるため、トラブルシューティングが容易になります。まだ馴染みのない新しいプロトコルを扱う場合は特にお奨めします。

IPv6アドレスの検証

IPv6アドレスの検証で使用する手順は、IPv4アドレス指定に使用する方法とよく似ていますが、最後の手順だけが異なります。 show interfaceコマンドを使用して、IPv6アドレスとネットワークインタフェースの関連付けが正しいことを確認します。

pingテストを実施して、ルーターの各ペアが同じサブネットを共有していることと、タイプミスがないことを確認します。

IPv6近隣キャッシュを確認します。この最後の検証が、IPv4とは異なります。IPv6では ARPを使用しないからです。pingまたは tracerouteテストを実施する前に、各インタフェースに割り当てられているアドレスを検証することを推奨します。EUI-64アドレスが使用されていて、長いアドレス形式である IPv6を処理する場合は、特にお奨めします。また、インタフェースが実際に稼動していることを確認しておくことも重要です。

ベストプラクティス IPv6アドレスを処理する場合は、アドレスをコピーアンドペーストする習慣をつけることを強く推奨します。アドレスは 128ビットの 16進表記法であるため、タイプミスの可能性が非常に高くなります。タイプミスがあると、実際には問題がないのにトラブルシューティングに無駄な時間を費やすことになってしまいます。

Page 35: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 35

IPv6アドレスの正しい関連付けを確認する方法IPv6アドレスと物理インタフェースおよび論理ユニットの関連付けが正しいことを確認する際に最適なコマンドはshow interfaces terseです。まず R4から見ていきましょう。

IDSG@r4> show interfaces terse Interface Admin Link Proto Local Remotedsc up up ge-1/0/0 up up ge-1/0/0.0 up up inet 10.0.1.4/24 ge-1/0/1 up up ge-1/0/1.0 up up inet6 2001:db8:0:5::4/64 fe80::204:acff:fe58:c130/64ge-1/0/2 up up ge-1/0/2.0 up up inet6 2001:db8:0:2::4/64 fe80::2a0:c9ff:feca:9cc2/64ge-1/0/3 up up ge-1/0/3.34 up up inet6 2001:db8:0:6:202:b300:2214:a3e/64 fe80::202:b300:2214:a3e/64ge-1/0/3.45 up up inet6 2001:db8:0:8:202:b300:2d14:a3e/64 fe80::202:b300:2d14:a3e/64ge-1/0/3.32767 up up ge-1/0/4 up up gre up up ipip up up lo0 up up lo0.0 up up inet6 2001:db8::4 fe80::2a0:c9ff:fe31:9d8blo0.16385 up up inet inet6 fe80::2a0:c9ff:fe31:9d8blsi up up mtun up up pimd up up pime up up tap up up

この出力から、多くのことがわかります。まず、ge-1/0/1、ge-1/0/2、ge-1/0/3、lo0がすべて inet6ファミリーで設定されていることがわかります。

<snip>lo0.0 up up inet6 2001:db8::4 fe80::2a0:c9ff:fe31:9d8b<snip>

Page 36: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

36 Day One:IPv6の探求

次に、各アドレス自体を見ると、inet6対応のインタフェース 1つにつき、リンクローカルアドレスと、割り当て済みのグローバルアドレスの2つの IPv6アドレスがあることがわかります。グローバルアドレスが、図 2.1に示したものと一致することを確認してください。

<snip>lo0.0 up up inet6 2001:db8::4 fe80::2a0:c9ff:fe31:9d8b<snip>

注 Junosソフトウェアでは、IPv6操作に対応しているインタフェースのリンクローカルアドレスが自動的に作成されます。リンクローカルアドレスはすべて、fe80::/64というプレフィックスで始まります。

ge-1/0/1、ge-1/0/2と、もちろん lo0も、すべて手動で設定されていることもわかります。このことは、アドレスのホスト部分の ::4からわかります。これは明らかに、EUI-64で生成されたインタフェース識別子ではありません。

<snip>ge-1/0/1 up up ge-1/0/1.0 up up inet6 2001:db8:0:5::4/64 fe80::204:acff:fe58:c130/64<snip>

最後に、インタフェース ge-1/0/3に関連付けられている 2つの論理ユニットが、EUI-64キーワードを含めて設定されていることも明らかです。アドレスのホスト部分が64ビットをフルに使用した長さであり、リンクローカルインタフェース識別子に一致することを確認します。

<snip>ge-1/0/3 up up ge-1/0/3.34 up up inet6 2001:db8:0:6:202:b300:2214:a3e/64 fe80::202:b300:2214:a3e/64ge-1/0/3.45 up up inet6 2001:db8:0:8:202:b300:2d14:a3e/64 fe80::202:b300:2d14:a3e/64<snip>

注 EUI-64キーワードを使用してインタフェースを設定するといつでも、そのインタフェース識別子は、リンクローカルアドレスのインタフェース識別子と一致します。これは、リンクローカルアドレスが、EUI-64の仕様に従ってコード化されるからです。

IPv6 pingテストの実施方法Junosソフトウェアでは、IPv4と IPv6の両方のテストで同じ pingコマンドを使用します。これにより、IPv4ネットワークでの作業経験がある人なら誰でも、IPv6 pingテストをごく自然に行うことができます。まず、テストベッドの R4からR5へのリンクで pingを実施しましょう(必要に応じて図 2.1を参照)。

Page 37: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 37

1. リモートルーターの IPv6インタフェースアドレスを特定します。このアドレスを、端末エミュレータのキャプチャバッファにコピーします。

IDSG@r5> show interfaces ge-1/0/1.45 terse Interface Admin Link Proto Local Remotege-1/0/1.45 up up inet6 2001:db8:0:8:2a0:c900:2dca:9cc6/64 fe80::2a0:c900:2dca:9cc6/64

IDSG@r5>

2. R5からコピーしたアドレスを使用して、R4で pingコマンドを呼び出します。

IDSG@r4> ping 2001:db8:0:8:2a0:c900:2dca:9cc6 count 2 PING6(56=40+8+8 bytes) 2001:db8:0:8:202:b300:2d14:a3e --> 2001:db8:0:8:2a0:c900:2dca:9cc616 bytes from 2001:db8:0:8:2a0:c900:2dca:9cc6, icmp_seq=0 hlim=64 time=0.479 ms16 bytes from 2001:db8:0:8:2a0:c900:2dca:9cc6, icmp_seq=1 hlim=64 time=0.306 ms

--- 2001:db8:0:8:2a0:c900:2dca:9cc6 ping6 statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max/std-dev = 0.306/0.392/0.479/0.086 ms

IDSG@r4>

どうでしょう。本書のテストベッドで、IPv6トラフィックが正常にやり取りされました。

注 この時点でテストベッドに IGPがないと、pingテストは、直接接続されている近隣ルーターに制限されます。

IPv6近隣キャッシュの確認方法IPv6では、ARPが近隣探索プロトコルに置き換えられました。IPv4コマンド show arpは、新しい IPv6コマンド show ipv6 neighborsに置き換えられました。両方のコマンドで表示される 3つの重要な情報は、IPアドレス、MAC/LinkLayerアドレス、インタフェースです。R4で pingテストを実施したら、IPv6近隣キャッシュで R5のインタフェースアドレスのエントリーを見つけましょう。

IDSG@r4> show ipv6 neighbors IPv6 Address Linklayer Address State Exp Rtr Interface2001:db8:0:8:2a0:c900:2dca:9cc6 00:a0:c9:ca:9c:c6 stale 489 yes ge-1/0/3.45 IDSG@r4>

Page 38: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

38 Day One:IPv6の探求

実践:IPv6アドレスの検証

テストベッド全体で、IPv6のインタフェースおよびリンクをすべて検証します。次のコマンドを使用して、基本的な設定が正しく、完全であることを確認します。

show interfaces terse ping show ipv6 neighbor

IPv6ルーターアドバタイズメントの検証

SLAACを使用してネットワークにデバイスを追加できることを確認するには、ルーターアドバタイズメントが適切に機能していることを確認する必要があります。ルーターアドバタイズメント機能は、Junosではごく簡単に検証できます。

IPv6ルーターアドバタイズメントの検証方法 1. 本書のテストベッド(図 2.1)で、R2から始めて、ルーターアドバタイズメントメッセージが適切なインタフェース経由で送受信されていることを確認します。

IDSG@r2> show ipv6 router-advertisement Interface: ge-1/0/1.100 Advertisements sent:3, last sent 00:00:51 ago Solicits received:0 Advertisements received:3 Advertisement from fe80::2a0:c900:64d5:dd4c, heard 00:01:01 ago Managed:0 Other configuration:0 Reachable time:0 ms Default lifetime:1800 sec Retransmit timer:0 ms Current hop limit:64 Prefix:2001:db8:0:9::/64 Valid lifetime:2592000 sec Preferred lifetime:604800 sec On link:1 Autonomous:1

IDSG@r2>

この出力では、ルーターアドバタイズメントが R2の ge-1/0/1.100インタフェースで送受信されていることがよくわかります。つまり、R1もR2も、ルーターアドバタイズメントを生成するように適切に設定されているということです。これらの結果を R1で確認してもよいでしょう。

Page 39: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 39

ヒント ルーターアドバタイズメントをトレースすることにより、さらに検証が可能です。これは、[edit protocols router-advertisement traceoptions]

設定階層で設定します。

2. 次に、設定の [edit protocols router-advertisement interface

ge-1/0/1.100]の部分で正しいプレフィックス(この場合は 2001:db8:0:9::/64)が設定されていることを確認します。R1からの出力は次のとおりです。

IDSG@r1> show configuration protocols router-advertisement interface ge-1/0/1.100 prefix 2001:db8:0:9::/64;

この 2つの手順を R1とR2の両方で実行し、同様の結果が得られて初めて、ルーターアドバタイズメントが適切に設定されていて、期待どおりに動作していることを確認できます。

注 Junosでは、特定のインタフェースに割り当てられているサブネットが一致する場合のみ、そのインタフェースのプレフィックスをアドバタイズします。

さらに詳しくは このセクションで説明している IPv6に固有のコマンドの詳細については、『Junos Software Routing Protocols and Policies Command Reference』のパート 1、第 6章「IPv6 Operational Mode Commands」を参照してください。

IPv6での手動によるルートの設定任意のネットワークで基本的な接続を機能させるには、スタティックルートが最も簡単な方法です。最大級のネットワークでも、新しいデバイスを初めてオンラインにするときや、特定のノードで維持するルートの数を減らす場合や、他の同様の作業を完了するときに、スタティックルートが使用されることが多くあります。また、多くの小規模ネットワークでは、スタティックルーティングはもっぱら IGPの代わりに使用されます。

Junosには他に、生成ルートと集約ルートという、2つの手動設定のルートタイプがあります。この 2つも、多くのタイプのネットワークで、しばしば IGPと連動して使用されます。これらの手動設定の IPv6ルートは、Junosで簡単に実装できます。

Page 40: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

40 Day One:IPv6の探求

スタティック/集約 /生成の各 IPv6ルートの設定

Junos OSでは、さまざまなプロトコル用に複数のルーティングテーブルが維持されています。JunosでMPLS、VPN、マルチキャストのいずれかを使用したことがある場合は、この動作をよくご存知でしょう。デフォルトのルーティングテーブルは inet.0であり、これはデフォルトの IPv4ユニキャストルーティングテーブルです。デフォルトのIPv6ユニキャストルーティングテーブルもあり、それは inet6.0です。Junosで IPv6ルートを設定するには、inet6.0 RIB(Routing Information Base)にルートを追加する必要があります。これを行うには、IPv4ルートとは別の設定階層のブランチで IPv6ルートを設定する必要があります。

さらに詳しくは Junosソフトウェアでは、7つのデフォルトのルーティングテーブルが維持されています。詳細については、http://www.juniper.net/techpubs/software/Junos/Junos94/swconfig-routing/Junos-routing-tables.htmlを参照してください。

以下のセクションでは、スタティック /集約 /生成の各 IPv6ルートの設定方法を、手順を追って説明します。

R5でスタティック IPv6ルートを設定するには:1. まず、R5で設定モードに切り替えて、rib inet6.0設定ブランチ(routing-optionsの下)にジャンプします。IDSG@r5> configure Entering configuration mode

[edit]IDSG@r5# edit routing-options rib inet6.0

[edit routing-options rib inet6.0]IDSG@r5#

2. 次に、この設定ブランチのスタティック部分にジャンプして、スタティックルートを設定します。[edit routing-options rib inet6.0]IDSG@r5# edit static

[edit routing-options rib inet6.0 static]IDSG@r5#

3. 次に、R4へのスタティックなデフォルトルートを設定します(R4の show interfaces ge-1/0/3.45 terseの出力からネクストホップアドレスをコピーする)。

Page 41: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 41

[edit routing-options rib inet6.0 static]IDSG@r5# set route ::/0 next-hop 2001:db8:0:8:202:b300:2d14:a3e

[edit routing-options rib inet6.0 static]IDSG@r5#

4. R3へ向けた、デフォルトルートの 2番目のネクストホップを追加することにより、R5に冗長性を追加します。[edit routing-options rib inet6.0 static]IDSG@r5# set route ::/0 next-hop 2001:db8:0:7:202:b300:2315:595

[edit routing-options rib inet6.0 static]IDSG@r5#

ショートカット 1つの setコマンドを使用して、1つのルートに 2つのネクストホップを追加するには、角括弧を使用します。この場合、コマンドは次のようになります。

# set route ::/0 next-hop [ 2001:db8:0:8:202:b300:2d14:a3e 2001:db8:0:7:202:b300:2315:595 ]

5. R3とR4の両方に、R5に戻るルートがあることを確認するには、これら両方のルーター上で、R5のループバックアドレスにスタティックルートを追加します。R4からの出力は次のとおりです。

[edit]IDSG@r4# edit routing-options rib inet6.0 static

[edit routing-options rib inet6.0 static]IDSG@r4# set route 2001:db8::5/128 next-hop 2001:db8:0:8:2a0:c900:2dca:9cc6

[edit routing-options rib inet6.0 static]IDSG@r4#

ショートカット 接続されているルーターのインタフェースアドレスが、ローカルルーター上の IPv6アドレス解決キャッシュに格納されたら、そこからアドレスをコピーできます。他のルーターにログインする必要はありません。

集約 IPv6ルートを設定するには:集約ルートの設定方法は、スタティックルートの設定方法とほぼ同じです。主な違いは、ルートが staticステートメントではなくaggregateステートメントの下に追加されることです。1. まず、rib inet6.0ブランチに戻ります。[edit routing-options rib inet6.0 static]IDSG@r5# up

Page 42: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

42 Day One:IPv6の探求

[edit routing-options rib inet6.0]IDSG@r5#

2. aggregateブランチにジャンプします。[edit routing-options rib inet6.0]IDSG@r5# edit aggregate

[edit routing-options rib inet6.0 aggregate]IDSG@r5#

3. 集約ルートを設定します。[edit routing-options rib inet6.0 aggregate]IDSG@r5# set route 2001:db8:0:7::/64

[edit routing-options rib inet6.0 aggregate]IDSG@r5#

4. これで、R5で集約ルートとスタティックルートの両方が設定されました。設定の最上位層にジャンプして、追加した設定を確認します。

[edit routing-options rib inet6.0 aggregate]IDSG@r5# top

[edit]IDSG@r5# show | compare [edit]+ routing-options {+ rib inet6.0 {+ static {+ route ::/0 next-hop [ 2001:db8:0:8:202:b300:2d14:a3e 2001:db8:0:7:202:b300:2315:595 ];+ }+ aggregate {+ route 2001:db8:0:7::/64;+ }+ }+ }

[edit]IDSG@r5#

先に進む前に、これらの変更を忘れずに commitしてください。「生成ルートの作成方法の説明は省略されていた」と読者の皆さんに思われないように、以下の「実践」を用意しました。今すぐやってみてください。

Page 43: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 43

実践:IPv6生成ルートの設定

staticステートメントまたは aggregateステートメントを generateステートメントに置き換えて、生成ルートを設定します。ヒントとして、R5の routing-optionsの設定が完了した状態の例を以下に示します。[edit]IDSG@r5# show routing-options rib inet6.0 { static { route 2001:db8::4/128 next-hop 2001:db8:0:8:202:b300:2d14:a3e; } aggregate { route 2001:db8::/64; } generate { route 2001:db8:0:10::/64; }}

[edit]IDSG@r5#

この一般的な手順を使用して、スタティックルート、集約ルート、生成ルートをネットワークにさらに追加してください。到達可能性を完全に確保できますか。

スタティック/集約 /生成 IPv6ルートの検証

IPv6アドレスの検証と同様に、Junosでの IPv6ルートの検証方法は、IPv4とほぼ同じです。1. inet6.0ルーティングテーブルを確認します。

2. pingテストを実施して、基本的な到達可能性を検証します。3. tracerouteテストを実施して、トラフィックが期待通りの経路をたどっていることを検証します。

IPv6ルーティングテーブルの内容の表示方法デフォルトでは、IPv6のルートは Junos inet6.0ルーティングテーブルに保存されます。show route table inet6.0コマンドを使用して、テストベッドの R5の IPv6ルーティング情報を表示します。

Page 44: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

44 Day One:IPv6の探求

IDSG@r5> show route table inet6.0

inet6.0:12 destinations, 13 routes (11 active, 0 holddown, 1 hidden)+ = Active Route, - = Last Active, * = Both

::/0 *[Static/5] 00:26:08 > to 2001:db8:0:8:202:b300:2d14:a3e via ge-1/0/1.45 to 2001:db8:0:7:202:b300:2315:595 via ge-1/0/2.352001:db8::5/128 *[Direct/0] 5d 22:19:52 > via lo0.02001:db8:0:7::/64 *[Direct/0] 5d 22:19:52 > via ge-1/0/2.352001:db8:0:7:290:2700:233f:1cbc/128 *[Local/0] 5d 22:19:52 Local via ge-1/0/2.352001:db8:0:8::/64 *[Direct/0] 5d 22:19:52 > via ge-1/0/1.452001:db8:0:8:2a0:c900:2dca:9cc6/128 *[Local/0] 5d 22:19:52 Local via ge-1/0/1.45fe80::/64 *[Direct/0] 5d 22:19:52 > via ge-1/0/2.35 [Direct/0] 5d 22:19:52 > via ge-1/0/1.45fe80::260:b0ff:fe1b:f32d/128 *[Direct/0] 5d 22:19:52 > via lo0.0fe80::290:2700:233f:1cbc/128 *[Local/0] 5d 22:19:52 Local via ge-1/0/2.35fe80::2a0:c900:2dca:9cc6/128 *[Local/0] 5d 22:19:52 Local via ge-1/0/1.45 ge-1/0/1.45

プレフィックスとネクストホップアドレスを除いて、出力は IPv4ユニキャストルーティングテーブルのものと全く同じです。

注 show routeコマンドで特定のテーブルを指定しないと、ルーター上のアクティブなルーティングテーブルがすべて表示されます。これには、inet.0、inet6.0、またはその他の設定済みルーティングテーブルおよびそれぞれに含まれているすべてのルートが含まれます。

この出力からわかることが、いくつかあります。まず、設定済みのスタティックルートと集約ルートを特定して、それらがアクティブ(*または +で示される)であることが確認できます。

::/0 *[Static/5] 00:13:09 > to 2001:db8:0:8:202:b300:2d14:a3e via ge-1/0/1.45 to 2001:db8:0:7:202:b300:2315:595 via ge-1/0/2.35<snip>

Page 45: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第2章:IPv6のはじめに 45

2001:db8:0:7::/64 *[Aggregate/130] 2d 20:20:22 Reject

次に、各ルートのネクストホップが期待どおりであることを確認できます。スタティックなデフォルトルートに両方の設定済みのネクストホップがリストされていることと、選択されている経路が ge-1/0/1.45経由で R4に到達することがわかります。

::/0 *[Static/5] 00:13:09 > to 2001:db8:0:8:202:b300:2d14:a3e via ge-1/0/1.45 to 2001:db8:0:7:202:b300:2315:595 via ge-1/0/2.35<snip>2001:db8:0:7::/64 *[Aggregate/130] 2d 20:20:22 Reject

非表示のルートが 1つあることもわかります。inet6.0:12 destinations, 13 routes (11 active, 0 holddown, 1 hidden)+ = Active Route, - = Last Active, * = Both

show routeコマンドで hiddenフラグを使用すると、これをもう少し詳細に調べることができます(前述の「実践」セクションで設定した生成ルートが見つかります)。IPv4では、集約ルートと生成ルートをアクティブにするには、アクティブなコントリビューションルートが少なくとも 1つ必要でした。これは IPv6のルートでも同じです。R5の2001:db8:0:10::/64プレフィックス内にアクティブなルートがなければ、このルートは非表示のままになります。

IDSG@r5> show route table inet6.0 hidden

inet6.0:12 destinations, 13 routes (11 active, 0 holddown, 1 hidden)+ = Active Route, - = Last Active, * = Both

2001:db8:0:10::/64 [Aggregate] 2d 19:27:32 RejectIDSG@r5>

さらに詳しくは スタティックルート、集約ルート、生成ルートの詳細については、『Junos OS Routing Protocols Configuration Guide』の「Protocol-

Independent Routing Properties Configuration Guide」を参照してください。

IPv6ルートの pingテストの方法:R5のスタティックルートはアクティブで、正しいネクストホップが含まれています。pingテストを実施して、このことを確認しましょう。R3の ge-1/0/4.34インタフェースは R5に直接接続されていないため、これを pingします。また、この pingは、必ず R5のループバックインタフェースをソースとしてください。

Page 46: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

46 Day One:IPv6の探求

IDSG@r5> ping 2001:db8:0:6:202:b300:2215:595 source 2001:db8::5 count 2 PING6(56=40+8+8 bytes) 2001:db8::5 --> 2001:db8:0:6:202:b300:2215:59516 bytes from 2001:db8:0:6:202:b300:2215:595, icmp_seq=0 hlim=64 time=0.738 ms16 bytes from 2001:db8:0:6:202:b300:2215:595, icmp_seq=1 hlim=64 time=0.492 ms

--- 2001:db8:0:6:202:b300:2215:595 ping6 statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max/std-dev = 0.492/0.615/0.738/0.123 ms

IDSG@r5>

すばらしい !スタティックルーティングは機能しているようです。

注 現時点で、本書のテストベッドでは IGPが設定されていないため、ルーティングは非常に制限されています。R3およびR4のスタティックルートは R5のループバックインタフェースを指しています。そのため、そのアドレスを pingおよび tracerouteテストのソースとして使用する必要があります。

tracerouteを使用して IPv6ルートをテストする方法:今度は、前のセクションで pingした R3上のインタフェースに対するtracerouteテストを実行します。

IDSG@r5> traceroute 2001:db8:0:6:202:b300:2215:595 source 2001:db8::5 traceroute6 to 2001:db8:0:6:202:b300:2215:595 (2001:db8:0:6:202:b300:2215:595) from 2001:db8::5, 30 hops max, 12 byte packets 1 2001:db8:0:8:202:b300:2d14:a3e (2001:db8:0:8:202:b300:2d14:a3e) 0.530 ms 0.395 ms 0.324 ms 2 2001:db8:0:6:202:b300:2215:595 (2001:db8:0:6:202:b300:2215:595) 0.670 ms 0.603 ms 0.553 ms

IDSG@r5>

パケットは R4を経由してR3のインタフェースに達していることがわかります。前述の show routeの出力で、R4へのリンクが R5のデフォルトルートとして選択されている経路であることが示されていました。このことから、パケットが R4を経由して R3のインタフェースに達しているということも想定内といえます。スタティックルートを使用するときは、最適なルーティングを期待することはできません。デフォルトルートを使用しているときも、もちろん同じです。それにもかかわらず、現在、ネットワークには基本的なマルチホップ IPv6接続があります。ネットワークで完全な到達可能性、真の拡張性、最適なルーティングを実現するには、通常は IGPが必要となるのです。それではここで一休みして、コーヒーでも飲むなり、この章の「実践」セクションを復習するなりしてください。次の章では、IPv6 IGPについて説明します。

Page 47: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章

IPv6でのダイナミックルーティング

IPv6のルーティングプロトコルの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

RIPngの検出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

OSPF3の探求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

IPv6でのIS-ISの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Page 48: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

48 Day One:IPv6の探求

前章では、Junosオペレーティングシステムを使用した IPv6の設定の基本を学習しました。2~ 3台程度のネットワークデバイスと少数のプレフィックスで構成される小規模なエンタープライズネットワークでは、これさえ知っていれば、IPv6を展開するには十分かもしれません。しかし、より規模が大きく複雑なネットワークでは、ダイナミックルーティングプロトコルを活用する必要があります。小規模ネットワークを使用している方も、このまま一緒に学習を進めていきましょう。みなさん全員に、学ぶべきことがたくさんあるからです。

この章では、IPv6をサポートする 3つの IGP(Interior Gateway Protocol)、RIPng、OSPF3、IS-ISについて、第 2章で説明した知識やツールを使用して学習します。この章を読み終わると、自分で選んだ IGPを使用してネットワーク内で基本的な IPv6ダイナミックルーティングの動作を有効にし、検証する方法がわかります。Junosにおける IPv6ルーティングの全体的な理解が深まることは言うまでもありません。

注 この章は、IPv4でのダイナミックルーティングの経験があることと、IGPルーティングについて少なくとも基本的な理解があることを想定しています。IGPについて詳細情報が必要と感じる場合は、www.juniper.net/techpubsで公開されているの第5章を参照してください。

IPv6のルーティングプロトコルの概要現在の IPv4ネットワークでダイナミックルーティングプロトコルを使用している場合は、今後おそらく、IPv6 IGPを設定する必要がでてきます。IPv6のみのネットワークを新規に設定する場合は、サイズにかかわらず、ルーティングプロトコルを設計に組み入れて、将来的なネットワークの拡大に備えることをお奨めします。Junosで IPv6ルーティングプロトコルを選択する際は、RIPng、OSPF3、IS-ISの 3つの IGPから選択できます。これら 3つのプロトコルについては、同様の IPv4のルーティングプロトコルでの作業経験から、よくおわかりでしょう。これらを IPv6用に設定する手順も、ほぼ同じ(場合によってはまったく同じ)です。ただし、RIPngとOSPF3の場合は、IPv6をサポートするには新しいバージョンを設定する必要がありますが、IS-ISでは、その必要はありません。

警告 RIPとOSPFで IPv6をサポートするには、新しいバージョンが必要です。

IGPを使用している既存の IPv4ネットワークがある場合は、IPv6ネットワークにも同じプロトコルを選択するとよいでしょう。そうすると、

Page 49: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 49

あなた方自身やネットワークスタッフが学習しなければならない変更や新規項目の数を、最小限にとどめることができます。一方で、IPv6をネットワークに追加することは、現在のルーティングプロトコルとネットワークトポロジーを再検討し、現在と将来の両方のニーズに合わせた最適化を試みる絶好の機会です。最終的に、ここで選択する IGPは、実際のネットワークおよびビジネスに固有のニーズを満たす必要があります。これらのセクションを読み終わると、3つすべてのプロトコルについてしっかりと理解し、いずれかを選択する準備を整えることができます。どの IGPを選択するか決まっている場合は、直接そのセクションに進んで構いません。

さらに詳しくは IGPの選択について、幅広い情報に基づいた解説が必要な場合は、www.juniper.net/booksで、ジェフ・ドイル氏の著書『OSPF and IS-IS: Choosing an IGP for Large-Scale Networks』(2007 年、Addison-Wesley社発行)を参照してください。

RIPngの検出IPv6対応の RIPng(Routing Information Protocol next generation)は、IPv4対応の RIPと同様に、ホップ数をメトリックとして使用する距離ベクトルベースの IGPであり、中小規模の自律システム向けです。多くの類似点はあるものの、RIPngは、RIPとは別個のルーティングプロトコルであり、Junosでは次のような違いがあることに注意してください。

� RIPngは 128ビットの IPアドレスを使用するため、IPv6ネットワークでのみ使用できます。

� RIPngは IPv6の認証メカニズムに依存しているため、パケットに関して独自の認証を実行しません。

� RIPngの複数インスタンスのサポートはありません。 � RIPngルーティングテーブルグループのサポートはありません。

RIPngを IPv6 IGPとして選択する前に、以下に示すようなこのプロトコルの構造上の制限を理解する必要があります。

� ネットワーク経路の長さは最大で 15ホップです。 � RIPngは、固定のメトリック(ホップ数)を使用してルートを選択します。その他の IGPでは追加のパラメータを使用するため、ネットワークのニーズにより柔軟に対応でき、設定変更が可能です。

� RIPngを大規模なネットワークで使用する場合は、ネクストホップの解決に必要な時間とネットワーク帯域幅がかなり大きくなる可能性があります(特にルーティングループが形成されている場合)。

Page 50: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

50 Day One:IPv6の探求

さらに詳しくは RIPngの詳細については、RFC 2080『RIPng for IPv6』(http://tools.ietf.org/rfc/rfc2080.txt)および RFC 2081『RIPng Protocol Applicability Statement』(http://tools.ietf.org/rfc/rfc2081.txt)を参照してください。

RIPngの設定

図 2.1のテストベッドネットワークの例に基づいて、本書のテストベッドに基づいた R1からR4のルーターで RIPngを設定しましょう。

RIPngを設定する第一歩は、RIPを設定する場合とまったく同じです。グループを定義して、RIPngを実行するすべてのインタフェースをリストします。まず R1から始めましょう。

警告 RIPngを設定する前に、スタティックルート、集約ルート、生成ルートをすべてテストベッドルーターから削除してください。これを行うには、設定レベルのコマンド delete routing-optionsを、すべてのルーターで発行します。

RIPngグループを設定するには:1. まず、設定モードから、protocols ripng階層にジャンプします。[edit]IDSG@r1# edit protocols ripng

[edit protocols ripng]IDSG@r1#

2. 次に、該当する設定レベルに切り替えて、グループを作成します(ここでは、グループ名は r1-r4)。 [edit protocols ripng]IDSG@r1# edit group r1-r4

[edit protocols ripng group r1-r4]IDSG@r1#

3. 次に、R1のすべてのインタフェースを、neighborステートメントを使用して追加します。[edit protocols ripng group r1-r4]IDSG@r1# set neighbor ge-1/0/1.100

[edit protocols ripng group r1-r4]IDSG@r1# set neighbor ge-1/0/2.0

[edit protocols ripng group r1-r4]IDSG@r1# set neighbor ge-1/0/3.0

50

Page 51: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 51

[edit protocols ripng group r1-r4]IDSG@r1# set neighbor ge-1/0/4.0

[edit protocols ripng group r1-r4]IDSG@r1#

4. ここまでの変更を確認します。[edit protocols ripng group r1-r4]IDSG@r1# top

[edit]IDSG@r1# show | compare [edit protocols]+ ripng {+ group r1-r4 {+ neighbor ge-1/0/1.100;+ neighbor ge-1/0/2.0;+ neighbor ge-1/0/3.0;+ neighbor ge-1/0/4.0;+ }+ }

[edit]IDSG@r1#

これらの変更がコミットされているとすると、R1はすべてのインタフェースで RIPngを実行しますが、ルートはまったくアドバタイズしません。Junosに RIPおよび RIPngの両方を実装する場合は、ほぼすべての場合にエクスポートポリシーが必要です。エクスポートポリシーは、RIPまたは RIPngで学習したルートを再アドバタイズするだけであっても必要です。そのため、次の手順では、R1で適切なエクスポートポリシーを定義し、それに r1-r4 RIPngグループを関連付けます。R1のインタフェースに関連付けられているすべての直接ルートをアドバタイズし、RIPngで学習したルートを再アドバタイズするポリシーの例を作成しましょう。

RIPngエクスポートポリシーを設定するには:1. まず、エクスポートポリシーを作成します(ここでは ripng-exportという名前)。[edit]IDSG@r1# edit policy-options policy-statement ripng-export

[edit policy-options policy-statement ripng-export]IDSG@r1#

2. 次に、RIPngから学習したすべてのルートを再アドバタイズする項目を作成します。 [edit policy-options policy-statement ripng-export]

Page 52: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

52 Day One:IPv6の探求

IDSG@r1# set term ripng from protocol ripng

[edit policy-options policy-statement ripng-export]IDSG@r1# set term ripng then accept

[edit policy-options policy-statement ripng-export]IDSG@r1#

3. 次に、R1の直接ルートをアドバタイズする項目を作成します。 [edit policy-options policy-statement ripng-export]IDSG@r1# set term direct from protocol direct

[edit policy-options policy-statement ripng-export]IDSG@r1# set term direct from route-filter 2001:DB8::/32 orlonger

[edit policy-options policy-statement ripng-export]IDSG@r1# set term direct then accept

[edit policy-options policy-statement ripng-export]IDSG@r1#

4. ポリシーを検証します。[edit policy-options policy-statement ripng-export]IDSG@r1# show term ripng { from protocol ripng; then accept;}term direct { from { protocol direct; route-filter 2001:DB8::/32 orlonger; } then accept;}

[edit policy-options policy-statement ripng-export]IDSG@r1#

5. 最後に、新しいエクスポートポリシーをRIPngグループに適用します。[[edit policy-options policy-statement ripng-export]IDSG@r1# top

[edit]IDSG@r1# set protocols ripng group r1-r4 export ripng-export

[edit]IDSG@r1#

Page 53: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 53

RIPに詳しい人なら、Junosで RIPngを IPv6用に設定する際に使用する手順とコマンドが、RIPを IPv4用に設定する場合に使用するものとほぼ同じであることに気付くでしょう。RIPに詳しくない人でも、上記のポリシーの例で route-filterステートメントが direct項目に追加されていることはわかるはずです。このステートメントは、ポリシーが適切に機能するために必須というわけではありませんが、IPv4と IPv6の間で Junosのポリシー設定がいかに類似しているかを示しています。RIPngの使用にはポリシーの設定が必須であるため、このことを知っておくと便利です。

ベストプラクティス route-filterステートメントはこの場合は必須ではありませんが、可能な限り具体的なポリシーを作るようにして(IPv4も IPv6も同様にすべて)、将来的に設定が変更されても競合が発生しないようにすることをお奨めします。

実践:RIPngの設定

テストベッド(またはそのサブセット)を、RIPng用に設定します。RIPngグループに適切なインタフェースを追加することと、エクスポートポリシーを忘れないでください。また、スタティックルートまたは集約ルートを追加して、RIPng経由でアドバタイズする練習をしてみてもよいでしょう。そうするには、ルート自体を設定してから、それを RIPngエクスポートポリシーに追加する必要があります。

ヒント ここで使用しているネットワークの例では、R1で定義されているエクスポートポリシーを、変更なしで、他の 3つの RIPngルーターすべてで使用することができます。これは、Junosソフトウェアの loadコマンド(load set、load patch、load merge、load replace)を使用する絶好のチャンスです。

さらに詳しくは Junosで の RIPng の 設 定 の 詳 細 に つ いては、www.juniper.net/techpubs/にある「Junos® OS RIPng Configuration Guide」を参照してください。

RIPngの検証

もうすでに予想されているかもしれませんが、RIPngの検証は、RIPを検証する場合に使用するアプローチやコマンドによく似ています。以下のセクションでは、次のような手順を学習します。1. RIPngが正しいインタフェース上で実行されていることを確認します。2. ルーターが期待どおりのルートを送受信していることを検証します。3. 期待どおりのルートがすべて存在し、アクティブであることを確認します。

4. pingおよび tracerouteのテストを実施します。

Page 54: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

54 Day One:IPv6の探求

RIPngが実行されているインタフェースを確認するにはルーターが RIPngルート情報を交換できるようにするには、対応するインタフェースで RIPngプロトコルが実行されている必要があります。まず、R3で確認しましょう。

R1からR4のルーターで RIPngが設定されているため、図 2.1を少し見れば、R3では ge-1/0/1.0、ge-1/0/2.0、ge-1/0/4.34の各インタフェースで RIPngが実行されていなければならないことがわかります。show ripng neighborコマンドを発行して、このことを検証します。

IDSG@r3> show ripng neighbor Source Dest InNeighbor State Address Address Send Recv Met-------- ----- ------- ------- ---- ---- ---ge-1/0/1.0 Up fe80::204:acff:fe18:131 ff02::9 yes yes 1ge-1/0/2.0 Up fe80::290:27ff:fe46:8ac6 ff02::9 yes yes 1ge-1/0/4.34 Up fe80::202:b300:2215:595 ff02::9 yes yes 1

IDSG@r3>

この出力から、RIPngは期待どおりのインタフェースでアップデートを送受信するように設定されていることが、はっきりとわかります。このチェックは、すべての RIPngルーターで実行する必要があります。このチェックでは、そのローカルルーターが適切に設定されていることを確認するだけで、隣接ルーターも適切に設定されているかどうかは確認されないからです。送信元アドレスは対応するインタフェースのリンクローカルアドレスであり、宛先アドレスは常に ff02::9です。ff02::9は RIPngメッセージのマルチキャスト宛先アドレスであり、RIPの場合の 224.0.0.9と同様です。

注 リンクローカルのマルチキャストアドレスに割り当てられている IPv6アドレスの範囲は ff02::/16です。特定のアドレスの多くは、対応するIPv4アドレスを多少ミラーリングするように選択されています。

RIPngの隣接ルーターにアドバタイズされるルートを表示するには:ネットワークを運用するにあたって、ルーティングプロトコルを実行することは、ルーター間でルート情報を正常に交換できてこそ価値があります。RIPngも例外ではありません。次の手順では、ルーターがRIPng経由で正しいルートを送受信していることを検証します。まず、R3が R4に対してアドバタイズしているルートを検証します。1. まず、すでに表示されている show ripng neighborコマンドからの出力を確認して、正しいリンクローカルアドレスを特定します(この場合は、R4に到達するためのアドレスを探しており、R3が ge-1/0/4.34

インタフェース経由で R4に接続していることがわかっています)。

Page 55: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 55

Source Dest InNeighbor State Address Address Send Recv Met<snip>ge-1/0/4.34 Up fe80::202:b300:2215:595 ff02::9 yes yes 1

2. 次に、そのアドレスを使用して show route advertising-protocol

ripngコマンドを発行します。 IDSG@r3> show route advertising-protocol ripng fe80::202:b300:2215:595

inet6.0:24 destinations, 30 routes (24 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both

2001:db8::1/128 *[RIPng/100] 01:45:57, metric 2, tag 0 > to fe80::202:b3ff:fe0a:c826 via ge-1/0/2.02001:db8::2/128 *[RIPng/100] 01:45:58, metric 2, tag 0 > to fe80::202:b3ff:fecd:94b0 via ge-1/0/1.02001:db8::3/128 *[Direct/0] 03:56:13 > via lo0.02001:db8:0:1::/64 *[RIPng/100] 01:45:58, metric 2, tag 0 > to fe80::202:b3ff:fecd:94b0 via ge-1/0/1.0 to fe80::202:b3ff:fe0a:c826 via ge-1/0/2.02001:db8:0:3::/64 *[Direct/0] 03:56:13 > via ge-1/0/1.0 [RIPng/100] 01:45:58, metric 2, tag 0 > to fe80::202:b3ff:fecd:94b0 via ge-1/0/1.02001:db8:0:4::/64 *[Direct/0] 03:56:13 > via ge-1/0/2.0 [RIPng/100] 01:45:57, metric 2, tag 0 > to fe80::202:b3ff:fe0a:c826 via ge-1/0/2.02001:db8:0:6::/64 *[Direct/0] 01:36:08 > via ge-1/0/4.34 [RIPng/100] 01:35:15, metric 2, tag 0 > to fe80::202:b300:2214:a3e via ge-1/0/4.342001:db8:0:7::/64 *[Direct/0] 01:36:08 > via ge-1/0/4.352001:db8:0:9::/64 *[RIPng/100] 01:45:58, metric 2, tag 0 to fe80::202:b3ff:fecd:94b0 via ge-1/0/1.0 > to fe80::202:b3ff:fe0a:c826 via ge-1/0/2.0

IDSG@r3>

出力から、直接ルートおよび RIPngルートがすべて、設定済みのエクスポートポリシーに基づいて R3からR4に送信されていることが確認できます。1つ注目すべき点は、RIPngのネクストホップがすべて隣接ルーターのリンクローカルアドレスをポイントしていることです。これは、リンクローカルアドレス指定機能がない IPv4とは異なります。

では、R3が R4から正しいルートを受信していることを検証しましょう。

Page 56: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

56 Day One:IPv6の探求

RIPngルーターで受信されるルートを表示するには:1. まず、隣接ルーターの直接接続されているリンクローカルアドレスをキャプチャします(Junosでは、IPv6対応のすべてのインタフェース用にリンクローカルアドレスが自動的に設定されるため、アドレスは常に fe80::/64プレフィックスから始まります)。

IDSG@r4> show interfaces ge-1/0/3.34 terse Interface Admin Link Proto Local Remotege-1/0/3.34 up up inet6 2001:db8:0:6:202:b300:2214:a3e/64 fe80::202:b300:2214:a3e/64

IDSG@r4>2. 次に、キャプチャしたアドレスを show route receive-protocol

ripngコマンドに指定して、受信したルートを表示します。 IDSG@r3> show route receive-protocol ripng fe80::202:b300:2214:a3e

inet.0:2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)

inet6.0:24 destinations, 30 routes (24 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both

2001:db8::4/128 *[RIPng/100] 02:00:26, metric 2, tag 0 > to fe80::202:b300:2214:a3e via ge-1/0/4.342001:db8:0:2::/64 *[RIPng/100] 02:11:08, metric 2, tag 0 to fe80::202:b3ff:fe0a:c826 via ge-1/0/2.0 > to fe80::202:b300:2214:a3e via ge-1/0/4.342001:db8:0:5::/64 *[RIPng/100] 02:11:09, metric 2, tag 0 > to fe80::202:b3ff:fecd:94b0 via ge-1/0/1.0 to fe80::202:b300:2214:a3e via ge-1/0/4.342001:db8:0:6::/64 [RIPng/100] 02:00:26, metric 2, tag 0 > to fe80::202:b300:2214:a3e via ge-1/0/4.342001:db8:0:8::/64 *[RIPng/100] 02:00:26, metric 2, tag 0 > to fe80::202:b300:2214:a3e via ge-1/0/4.34

__juniper_private1__.inet6.0:1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)

IDSG@r3>

R4は直接接続されたルートをすべて、ループバックアドレスも含めて、R3にアドバタイズしています。2001:db8:0:6::/64の RIPngルートは、R3ではアクティブでないことに注目してください。これは、R3がこのネットワークの直接ルートを持っており、直接ルートは、管理距離がゼロであるため、他のどのルートよりも優先されるからです。

さらに詳しくは 管理距離およびルート選択の詳細については、『JNCIS-M: Juniper Networks Certified Internet Specialist Study Guide』(http://www.juniper.net/jp/jp/training/certification/books.html)を参照してください。

Page 57: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 57

これらの結果をすべての RIPngルーターで検証した後に、期待どおりのルートが RIPngによって交換されていることを断定できます。これにより、エクスポートポリシー ripng-exportが正常に機能していることと、すべての RIPngルートおよび 2001:DB8::/32で始まる直接ルートが、すべての RIPngルーターによってネットワーク全体にアドバタイズされていることを確認できます。

RIPngルートテーブルを表示することによってルートを確認するにはRIPngの動作を検証するための次の手順は、各ルーターでそのプロトコルによって学習されたすべてのルートを表示することです。これを行うには、show route protocol ripngコマンドを使用します。ここでは、R2からの出力を示します。

IDSG@r2> show route protocol ripng

inet.0:2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)

inet6.0:24 destinations, 31 routes (24 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both

2001:db8::1/128 *[RIPng/100] 00:08:28, metric 2, tag 0 > to fe80::2a0:c900:64d5:dd4c via ge-1/0/1.100 to fe80::202:b3ff:fe14:753 via ge-1/0/2.02001:db8::3/128 *[RIPng/100] 00:08:28, metric 2, tag 0 > to fe80::204:acff:fe18:131 via ge-1/0/3.02001:db8::4/128 *[RIPng/100] 00:08:28, metric 2, tag 0 > to fe80::204:acff:fe58:c130 via ge-1/0/4.02001:db8:0:1::/64 [RIPng/100] 00:08:28, metric 2, tag 0 to fe80::2a0:c900:64d5:dd4c via ge-1/0/1.100 > to fe80::202:b3ff:fe14:753 via ge-1/0/2.02001:db8:0:2::/64 *[RIPng/100] 00:08:28, metric 2, tag 0 to fe80::2a0:c900:64d5:dd4c via ge-1/0/1.100 to fe80::202:b3ff:fe14:753 via ge-1/0/2.0 > to fe80::204:acff:fe58:c130 via ge-1/0/4.02001:db8:0:3::/64 [RIPng/100] 00:08:28, metric 2, tag 0 > to fe80::204:acff:fe18:131 via ge-1/0/3.02001:db8:0:4::/64 *[RIPng/100] 00:08:28, metric 2, tag 0 to fe80::2a0:c900:64d5:dd4c via ge-1/0/1.100 > to fe80::202:b3ff:fe14:753 via ge-1/0/2.0 to fe80::204:acff:fe18:131 via ge-1/0/3.02001:db8:0:5::/64 [RIPng/100] 00:08:28, metric 2, tag 0 > to fe80::204:acff:fe58:c130 via ge-1/0/4.02001:db8:0:6::/64 *[RIPng/100] 00:08:28, metric 2, tag 0 > to fe80::204:acff:fe18:131 via ge-1/0/3.0 to fe80::204:acff:fe58:c130 via ge-1/0/4.02001:db8:0:7::/64 *[RIPng/100] 00:08:28, metric 2, tag 0 > to fe80::204:acff:fe18:131 via ge-1/0/3.02001:db8:0:8::/64 *[RIPng/100] 00:08:28, metric 2, tag 0

Page 58: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

58 Day One:IPv6の探求

> to fe80::204:acff:fe58:c130 via ge-1/0/4.02001:db8:0:9::/64 [RIPng/100] 00:08:28, metric 2, tag 0 > to fe80::2a0:c900:64d5:dd4c via ge-1/0/1.100 to fe80::202:b3ff:fe14:753 via ge-1/0/2.0ff02::9/128 *[RIPng/100] 00:08:28, metric 1 MultiRecv

__juniper_private1__.inet6.0:1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)

IDSG@r2>

図 2.1をもう一度参照すると、この出力では、ここで使用しているテストベッドで RIPngが適切に動作していることを確認できます。/64のインタフェースすべてと、他の 3つすべての RIPngルーターのループバックアドレスが、RIPng経由で学習されています。R1から学習されているすべてのルートにネクストホップが 2つずつあることにもお気付きかもしれません。これは、R1とR2を接続しているリンクは 2つあり、その両方のインタフェースが r1-r4 RIPngグループに追加されているからです。

注 R2のループバックアドレスは、R2上の RIPngルートではありません。R2はそのルートをRIPngに注入している唯一のルーターであり、スプリットホライズンによって、ルートが他の RIPngルーターからR2に逆にアドバタイズされないようになっているからです。

これらの結果がすべてのルーターで確認されたら、ネットワーク全体で RIPngが適切に設定されていると言って差し支えないでしょう。しかし、pingや tracerouteなどの接続テストによって、これを確認することをお奨めします。では、手順を完了しましょう。

pingおよび tracerouteのテストを実施するにはRIPngで期待どおりのルートが交換されていることを検証したら、次は接続テストによって再確認します。

第 2章のスタティックルートの場合と同様に、ネットワーク内のさまざまな場所で、まず ping、次に tracerouteを両方向で実施して、IPv6トラフィックの送受信が実際に可能であることを確認します。

本書のテストベッドでは、R5のループバックアドレスを除き、4つすべての RIPngルーターから、すべてのインタフェースアドレスに到達できる必要があります。R5は RIPngドメインに参加していないため、スタティックルートを設定してR3または R4(あるいは両方)のRIPngにエクスポートすることによって、RIPngルーターからR5のループバックアドレスに到達できるようにする必要があります。

さらに詳しくは RIPngの運用モードのコマンドの詳細については、www.juniper.net/techpubsにある「Junos Software Routing Protocols and Policies Command Reference」の第 11章を参照してください。

Page 59: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 59

実践:RIPngの検証

このセクションで学習したツールとスキルを利用して、RIPngテストベッドの動作を検証します。まず、show ripng neighborで、RIPngが必要なインタフェースで動作していることを確認します。show route receive-protocol ripng、show route advertising-protocol ripng、show route

protocol ripngを使用して、RIPngルーター間のルートの交換を検証し、次に pingコマンドとtracerouteコマンドを使用して、接続状況と、ルーティングが最適かどうかをテストします。

OSPF3の探求RIPngが RIPとは別個のプロトコルであるのとは異なり、OSPF3は、IPv6をサポートするようにOSPFを修正したバージョンです。OSPF(OSPFv2および OSPF3を含む)は、リンクステート情報とSPF(Shortest Path First)(または Dijkstra)アルゴリズムを使用し、インタフェースコストをメトリックとしてルーティングの決定を行う IGPです。OSPF3とOSPFv2には、主に次のような違いがあります。

� OSPF3では、近隣の ID情報はすべて 32ビットのルーター IDに基づきます。

� OSPF3は、サブネットごとではなく、リンクごとに実行されます。 � OSPF3 router-LSAおよび network-LSAでは、プレフィックス情報は運搬されません。

� OSPF3には、link-LSAと intra-area-prefix-LSAの 2つの新しい LSAタイプが含まれています。

� OSPF3では、タイプ 3とタイプ 4のサマリー LSAの名前が、それぞれ inter-area-prefix-LSAと inter-area-router-LSAに変更されました。

� OSPF3では、隣接ルーター間でのすべてのデータ交換(仮想リンクを除く)にリンクローカルアドレスを使用します。

� OSPF3は、認証情報をパケットに含めて運搬するのではなく、IPv6認証ヘッダーに依存します。

OSPFv2と同様に、OSPF3では、ネットワークのトポロジーの変更を迅速に検出し、それほど多くのオーバーヘッドトラフィックもなく、即座に新しいルートを計算します。OSPF3は拡張性が高く、ほぼすべての規模のネットワークの優れた選択肢となります。

さらに詳しくは OSPF3の詳細については、RFC 5340『OSPF for IPv6』(http://tools.ietf.org/rfc/rfc5340.txt)を参照してください。

Page 60: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

60 Day One:IPv6の探求

OSPF3の設定

本書のテストベッド(図 2.1)の 5つすべてのルーターで OSPF3を設定するには、図 3.1に示すようにネットワークを設定する必要があります。

� R1および R2:バックボーンルーター � R3および R4:エリア 1の ABR(Area Border Router) � R5:エリア 1のルーター

図 3.1 OSPF3テストベッドのトポロジー

これまでに取り組んできた設定作業の多くとは違って、OSPF3の設定は、IPv4のみに対応するOSPFv2の設定とは異なります。ループバックアドレスをOSPF3にアドバタイズする場合は、ルーターの lo0インタフェースで直ちにプロトコルを実行する必要があります。RIPngの設定をすべて削除したら、まずバックボーンルーターの設定から始めましょう。

R1

R5

R4

R3

R2ルーターIDR1=1.1.1.1R2=2.2.2.2R3=3.3.3.3R4=4.4.4.4R5=5.5.5.5

::1

::2

::3

::5

2001:db8:0:4::/64

2001

:db8:0

:3::/6

4

2001:db8:0:5::/64

2001:db8:0:::/64

2001:db8:0:7::/64

2001:db8:0:8::/64

2001:db8:0:2::/64

2001

:db8

:0:9

::/64

2001

:db8

:0:1

::/64

ge-1/0/4

ge-1

/0/3

ge-1/0/1

ge-1/0/2ge-1/0/4

ge-1/0/2

ge-1/0/3

ge-1/0/1.100 ge-1/

0/1

ge-1/0/2 ge-1/0/2

ge-1/0/4.34ge-1/0/3.34

ge-1/0/1.100

ge-1/0/4.45ge-1/0/2.45

ge-1/0/3.45ge-1/0/1.45

::4

エリア 0エリア 1

Page 61: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 61

ベストプラクティス すべての lo0インタフェースで OSPFのパッシブ動作を有効にすると、負荷を削減できます。

OSPF3バックボーンエリアルーターを設定するには:1. まず、32ビットのルーター IDを設定します。[edit]IDSG@r1# set routing-options router-id 1.1.1.1

[edit]IDSG@r1#

2. 設定のOSPF3セクションにジャンプします。[edit]IDSG@r1# edit protocols ospf3

[edit protocols ospf3]IDSG@r1#

3. 次に、lo0インタフェースを、エリア0.0.0.0(バックボーンエリア)に追加します。 [edit protocols ospf3]IDSG@r1# set area 0 interface lo0.0 passive

[edit protocols ospf3]IDSG@r1#

4. 続いて、ループバック以外の適切なインタフェースを追加します。[edit protocols ospf3]IDSG@r1# set area 0 interface ge-1/0/2.0

[edit protocols ospf3]IDSG@r1# set area 0 interface ge-1/0/3.0

[edit protocols ospf3]IDSG@r1# set area 0 interface ge-1/0/4.0

[edit protocols ospf3]IDSG@r1#

5. 最後に、変更が正確かどうかを確認してコミットします。[edit protocols ospf3]IDSG@r1# top

[edit]IDSG@r1# show | compare [edit]

Page 62: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

62 Day One:IPv6の探求

+ routing-options {+ router-id 1.1.1.1;+ }[edit protocols]+ ospf3 {+ area 0.0.0.0 {+ interface lo0.0 {+ passive;+ }+ interface ge-1/0/2.0;+ interface ge-1/0/3.0;+ interface ge-1/0/4.0;+ }+ }

[edit]IDSG@r1# commit commit complete

[edit]IDSG@r1#

もう一方のバックボーンルーターであるR2の設定もほぼ同じです。唯一の違いはルーター IDです。R2の設定が終わったら、ABRに移りましょう。ABRは、バックボーンエリアとその他のエリアの間でルート情報を通信するルーターであるため、OSPFでは非常に重要です。まずR4から始めましょう。

OSPF3の ABRを設定するには:1. ここでも、ルーター IDを追加することが最初の手順となります。[edit]IDSG@r4# set routing-options router-id 4.4.4.4

[edit]IDSG@r4#

2. 次に、OSPF3設定階層から、適切なインタフェースをエリア0に追加します。 [edit protocols ospf3]IDSG@r4# set area 0 interface lo0.0 passive

[edit protocols ospf3]IDSG@r4# set area 0 interface ge-1/0/1.0

[edit protocols ospf3]IDSG@r4# set area 0 interface ge-1/0/2.0

Page 63: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 63

[edit protocols ospf3]IDSG@r4# set area 0 interface ge-1/0/3.34

[edit protocols ospf3]IDSG@r4#

3. 次に、正しいインタフェースをエリア 1に追加します(この場合はR5へのインタフェースは ge-1/0/3.45)。[edit protocols ospf3]IDSG@r4# set area 1 interface ge-1/0/3.45

[edit protocols ospf3]IDSG@r4#

4. 最上位層にジャンプし、変更を確認して、コミットします。[edit protocols ospf3]IDSG@r4# top

[edit]IDSG@r4# show | compare [edit]+ routing-options {+ router-id 4.4.4.4;+ }[edit protocols]+ ospf3 {+ area 0.0.0.0 {+ interface lo0.0 {+ passive;+ }+ interface ge-1/0/1.0;+ interface ge-1/0/2.0;+ interface ge-1/0/3.34;+ }+ area 0.0.0.1 {+ interface ge-1/0/3.45;+ }+ }

[edit]IDSG@r4# commit commit complete

[edit]IDSG@r4#

Page 64: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

64 Day One:IPv6の探求

そんなに大変ではなかったでしょう?R3の設定は、インタフェースとルーター IDを R3のものにするだけで、それ以外は R4と同じです。同様に、R5のエリア 1の設定は、R1、または R2のエリア 0の設定とよく似ています。結局のところ、これらはすべて単一エリアのOSPF3ルーターなのです。参考までに、R5で行った変更を見てください。[edit]IDSG@r5# show | compare [edit routing-options]+ router-id 5.5.5.5;[edit]+ protocols {+ ospf3 {+ area 0.0.0.1 {+ interface lo0.0 {+ passive;+ }+ interface ge-1/0/1.45;+ interface ge-1/0/2.35;+ }+ }+ }

[edit]IDSG@r5#

これでテストベッドの設定は完了し、複数エリアの OSPF3ネットワークとなりました。OSPF3ネットワークの完成を祝う前に、これが実際に機能することを確認しましょう。

注 OSPF3は、ニーズに合わせて設定可能でカスタマイズ性に富んだプロトコルです。本書で説明しているテストベッドのネットワークは、極端にシンプルな実装例であり、OSPF3で可能なことを表面的に学習したに過ぎません。

さらに詳しくは JunosでのOSPF3の詳細については、「Junos® OS OSPF Configuration Guide」(www.juniper.net/techpubs) を参照してください。

実践:OSPF3の設定今度は実際にOSPF3を設定してみてください。このセクションで学習したことと、OSPFについてすでに知っていることを利用して、テストベッドを設定します。複数のエリアやエリアタイプを設定してみてください。スタブエリアを設定できますか。完全スタブエリアや準スタブエリアはどうでしょうか。また、RIPngで使用したようなエクスポートポリシーで、他のルートをOSPF3に注入してみてください。その際、ルーター IDの設定を忘れないようにしてください。

Page 65: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 65

OSPF3の検証RIPとRIPngの場合と同様、Junosでの OSPF3の検証手順は、OSPFの検証手順とよく似ています。

� OSPF3の隣接性を検証します。 � OSPF3に期待どおりのルートがすべて存在し、アクティブであることを確認します。

� OSPF3リンクステートデータベースを確認して、ルートの交換をさらに検証します。

� pingおよび tracerouteのテストを実施します。では、必要な手順に従って見ていきましょう。作業を進めるにつれ、時間の節約になる点がいくつか見つかるかもしれません。

OSPF3の隣接性のステータスを検証するには:OSPF3では、単純な旧式の OSPFと同様に、ルーティング情報は隣接するルーター間でのみ共有されます。このため、これらの隣接性を検証することが、OSPF3の動作を検証するための第一歩となります。隣接性が失われていれば、ルート情報の交換もなく、ルーティングプロトコルが機能する機会もありません。R3から検証を開始します。1. まず、正しいインタフェースで OSPF3が実行されていることを確認して、エリア設定に注目します。

IDSG@r3> show ospf3 interface Interface State Area DR-ID BDR-ID Nbrsge-1/0/1.0 BDR 0.0.0.0 2.2.2.2 3.3.3.3 1ge-1/0/2.0 BDR 0.0.0.0 1.1.1.1 3.3.3.3 1ge-1/0/4.34 DR 0.0.0.0 3.3.3.3 4.4.4.4 1lo0.0 DRother 0.0.0.0 0.0.0.0 0.0.0.0 0ge-1/0/4.35 BDR 0.0.0.1 5.5.5.5 3.3.3.3 1

IDSG@r3>2. 次に、隣接性のステータスを確認します。

IDSG@r3> show ospf3 neighbor ID Interface State Pri Dead2.2.2.2 ge-1/0/1.0 Full 128 31 Neighbor-address fe80::202:b3ff:fecd:94b01.1.1.1 ge-1/0/2.0 Full 128 33 Neighbor-address fe80::202:b3ff:fe0a:c8264.4.4.4 ge-1/0/4.34 Full 128 34 Neighbor-address fe80::202:b300:2214:a3e5.5.5.5 ge-1/0/4.35 Full 128 33 Neighbor-address fe80::290:2700:233f:1cbc

IDSG@r3>

Page 66: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

66 Day One:IPv6の探求

このコマンドの出力には、注目すべき重要な情報が 3つあります。 � ID:隣接ルーターのルーター IDです。 � State:隣接性の状態です。Fullは、近隣ルーター間に隣接性が確立されていることを示します。

� Neighbor-address:近隣ルーターの直接接続インタフェースのリンクローカルアドレスです。

OSPF3ルートテーブルを表示して確認するには:

すべての近隣ルーター間に適切な隣接性が確立されていることを確認したら、今度はそのルーター間でルーティング情報が適切に共有されていることを検証します。今回は R1から始めます。

IDSG@r1> show route protocol ospf3

inet6.0:25 destinations, 28 routes (25 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both

2001:db8::2/128 *[OSPF3/10] 20:14:09, metric 10 > to fe80::202:b3ff:fe0a:a170 via ge-1/0/4.02001:db8::3/128 *[OSPF3/10] 19:51:30, metric 10 > to fe80::290:27ff:fe46:8ac6 via ge-1/0/2.02001:db8::4/128 *[OSPF3/10] 19:48:38, metric 10 > to fe80::2a0:c9ff:feca:9cc2 via ge-1/0/3.02001:db8::5/128 *[OSPF3/10] 19:48:02, metric 20 to fe80::290:27ff:fe46:8ac6 via ge-1/0/2.0 > to fe80::2a0:c9ff:feca:9cc2 via ge-1/0/3.02001:db8:0:3::/64 *[OSPF3/10] 19:51:30, metric 20 to fe80::290:27ff:fe46:8ac6 via ge-1/0/2.0 > to fe80::202:b3ff:fe0a:a170 via ge-1/0/4.02001:db8:0:5::/64 *[OSPF3/10] 19:48:38, metric 20 to fe80::2a0:c9ff:feca:9cc2 via ge-1/0/3.0 > to fe80::202:b3ff:fe0a:a170 via ge-1/0/4.02001:db8:0:6::/64 *[OSPF3/10] 19:48:38, metric 20 to fe80::290:27ff:fe46:8ac6 via ge-1/0/2.0 > to fe80::2a0:c9ff:feca:9cc2 via ge-1/0/3.02001:db8:0:7::/64 *[OSPF3/10] 19:51:26, metric 20 > to fe80::290:27ff:fe46:8ac6 via ge-1/0/2.02001:db8:0:8::/64 *[OSPF3/10] 19:48:38, metric 20 > to fe80::2a0:c9ff:feca:9cc2 via ge-1/0/3.0ff02::5/128 *[OSPF3/10] 20:21:22, metric 1 MultiRecv

__juniper_private1__.inet6.0:1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)

IDSG@r1>

Page 67: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 67

最初に注目すべき点は、プロトコル OSPF3の下に inet6.0テーブルのみが存在することです。RIPngと同様に、OSPF3では IPv6のルートのみを交換できます。OSPF経由で IPv4ルートも交換するには、OSPFv2と同時にOSPF3を実行する必要があります。OSPFとOSPF3は、同じネットワーク、同じルーターで、運用上の問題なく同時実行できます。このネットワークのすべてのプレフィックスが R1上のOSPFルートとして存在することも確認できます。これは、OSPF3が適切に機能していることを示します。

ベストプラクティス Junosのルーティングテーブルでは、OSPFとOSPF3は同じプロトコルで表示されるため、OSPFルートを表示するときは、show route

protocol ospf3コマンドと show route protocol ospf2コマンドを使用することを推奨します。これにより、ルーティングテーブルを表示するときに混乱を避けることができます。

OSPF3リンクステートデータベースを表示するには:

OSPFと同様に、OSPF3リンクステートデータベースには、OSPF3ルーターで送受信された LSA(Link-state Advertisement)に関するデータが含まれています。R4でデータベースを見てみましょう。

IDSG@r5> show ospf3 database

OSPF3 link state database, Area 0.0.0.1 Type ID Adv Rtr Seq Age Cksum Len Router 0.0.0.0 3.3.3.3 0x80000024 1643 0xf7b1 40Router 0.0.0.0 4.4.4.4 0x80000024 2224 0xabfc 40Router *0.0.0.0 5.5.5.5 0x80000023 273 0x1362 56Network *0.0.0.1 5.5.5.5 0x80000020 873 0x852b 32Network *0.0.0.2 5.5.5.5 0x8000001f 2373 0x4b69 32InterArPfx 0.0.0.1 3.3.3.3 0x80000023 908 0x2a63 44InterArPfx 0.0.0.2 3.3.3.3 0x80000023 773 0x3a51 44InterArPfx 0.0.0.3 3.3.3.3 0x80000023 743 0xe85 44InterArPfx 0.0.0.5 3.3.3.3 0x80000023 1973 0x6463 36InterArPfx 0.0.0.6 3.3.3.3 0x80000023 1943 0x6c59 36InterArPfx 0.0.0.7 3.3.3.3 0x80000023 608 0x3895 36InterArPfx 0.0.0.8 3.3.3.3 0x80000023 473 0x408b 36InterArPfx 0.0.0.9 3.3.3.3 0x80000023 1808 0x843b 36InterArPfx 0.0.0.10 3.3.3.3 0x80000023 443 0x5077 36InterArPfx 0.0.0.11 3.3.3.3 0x80000024 2108 0x126d 44InterArPfx 0.0.0.4 4.4.4.4 0x80000023 1773 0xff8d 44InterArPfx 0.0.0.7 4.4.4.4 0x80000025 1024 0x4c4 36InterArPfx 0.0.0.10 4.4.4.4 0x80000025 1189 0x1ca6 36InterArPfx 0.0.0.11 4.4.4.4 0x80000024 274 0x269b 36InterArPfx 0.0.0.13 4.4.4.4 0x80000024 1174 0x91ea 44InterArPfx 0.0.0.14 4.4.4.4 0x80000023 1330 0xa3d7 44InterArPfx 0.0.0.15 4.4.4.4 0x80000025 723 0xafc7 44

Page 68: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

68 Day One:IPv6の探求

InterArPfx 0.0.0.16 4.4.4.4 0x80000025 573 0xd3e2 36InterArPfx 0.0.0.17 4.4.4.4 0x80000024 573 0xefc4 36InterArPfx 0.0.0.18 4.4.4.4 0x80000025 424 0xf5bb 36IntraArPfx *0.0.0.1 5.5.5.5 0x80000022 1773 0x145 52IntraArPfx *0.0.0.2 5.5.5.5 0x80000020 573 0x3d4f 44IntraArPfx *0.0.0.3 5.5.5.5 0x8000001f 2073 0x2567 44

OSPF3 Link-Local link state database, interface ge-1/0/1.45 Type ID Adv Rtr Seq Age Cksum Len Link 0.0.0.4 4.4.4.4 0x80000024 130 0xd889 56Link *0.0.0.1 5.5.5.5 0x80000021 1473 0x4895 56

OSPF3 Link-Local link state database, interface ge-1/0/2.35 Type ID Adv Rtr Seq Age Cksum Len Link 0.0.0.6 3.3.3.3 0x80000023 1673 0x2cf0 56Link *0.0.0.2 5.5.5.5 0x80000021 1173 0x3d73 56

IDSG@r5>

OSPF3に存在する 2つの新しい LSAに注目してください。 � IntraArPfx:intra-area-prefix-LSAは、エリア内プレフィックスをアドバタイズします。OSPF3 router-LSA およびnetwork-LSAはプレフィックスではなくトポロジー情報のみを運搬するため、この LSAが必要になります。

� Link:link-LSAはルーターのリンクローカルアドレスを提供し、そのリンクに付加されているすべてのプレフィックスをリストします。この LSAにより、OSPF3は、OSPFv2のようにサブネットごとに動作するのではなく、リンクごとに動作することができます。link-LSA は、network-LSAのオプションビットのアサートも行います。

タイプ 3のサマリー LSAは、OSPF3では inter-area-prefix-LSA(InterArPfx)に名前が変更されていることにも注意してください。

R5はエリア 1にあるため、エリア 1のルーター(R3~ R5)の LSAのみが表示されます。エリア 1だけでなくエリア0の適切なルートも受信されていることを確認するには、show route protocol ospf3コマンド(R1の場合と同様)または show ospf3 database detailコマンドを発行する必要があります。この場合は、具体的に、R5で R3から受信している inter-area-prefix-LSAを見てみます。

IDSG@r5> show ospf3 database detail inter-area-prefix advertising-router 3.3.3.3

OSPF3 link state database, Area 0.0.0.1 Type ID Adv Rtr Seq Age Cksum Len InterArPfx 0.0.0.1 3.3.3.3 0x80000024 276 0x2864 44 Prefix 2001:db8::1/128 Prefix-options 0x0, Metric 10InterArPfx 0.0.0.2 3.3.3.3 0x80000024 246 0x3852 44 Prefix 2001:db8::2/128 Prefix-options 0x0, Metric 10

Page 69: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 69

InterArPfx 0.0.0.3 3.3.3.3 0x80000024 111 0xc86 44 Prefix 2001:db8::3/128 Prefix-options 0x0, Metric 0InterArPfx 0.0.0.5 3.3.3.3 0x80000024 1446 0x6264 36 Prefix 2001:db8:0:1::/64 Prefix-options 0x0, Metric 20InterArPfx 0.0.0.6 3.3.3.3 0x80000024 1311 0x6a5a 36 Prefix 2001:db8:0:2::/64 Prefix-options 0x0, Metric 20InterArPfx 0.0.0.7 3.3.3.3 0x80000023 2211 0x3895 36 Prefix 2001:db8:0:3::/64 Prefix-options 0x0, Metric 10InterArPfx 0.0.0.8 3.3.3.3 0x80000023 2076 0x408b 36 Prefix 2001:db8:0:4::/64 Prefix-options 0x0, Metric 10InterArPfx 0.0.0.9 3.3.3.3 0x80000024 1176 0x823c 36 Prefix 2001:db8:0:5::/64 Prefix-options 0x0, Metric 20InterArPfx 0.0.0.10 3.3.3.3 0x80000023 2046 0x5077 36 Prefix 2001:db8:0:6::/64 Prefix-options 0x0, Metric 10InterArPfx 0.0.0.11 3.3.3.3 0x80000025 1476 0x106e 44 Prefix 2001:db8::4/128 Prefix-options 0x0, Metric 10

IDSG@r5>

これでおわかりでしょう。エリア0のルーターの4つすべてのループバックアドレスは、エリア 0のすべての /64と共に、R3の InterArPfx LSAでアドバタイズされています。ネットワーク全体でこれらのチェックを実施すれば、OSPF3が正しく設定され、動作していることを確信できます。

pingおよび tracerouteのテストを実施するにはこれまでと同様、pingおよび tracerouteのテストを実行して、プロトコルの検証をさらに確認することをお奨めします。本書のテストベッドを使用した例を、以下に 2つ挙げます。1. R1からR4に対して pingテストを実行します。

IDSG@r1> ping 2001:db8::4 count 3 rapid PING6(56=40+8+8 bytes) 2001:db8:0:2::1 --> 2001:db8::4!!!--- 2001:db8::4 ping6 statistics ---3 packets transmitted, 3 packets received, 0% packet lossround-trip min/avg/max/std-dev = 0.399/0.458/0.562/0.074 ms

IDSG@r1>

Page 70: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

70 Day One:IPv6の探求

2. R5からR2に対して tracerouteを実行します。IDSG@r5> traceroute 2001:db8::1 traceroute6 to 2001:db8::1 (2001:db8::1) from 2001:db8:0:8:2a0:c900:2dca:9cc6, 30 hops max, 12 byte packets 1 2001:db8:0:8:202:b300:2d14:a3e (2001:db8:0:8:202:b300:2d14:a3e) 596.314 ms 0.613 ms 0.508 ms 2 2001:db8::1 (2001:db8::1) 1.101 ms 0.989 ms 0.951 ms

IDSG@r5>

これで、テストベッドのネットワークで OSPF3を使用した IPv6トラフィックの送受信が行われていることが確認できます。

さらに詳しくは OSPF3 の運用モードのコマンドの詳細については、「Junos Software Routing Protocols and Policies Command Reference」(www.juniper.net/techpubs)を参照してください。

実践:OSPF3の検証

このセクションで学習したことをご自身のテストベッドに取り入れて、その OSPF3ネットワークを検証してみてください。IPv6ルートがすべてのルーターに適切に分配されていることと、IPv6トラフィックがネットワークで最適な経路をとっていることを検証します。任意のリンクまたはルーターの機能を停止し、再度テストを実施することにより、冗長性をテストします(適宜)。

IPv6での IS-ISの使用Junosおよびジュニパーネットワークスの製品に IPv6を実装する際の大きなメリットの 1つに、こうした製品の設計や運用において、IPv6を後から付け加えたのではないという点があります。例えば、IPv6転送はデフォルトで有効になっており、IPv6パケットはラインレート転送されます。本書全体に渡って、この点を説明する例が多数示されていますが、Junosソフトウェアに IS-ISが実装されていることは、まさにその良い例です。IS-IS(Intermediate System-to-Intermediate System)は、OSPFと同様に、SPF(Shortest Path First)アルゴリズムを使用してルートを決定するリンクステート IGPです。IS-ISが特にユニークなのは、元々の開発目的が、本書で説明している他のルーティングプロトコルのように IP(Internet Protocol)パケットをルーティングすることではなく、ISO(International Organization for Standards)CLNP(ConnectionLess Network Protocol)パケットをルーティングすることであるという点です。IS-ISでは ISOアドレスを使用するため、IPv6ですぐに利用できます。Junosに実装された IS-ISでは、IPv6と IPv4の設定はまったく同じです。IS-ISで IPv6ルートを運搬するには、IS-ISが有効なインタフェースに IPv6アドレスを追加するか、他の IPv6ルートを IS-ISエクスポートポリシーに含めるだけで、非常に簡単です。

Page 71: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

第3章:IPv6でのダイナミックルーティング 71

実際に、IPv6に関して IS-ISで明示的に設定を行う必要があるのは、無効にする場合だけです。また、IPv4ルーティングを無効にして、IS-ISを IPv6のみで使用することもできます。それぞれの例を以下に示します。

� no-ipv6-routing:IPv6ルーティングを無効にするには、このコマンドを発行します。

[edit]IDSG@r1# set protocols isis no-ipv6-routing

� no-ipv4-routing:IS-ISを IPv6ルーティング専用にするには、このコマンドを使用します。

[edit]IDSG@r1# set protocols isis no-ipv4-routing

Junosで IS-ISと共に IPv6と IPv4のいずれかを実装しても、両方を実装しても、何の違いもないため、この強力なプロトコルに関して、本書でこれ以上のページを割くことはしません。IS-ISの詳細情報が必要な場合は、「Junos® OS IS-IS Configuration Guide」、および「Junos Software Routing Protocols and Policies Command Reference」の第 7章を参照してください。すべてwww.juniper.net/techpubsで入手できます。

実践:IS-ISの設定と検証

IPv6テストベッドで IS-ISを設定して、IPv4と比べて追加作業や異なる作業が何も必要ないことを確認してください。

Page 72: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

72

次に参照すべき資料およびサイト

http://www.juniper.net/dayonePDF版の付録には、補足情報が含まれています。

http://www.juniper.net/junosJunosの導入と習得に必要な資料がすべて揃います。

http://forums.juniper.net/jnetジュニパーネットワークスがスポンサーである J-Net Communitiesフォーラムは、ジュニパーネットワークスの製品、テクノロジー、およびソリューションに関する情報、ベストプラクティス、質問を共有するための場です。この無料のフォーラムに参加するには、登録が必要です。

http://www.juniper.net/techpubs/software/junosJunosの技術マニュアル類には、IPv6を含めて、Junosのあらゆる側面を理解し、設定する上で必要なものがすべて含まれています。

http://www.ipv6forum.com「IPv6 Forumは、世界的規模の共同体であり、主要なインターネットサービスベンダー、各国の研究教育ネットワーク(NREN)、国際的な ISPで構成されています。IPv6 Forumは現在、IPv6の導入に関する技術的指導を提供することに重点を置いています」

http://www.getipv6.infoARIN(American Registry for Internet Number)がこの IPv6ウィキをホストしており、IPv6に関する幅広い情報を提供しています。

Page 73: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

付録

イーサネット以外のインタフェースの

設定例

T1インタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

SONETインタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

MLPPPインタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Page 74: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

74 Day One:IPv6の探求

Junosでは、IPv4のアドレス指定と同様に、IPv6のアドレスをすべてのタイプの物理インタフェースに同じ方法で割り当てることができます。このことを説明するために、イーサネット以外のインタフェースの簡単な例を以下に 3つ示します。

T1インタフェース

以下は、典型的な物理レイヤー設定を持つ T1インタフェースの例です。最初に、EUI-64ベースの IPv6アドレスを追加するために必要な setコマンドが示されています。次にインタフェース設定全体が確認できます。新しく追加された unit 0が記述されており、IPv6アドレスの設定で完了しています。

[edit interfaces t1-6/0/0:2:7]IDSG@r10# set unit 0 family inet6 address 2001:db8:0:1::/64 eui-64

{master}[edit]IDSG@r10# show interfaces t1-6/0/0:2:7 | display inheritance | except ## hold-time up 0 down 250;encapsulation ppp;unit 0 { family inet6 { address 2001:db8:0:1::/64 { eui-64; } }}

SONETインタフェース

この例は、SONET(POS)アプリケーションを経由する典型的なパケットを示しています。ここでも、inet6ファミリーの下に IPv6アドレスを追加するために使用する setコマンドが最初に確認できます。次にインタフェース設定全体が示されており、unit 0の下に IPv6アドレスが記述されています。

{master}[edit interfaces so-0/0/0]IDSG@r10# set unit 0 family inet6 address 2001:db8:0:1::ff13/127

{master}[edit]IDSG@r10# show interfaces so-0/0/0 mtu 9178;clocking internal;sonet-options { fcs 32; rfc-2615;}unit 0 {

Page 75: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

付録 75

family inet6 { address 2001:db8:0:1::ff13/127; }}

{master}[edit]IDSG@r10#

MLPPPインタフェース

この例は、MultiServices 100 PICを使用するMLPPPインタフェースのものです。ここでも、すべてのタイプのインタフェースで、同じsetコマンドが使用されていることがわかります。setコマンドに続いて、典型的なインタフェース設定全体が示されています。

{master}[edit interfaces lsq-7/0/0 unit 11]IDSG@r10# set family inet6 address 2001:db8:0:1::/64 eui-64

{master}[edit interfaces lsq-7/0/0 unit 11]IDSG@r10# show description “44/HCGS/103547/TWCS - C AND M ASSOCIATES # 305999 [MLPPP-M]”;encapsulation multilink-ppp;family inet6 { address 2001:db8:0:1::/64 { eui-64; }}

{master}[edit interfaces lsq-7/0/0 unit 11]IDSG@r10#

Page 76: Day One IPv6の探求 - Juniper Networks · IPv6 近隣探索を設定およびテストし、IPv6 にスタティックルー トを実装できます。 ping、traceroute、各種showコマンドなど、IPv6のトラブルシュー

76

www.juniper.net/booksで紹介されているネットワークエンジニア向けの書籍

MPLS-Enabled Applications, THIRD EDITION 著者:アイナ・ミネイ、ジュリアン・ルセック 632ページ、US$65、ISBN:978-0470665459

MPLSの権威あるガイドであり、この第 3版は、最新の資料を基に全体にアップデートされています。MPLSは現在、音声電話、リアルタイムビデオ、データトラフィックを含むあらゆるタイプのネットワークトラフィックを運搬するためのネットワーク技術と見なされています。『MPLS-Enabled Applications, THIRD EDITION』では、通信事業者が単一の物理インフラストラクチャを使用してより多くのサービスを提供できるようにするという点で、MPLSがネットワーク収束の鍵を握っていることが系統的に示されています。第 3版では、170枚以上のイラストと新しい章が含まれ、内容が拡充されました。技術の基礎から、すべての主要な VPNアプリケーションまでが説明されています。

『QOS-Enabled Networks』 著者:ミゲル・バレイロス、ピーター・ルントクビスト 350ページ、US$80、ISBN:978-0470686973

この本は、サービス品質(QoS)研究における新たなベンチマークと言えます。QoSの苦境に日々取り組んでいる、この分野の 2人のエキスパートによって書かれました。著者は、パケットネットワークにおけるQoSメカニズムの現代的理論を明快に説明しているだけでなく、それを実用化する方法も述べています。構成要素(ルーターおよびスイッチ)の設定に関連させて、ネットワークの動作向上(実際の効果)に焦点を当てており、斬新かつ洞察力に富んでいます。

『Network Mergers and Migrations』 著者:ゴンザロ・ゴメス・エレロ、ジャン・アントン・ベルナル・ ファン・デル・フェン 560ページ、US$65、ISBN:978-0470742372

『Network Mergers and Migrations』は、相互ネットワークのさまざまなケーススタディを詳細に説明した、ネットワーク移行作業の包括的なガイドです。著者はジュニパーネットワークスのシニアエンジニアであり、その経験と専門知識に基づいて、エンタープライズとサービスプロバイダの両方のシナリオが検証されています。MPLSレイヤー 3 VPNの移行アプローチから包括的なネットワークプロトコルの統合まで、ケーススタディごとに、プランニング、設計、実装方法だけでなく、代替策や、追加サービスおよび Junosのリソースの活用方法についても説明されており、移行の各段階を確実に成功に導くためのガイドとなる一冊です。