この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、インターネット プロトコル バージョン 6(IPv6)トラフィックを伝送するために Cisco 適応型セキュリティ アプライアンス(ASA)を設定する方法について、ASA バージョン 7.0(1) 以降に関して説明します。
このドキュメントに関する固有の要件はありません。
このドキュメントの情報は、Cisco ASA バージョン 7.0(1) 以降に基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
現在、IPv6 は、市場への普及の面ではまだ新しいものといえます。しかし、IPv6 の設定アシスタンスやトラブルシューティングに関しての要求には着実に増えてきました。このドキュメントの目的はこのようなニーズに応え、さらに以下を提供することです。
注:IPv6はIPv4に置き換わるグローバルな取り組みの初期段階であるため、このドキュメントは精度と関連性を維持するために定期的に更新される予定です。
IPv6 の機能に関する重要な情報を次に示します。
IPv6 プロトコルは、1990 年代の中期から後期にかけて開発されました。この時期に公共の IPv4 アドレス空間の枯渇が加速したことが、開発が進んだ主な要因です。ネットワーク アドレス変換(NAT)の登場は IPv4 にとって劇的に役に立ち、この問題への対処を先延ばしにすることができましたが、最終的にはこれに代わるプロトコルが必要となることは否定できなくなりました。IPv6 プロトコルの詳細の仕様は 1998 年 12 月の RFC 2460 で正式に決まりました。このプロトコルについての詳細は、Internet Engineering Task Force(IETF)の Web サイトにある公式の RFC 2460 のドキュメントを参照してください。
このセクションでは、IPv6 プロトコルに含まれる改善と、従来の IPv4 プロトコルを対比させて説明します。
IPv6 プロトコルでは、IP アドレスのサイズが 32 ビットから 128 ビットに拡大しました。これにより、サポートされるアドレシング階層が増大し、より多くのノードにアドレスの割り当てが可能になり、アドレスの自動設定が簡略化されました。マルチキャスト ルーティングの拡張性はマルチキャスト アドレスに scope フィールドが追加されたことで改善されています。 また、エニーキャスト アドレスという新しいタイプのアドレスが定義されました。これは、グループ内の任意のノードにパケットを送信するために使用されます。
IPv4 ヘッダーの一部が削除され、または省略可能になりました。これにより、一般的なケースのパケット処理のコストが低減し、IPv6 ヘッダーの帯域幅コストが制限されます。
IP ヘッダー オプションのエンコード方法が変わったことにより、フォワーディングが効率化され、オプションの長さに対する制限が緩和されるとともに、今後新しいオプションを導入する際の柔軟性が向上しました。
この新機能で、送信者が特定のトラフィック フローに属するパケットにラベリングを行うことにより、そのトラフィック フローに対して、デフォルト以外の Quality of Service(QoS)やリアルタイム サービスなどの特別な処理を要求できるようになりました。
IPv6 には、認証、データの整合性、機密(オプション)をサポートするための機能拡張が仕様に盛り込まれています。
このセクションでは、Cisco ASA を IPv6 で使用するための設定方法について説明します。
注:このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。
このドキュメントの各例における IPv6 とトポロジを以下に示します。

IPv6 トラフィックを ASA を介して伝送するには、まず、少なくとも 2 つのインターフェイスで IPv6 を有効にする必要があります。この例では、内部インターフェイス Gi0/0 から外部インターフェイス Gi0/1 にトラフィックを通すために IPv6 を有効にする方法を説明します。
ASAv(config)# interface GigabitEthernet0/0
ASAv(config-if)# ipv6 enable
ASAv(config)# interface GigabitEthernet0/1
ASAv(config-if)# ipv6 enable
今度は、両方のインターフェイスに IPv6 アドレスを設定できます。
注:この例では、Unique Local Addresses(ULA)スペースfc00::/7のアドレスが使用されているため、すべてのアドレスはFDで始まります(たとえば、fdxx:xxxx:xxxx....)。 また、IPv6 アドレスの表記では、ダブルコロン(::)を使って一連のゼロを表記できるため、FD01::1/64 は FD01:0000:0000:0000:0000:0000:0000:00001 と同じです。
ASAv(config)# interface GigabitEthernet0/0
ASAv(config-if)# ipv6 address fd03::1/64
ASAv(config-if)# nameif inside
ASAv(config-if)# security-level 100
ASAv(config)# interface GigabitEthernet0/1
ASAv(config-if)# ipv6 address fd02::2/64
ASAv(config-if)# nameif outside
ASAv(config-if)# security-level 0
これで、アドレスfd02::1で外部VLANのアップストリームルータへの基本的なレイヤ2(L2)/レイヤ3(L3)接続を確立できます。
ASAv(config-if)# ping fd02::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to fd02::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms
IPv4 と同様に、直接接続されたサブネット上のホストに IPv6 接続があったとしても、到達経路を知るために外部ネットワークへのルートが必要です。最初の例では、ネクスト ホップ アドレス fd02::1 で外部インターフェイスを介してすべての IPv6 ネットワークに到達するための静的なデフォルトルートの設定方法を示しています。
次の情報を使用して、IPv6 のスタティック ルーティングを設定します。
ASAv(config)# ipv6 route outside 0::0/0 fd02::1
ASAv(config)# show ipv6 route
IPv6 Routing Table - 7 entries
Codes: C - Connected, L - Local, S - Static
O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, B - BGP
L fd02::2/128 [0/0]
via ::, outside
C fd02::/64 [0/0]
via ::, outside
L fd03::1/128 [0/0]
via ::, inside
C fd03::/64 [0/0]
via ::, inside
L fe80::/10 [0/0]
via ::, inside
via ::, outside
L ff00::/8 [0/0]
via ::, inside
via ::, outside
S ::/0 [1/0]
via fd02::1, outside ASAv(config)#
表示のとおり、これで外部サブネットでのホストへの接続ができました。
ASAv(config)# ping fd99::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to fd99::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
ASAv(config)#
注:IPv6のルーティングを処理するためにダイナミックルーティングプロトコルが必要な場合は、ダイナミックルーティングプロトコルも設定できます。このことについては、次のセクションで説明します。
まず、アップストリームのCisco 881シリーズサービス統合型ルータ(ISR)で、Open Shortest Path First Version 3(OSPFv3)の設定を確認する必要があります。
C881#show run | sec ipv6
ipv6 unicast-routing
!--- This enables IPv6 routing in the Cisco IOS®.
.....
ipv6 ospf 1 area 0
address-family ipv6 unicast
passive-interface default
no passive-interface Vlan302
!--- This is the interface to send OSPF Hellos to the ASA.
default-information originate always
!--- Always distribute the default route.
redistribute static
ipv6 route ::/0 FD99::2
!--- Creates a static default route for IPv6 to the internet.
該当するインターフェイス設定は次のようになります。
C881#show run int Vlan302
interface Vlan302
....
ipv6 address FD02::1/64
ipv6 ospf 1 area 0
C881#
ASA パケット キャプチャを使い、OSPF の Hello パケットが外部インターフェイスの ISR から見えることを確認できます。
ASAv(config)# show run access-list test_ipv6
access-list test_ipv6 extended permit ip any6 any6
ASAv(config)# show cap
capture capout type raw-data access-list test_ipv6 interface outside
[Capturing - 37976 bytes]
ASAv(config)# show cap capout
367 packets captured
1: 11:12:04.949474 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
2: 11:12:06.949444 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
3: 11:12:07.854768 fe80::c671:feff:fe93:b516 > ff02::5: ip-proto-89 40
[hlim 1]
4: 11:12:07.946545 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
5: 11:12:08.949459 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
6: 11:12:09.542772 fe80::217:fff:fe17:af80 > ff02::5: ip-proto-89 40
[hlim 1]
....
13: 11:12:16.983011 fe80::c671:feff:fe93:b516 > ff02::5: ip-proto-89 40
[hlim 1]
14: 11:12:18.947170 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
15: 11:12:19.394831 fe80::217:fff:fe17:af80 > ff02::5: ip-proto-89 40
[hlim 1]
16: 11:12:19.949444 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
21: 11:12:26.107477 fe80::c671:feff:fe93:b516 > ff02::5: ip-proto-89 40
[hlim 1]
ASAv(config)#
前述のパケット キャプチャで、OSPF(ip-proto-89)パケットが ISR の正しいインターフェイスに該当する IPv6 リンクローカル アドレスから到着することを確認できます。
C881#show ipv6 interface brief
......
Vlan302 [up/up]
FE80::C671:FEFF:FE93:B516
FD02::1
C881#
今度は、ISR との隣接関係を確立するため ASA で OSPFv3 プロセスを作成できます。
ASAv(config)# ipv6 router ospf 1
ASAv(config-rtr)# passive-interface default
ASAv(config-rtr)# no passive-interface outside
ASAv(config-rtr)# log-adjacency-changes
ASAv(config-rtr)# redistribute connected
ASAv(config-rtr)# exit
ASA の外部インターフェイスに OSPF 設定を適用します。
ASAv(config)# interface GigabitEthernet0/1
ASAv(config-if)# ipv6 ospf 1 area 0
ASAv(config-if)# end
これにより、ASAがIPv6サブネットでブロードキャストOSPF Helloパケットを送信する可能性があります。show ipv6 ospf neighbor コマンドを入力し、ルータとの隣接関係を確認します。
ASAv# show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface
14.38.104.1 1 FULL/BDR 0:00:33 14 outside
ISR は、デフォルトで最も高く設定された IPv4 アドレスを ID に使用するため、ISR でネイバー ID を確認できます。
C881#show ipv6 ospf 1
Routing Process "ospfv3 1" with ID 14.38.104.1
Supports NSSA (compatible with RFC 3101)
Event-log enabled, Maximum number of events: 1000, Mode: cyclic
It is an autonomous system boundary router
Redistributing External Routes from,
static
Originate Default Route with always
!--- Notice the other OSPF settings that were configured.
Router is not originating router-LSAs with maximum metric
....
C881#
これで、ASAはISRからデフォルトIPv6ルートを学習したことになります。これを確認するには、show ipv6 route コマンドを入力します。
ASAv# show ipv6 route
IPv6 Routing Table - 8 entries
Codes: C - Connected, L - Local, S - Static
O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, B - BGP
O 2001:aaaa:aaaa:aaaa::/64 [110/10]
via ::, outside
L fd02::2/128 [0/0]
via ::, outside
C fd02::/64 [0/0]
via ::, outside
L fd03::1/128 [0/0]
via ::, inside
C fd03::/64 [0/0]
via ::, inside
L fe80::/10 [0/0]
via ::, inside
via ::, outside
L ff00::/8 [0/0]
via ::, inside
via ::, outside
OE2 ::/0 [110/1], tag 1
!--- Here is the learned default route.
via fe80::c671:feff:fe93:b516, outside
ASAv#
ASA での IPv6 用のインターフェイス設定とルーティング機能の基本設定はこれで完了です。
現在、この設定に使用できる確認手順はありません。
IPv6接続のトラブルシューティング手順では、IPv4接続のトラブルシューティングに使用されるのとほぼ同じ方法を使用しますが、いくつかの違いがあります。IPv4、IPv6 のトラブルシューティングでの最も重要な違いは、IPv6 では Address Resolution Protocol(ARP)が存在しないことです。IPv6 では、ローカル LAN セグメントでの IP アドレス解決に ARP を使用する代わりに、ネイバー探索(ND)と呼ばれるプロトコルを使用します。
また、ND が Media Access Control(MAC)アドレス解決に Internet Control Message Protocol バージョン 6(ICMPv6)を活用することを理解することも重要です。IPv6 NDの詳細については、『CLIブック1:Cisco ASAシリーズCLIコンフィギュレーションガイド9.4』の「IPv6ネイバー探索」セクションまたは『RFC 4861』の「ASA IPv6コンフィギュレーションガイド」を参照してください。
現在、ほとんどの Ipv6 関連のトラブルシューティングは ND、ルーティング、またはサブネット設定の問題のいずれかに関連しています。これらの項目もまた IPv4 と IPv6 との重要な違いであるということが、この原因と見られます。 IPv6 での NAT の使用はまったく推奨されず、プライベート アドレスは IPv4 での場合のように活用できなくなっており(RFC 1918 以降)、ND は ARP とは異なった仕組みで、内部ネットワークのアドレッシングも大きく異なっています。 これらの違いを理解し、L2/L3の問題を解決した後は、レイヤ4(L4)以上でのトラブルシューティングプロセスは、TCP/UDPと上位層のプロトコルが(使用されているIPバージョンに関係なく)本質的に同じであるため、IPv4で使用されるプロセスと本質的に同じです。
L2 の IPv6 接続をトラブルシュートするために使用される最も基本的なコマンドは、show ipv6 neighbor [nameif] コマンドです。これは、IPv4 の show arp コマンドに相当するものです。
次に出力例を示します。
ASAv(config)# show ipv6 neighbor outside
IPv6 Address Age Link-layer Addr State Interface
fd02::1 0 c471.fe93.b516 REACH outside
fe80::c671:feff:fe93:b516 32 c471.fe93.b516 DELAY outside
fe80::e25f:b9ff:fe3f:1bbf 101 e05f.b93f.1bbf STALE outside
fe80::b2aa:77ff:fe7c:8412 101 b0aa.777c.8412 STALE outside
fe80::213:c4ff:fe80:5f53 101 0013.c480.5f53 STALE outside
fe80::a64c:11ff:fe2a:60f4 101 a44c.112a.60f4 STALE outside
fe80::217:fff:fe17:af80 99 0017.0f17.af80 STALE outside
ASAv(config)#
この出力では、MAC アドレス c471.fe93.b516 を持つデバイスに属する IPv6 アドレス fd02::1 が正常に解決されたことが確認できます。
注:前の出力で、同じルータインターフェイスのMACアドレスが2回表示されていることがあります。これは、ルータにもこのインターフェイスに対して自己割り当てのリンクローカルアドレスがあるためです。リンクローカル アドレスはデバイス固有のアドレスで、直接接続されたネットワークでの通信にのみ使用できます。ルータは、リンクローカル アドレスを介してパケットを転送しません。これらは、直接接続されたネットワークのセグメントでの通信のみを行います。多くの IPv6 ルーティング プロトコル(OSPFv3 など)は、L2 セグメントのルーティングプロトコルを共有するためにリンクローカル アドレスを使用します。
ND キャッシュをクリアするには、clear ipv6 neighbors コマンドを入力します。ND が特定のホストについて失敗する場合、debug ipv6 nd コマンドを入力し、またパケット キャプチャを実行して syslog を確認し、問題が L2 で発生していることを確かめることができます。IPv6 の ND は MAC アドレスの IPv6 アドレスへの解決に ICMPv6 メッセージを使用することに注意してください。
IPv4 向けの ARP のテーブルと、IPv6 の ND の比較表を以下に示します。この表について考えます。
| IPv4 ARP | IPv6 ND |
|---|---|
| ARP 要求(10.10.10.1 は誰なのか) | ネイバー要請 |
| ARP 応答(10.10.10.1 は dead.dead.dead に存在) | ネイバー アドバタイズメント |
次のシナリオでは、ND は MAC アドレス fd02::1 の解決に失敗します。このホストは外部インターフェイスにあるホストです。
ここに示したのは、debug ipv6 nd コマンドの出力結果です。
ICMPv6-ND: Sending NS for fd02::1 on outside
!--- "Who has fd02::1"
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: INCMP deleted: fd02::1
ICMPv6-ND: INCMP -> DELETE: fd02::1
ICMPv6-ND: DELETE -> INCMP: fd02::1
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: Sending NA for fd02::2 on outside
!--- "fd02::2 is at dead.dead.dead"
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: INCMP deleted: fd02::1
ICMPv6-ND: INCMP -> DELETE: fd02::1
ICMPv6-ND: DELETE -> INCMP: fd02::1
!--- Here is where the ND times out.
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: Sending NS for fd02::1 on outside
このデバッグ出力では、fd02::2 からのネイバー アドバタイズメントがまったく受信されていないように見えます。パケット キャプチャを確認して、実際はどうであるかを調べることができます。
注:ASAリリース9.4(1)の時点では、IPv6パケットキャプチャにはアクセスリストが引き続き必要です。Cisco Bug ID CSCtn09836 でこのことに対する機能拡張の要求を追跡できるよう指定されています。
アクセス コントロール リスト(ACL)とパケット キャプチャを設定します。
ASAv(config)# access-list test_ipv6 extended permit ip any6 any6
ASAv(config)# cap capout interface outside access-list test_ipv6
ASA から、fd02::1 に ping を行います。
ASAv(config)# show cap capout
....
23: 10:55:10.275284 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
24: 10:55:10.277588 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
26: 10:55:11.287735 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
27: 10:55:11.289642 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
28: 10:55:12.293365 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
29: 10:55:12.298538 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
32: 10:55:14.283341 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
33: 10:55:14.285690 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
35: 10:55:15.287872 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
36: 10:55:15.289825 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
パケット キャプチャで示されたように、fd02::1 からのネイバー アドバタイズメントが到着しています。ただし、デバッグ出力が示すように、何らかの理由で、アドバタイズメントは処理されていません。 さらなる確認のため、syslog を調べます。
以下は、ND の Syslog の例です。
May 13 2015 10:55:10: %ASA-7-609001: Built local-host identity:fd02::2
May 13 2015 10:55:10: %ASA-6-302020: Built outbound ICMP connection for faddr
ff02::1:ff00:1/0 gaddr fd02::2/0 laddr fd02::2/0(any)
May 13 2015 10:55:10: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:10: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
May 13 2015 10:55:11: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:11: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
May 13 2015 10:55:12: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:12: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
May 13 2015 10:55:14: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:14: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
May 13 2015 10:55:15: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:15: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
これらの syslog の中で、fd02::1 にある ISR からの ND ネイバー アドバタイズメント パケットは修正 Extended Unique Identifier(修正 EUI -64)のフォーマット チェックが失敗したことにより破棄されていることが確認できます。
ヒント:この問題についての詳細は、「修正EUI-64アドレスエンコーディング」を参照してください。このトラブルシューティングのロジックは、ACL が特定のインターフェイスで ICMPv6 を許可しない場合や Unicast Reverse Path Forwarding(uRPF)チェックが失敗する場合など、さまざまな種類の破棄の理由にも適用できます。上記の 2 つは、IPv6 での L2 接続の問題の原因となることがあります。
IPv6 を使用した場合のルーティング プロトコルのトラブルシューティング手順は、IPv4 を使用する場合と基本的に同じです。debug および show コマンドの使用とパケット キャプチャは、ルーティング プロトコルが期待どおりに動作しない理由を確認するのに役立ちます。
このセクションでは、IPv6 で役立つ debug コマンドを説明します。
グローバル IPv6 ルーティングのデバッグ
debug ipv6 routing のデバッグにより、IPv6 ルーティング テーブルの変更のすべてをトラブルシューティングできます。
ASAv# clear ipv6 ospf 1 proc
Reset OSPF process? [no]: yes
ASAv# IPv6RT0: ospfv3 1, Route update to STANDBY with epoch: 2 for
2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ospfv3 1, Delete 2001:aaaa:aaaa:aaaa::/64 from table
IPv6RT0: ospfv3 1, Delete backup for fd02::/64
IPv6RT0: ospfv3 1, Route update to STANDBY with epoch: 2 for ::/0
IPv6RT0: ospfv3 1, Delete ::/0 from table
IPv6RT0: ospfv3 1, ipv6_route_add_core for 2001:aaaa:aaaa:aaaa::/64 [110/10],
next-hop :: nh_source :: via interface outside route-type 2
IPv6RT0: ospfv3 1, Add 2001:aaaa:aaaa:aaaa::/64 to table
IPv6RT0: ospfv3 1, Added next-hop :: over outside for 2001:aaaa:aaaa:aaaa::/64,
[110/10]
IPv6RT0: ospfv3 1, ipv6_route_add_core Route update to STANDBY with epoch: 2 for
2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ipv6_route_add_core: input add 2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ipv6_route_add_core: output add 2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ospfv3 1, ipv6_route_add_core for fd02::/64 [110/10], next-hop ::
nh_source :: via interface outside route-type 2
IPv6RT0: ospfv3 1, ipv6_route_add_core for ::/0 [110/1], next-hop
fe80::c671:feff:fe93:b516
nh_source fe80::c671:feff:fe93:b516 via interface outside route-type 16
IPv6RT0: ospfv3 1, Add ::/0 to table
IPv6RT0: ospfv3 1, Added next-hop fe80::c671:feff:fe93:b516 over outside for ::/0,
[110/1]
IPv6RT0: ospfv3 1, ipv6_route_add_core Route update to STANDBY with epoch: 2 for ::/0
IPv6RT0: ipv6_route_add_core: input add ::/0
IPv6RT0: ipv6_route_add_core: output add ::/0
IPv6RT0: ospfv3 1, ipv6_route_add_core for 2001:aaaa:aaaa:aaaa::/64 [110/10],
next-hop :: nh_source :: via interface outside route-type 2
IPv6RT0: ospfv3 1, Route add 2001:aaaa:aaaa:aaaa::/64 [owner]
IPv6RT0: ospfv3 1, ipv6_route_add_core Route update to STANDBY with epoch: 2 for
2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ipv6_route_add_core: input add 2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ipv6_route_add_core: output add 2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ospfv3 1, ipv6_route_add_core for fd02::/64 [110/10], next-hop ::
nh_source :: via interface outside route-type 2
IPv6RT0: ospfv3 1, Reuse backup for fd02::/64, distance 110
IPv6RT0: ospfv3 1, ipv6_route_add_core for ::/0 [110/1], next-hop
fe80::c671:feff:fe93:b516 nh_source fe80::c671:feff:fe93:b516 via interface outside
route-type 16
IPv6RT0: ospfv3 1, Route add ::/0 [owner]
IPv6RT0: ospfv3 1, ipv6_route_add_core Route update to STANDBY with epoch: 2 for ::/0
IPv6RT0: ipv6_route_add_core: input add ::/0
IPv6RT0: ipv6_route_add_core: output add ::/0
OSPFv3 のデバッグ
debug ipv6 ospf コマンドにより、OSPFv3 の問題をトラブルシューティングできます。
ASAv# debug ipv6 ospf ?
adj OSPF adjacency events
database-timer OSPF database timer
events OSPF events
flood OSPF flooding
graceful-restart OSPF Graceful Restart processing
hello OSPF hello events
ipsec OSPF ipsec events
lsa-generation OSPF lsa generation
lsdb OSPF database modifications
packet OSPF packets
retransmission OSPF retransmission events
spf OSPF spf
OSPFv3 プロセスが再起動した後で有効にしたすべてのデバッグの出力例を示します。
ASAv# clear ipv6 ospf 1
OSPFv3: rcv. v:3 t:1 l:44 rid:192.168.128.115
aid:0.0.0.0 chk:a9ac inst:0 from outside
OSPFv3: Rcv hello from 192.168.128.115 area 0 from outside fe80::217:fff:fe17:af80
interface ID 142
OSPFv3: End of hello processingpr
OSPFv3: rcv. v:3 t:1 l:44 rid:14.38.104.1
aid:0.0.0.0 chk:bbf3 inst:0 from outside
OSPFv3: Rcv hello from 14.38.104.1 area 0 from outside fe80::c671:feff:fe93:b516
interface ID 14
OSPFv3: End of hello processingo
ASAv# clear ipv6 ospf 1 process
Reset OSPF process? [no]: yes
ASAv#
OSPFv3: Flushing External Links
Insert LSA 0 adv_rtr 172.16.118.1, type 0x4005 in maxage
OSPFv3: Add Type 0x4005 LSA ID 0.0.0.0 Adv rtr 172.16.118.1 Seq 80000029 to outside
14.38.104.1 retransmission list
....
!--- The neighbor goes down:
OSPFv3: Neighbor change Event on interface outside
OSPFv3: DR/BDR election on outside
OSPFv3: Elect BDR 14.38.104.1
OSPFv3: Elect DR 192.168.128.115
OSPFv3: Schedule Router LSA area: 0, flag: Change
OSPFv3: Schedule Router LSA area: 0, flag: Change
OSPFv3: Schedule Prefix DR LSA intf outside
OSPFv3: Schedule Prefix Stub LSA area 0
OSPFv3: 14.38.104.1 address fe80::c671:feff:fe93:b516 on outside is dead, state DOWN
....
!--- The neighbor resumes the exchange:
OSPFv3: Rcv DBD from 14.38.104.1 on outside seq 0xd09 opt 0x0013 flag 0x7 len 28
mtu 1500 state EXSTART
OSPFv3: First DBD and we are not SLAVE
OSPFv3: rcv. v:3 t:2 l:168 rid:14.38.104.1
aid:0.0.0.0 chk:5aa3 inst:0 from outside
OSPFv3: Rcv DBD from 14.38.104.1 on outside seq 0x914 opt 0x0013 flag 0x2 len 168
mtu 1500 state EXSTART
OSPFv3: NBR Negotiation Done. We are the MASTER
OSPFv3: outside Nbr 14.38.104.1: Summary list built, size 0
OSPFv3: Send DBD to 14.38.104.1 on outside seq 0x915 opt 0x0013 flag 0x1 len 28
OSPFv3: rcv. v:3 t:2 l:28 rid:192.168.128.115
aid:0.0.0.0 chk:295c inst:0 from outside
OSPFv3: Rcv DBD from 192.168.128.115 on outside seq 0xfeb opt 0x0013 flag 0x7 len 28
mtu 1500 state EXSTART
OSPFv3: NBR Negotiation Done. We are the SLAVE
OSPFv3: outside Nbr 192.168.128.115: Summary list built, size 0
OSPFv3: Send DBD to 192.168.128.115 on outside seq 0xfeb opt 0x0013 flag 0x0 len 28
OSPFv3: rcv. v:3 t:2 l:28 rid:14.38.104.1
aid:0.0.0.0 chk:8d74 inst:0 from outside
OSPFv3: Rcv DBD from 14.38.104.1 on outside seq 0x915 opt 0x0013 flag 0x0 len 28
mtu 1500 state EXCHANGE
....
!--- The routing is re-added to the OSPFv3 neighbor list:
OSPFv3: Add Router 14.38.104.1 via fe80::c671:feff:fe93:b516, metric: 10
Router LSA 14.38.104.1/0, 1 links
Link 0, int 14, nbr 192.168.128.115, nbr int 142, type 2, cost 1
Ignore newdist 11 olddist 10
Enhanced Interior Gateway Routing Protocol(EIGRP)
ASA の EIGRP は IPv6 の使用をサポートしていません。詳細については、『CLIブック1:Cisco ASAシリーズCLIコンフィギュレーションガイド9.4』の「EIGRPのガイドライン」を参照してください。
ボーダー ゲートウェイ プロトコル(BGP)
この debug コマンドは、IPv6 を使用する場合の BGP のトラブルシューティングに使用できます。
ASAv# debug ip bgp ipv6 unicast ?
X:X:X:X::X IPv6 BGP neighbor address
keepalives BGP keepalives
updates BGP updates
<cr>
次の show コマンドを使用して、IPv6 に関連する問題のトラブルシューティングを行うことができます。
IPv4 と同様に、ASA の IPv6 内蔵パケット トレーサの機能を使用できます。以下にパケットトレーサ機能を使用し、fd03::2 の内部ホストのシミュレーションを行う例を示します。このホストはインターネット上で 5555::1 の Web サーバへの接続を試行します。インターネットへのデフォルトルートは 881 インターフェイスから OSPF を介して学習しました。
ASAv# packet-tracer input inside tcp fd03::2 10000 5555::1 80 detailed
Phase: 1
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
Forward Flow based lookup yields rule:
in id=0x7fffd59ca0f0, priority=1, domain=permit, deny=false
hits=2734, user_data=0x0, cs_id=0x0, l3_type=0xdd86
src mac=0000.0000.0000, mask=0000.0000.0000
dst mac=0000.0000.0000, mask=0100.0000.0000
input_ifc=inside, output_ifc=any
Phase: 2
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop fe80::c671:feff:fe93:b516 using egress ifc outside
Phase: 3
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Forward Flow based lookup yields rule:
in id=0x7fffd589cc30, priority=1, domain=nat-per-session, deny=true
hits=1166, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0,
protocol=6
src ip/id=::/0, port=0, tag=any
dst ip/id=::/0, port=0, tag=any
input_ifc=any, output_ifc=any
<<truncated output>>
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
ASAv#
出力 MAC アドレスは 881 インターフェイスのリンクローカル アドレスであることに注意してください。前述のように、大部分のダイナミック ルーティング プロトコルで、ルータは隣接関係の確立にリンクローカルの IPv6 アドレスを使用しています。
IPv6 の問題のトラブルシューティングに使用できるデバッグは次のとおりです。
ASAv# debug ipv6 ?
dhcp IPv6 generic dhcp protocol debugging
dhcprelay IPv6 dhcp relay debugging
icmp ICMPv6 debugging
interface IPv6 interface debugging
mld IPv6 Multicast Listener Discovery debugging
nd IPv6 Neighbor Discovery debugging
ospf OSPF information
packet IPv6 packet debugging
routing IPv6 routing table debugging
ここでは、最も多く見られる IPv6 関連の問題の解決方法について説明します。
IPv6 に関連して Cisco Technical Assistance Center(TAC)に寄せられる問題の多くは、IPv6 がどのように関する機能するかについての知識の全般的な欠乏や、または IPv4 固有のプロセスを IPv6 にあてはめて実装する試みからきています。
たとえば、TAC ではインターネット サービス プロバイダー(ISP)によって管理者が IPv6 アドレスの /56 ブロックに割り当てられているケースを見たことがあります。 そうすると、管理者はアドレスと完全な /56 サブネットを ASA の外部インターフェイスに割り当て、いくつかの内部範囲を内部サーバで使用するために選択します。ただし、IPv6では、すべての内部ホストもルーティング可能なIPv6アドレスを使用する必要があり、IPv6アドレスブロックは必要に応じて小さなサブネットに分割する必要があります。このシナリオでは、割り当て済みの /56 ブロックの一部として、多くの /64 サブネットを作成できます。
ヒント:詳細については、RFC 4291を参照してください。
ASA は、修正 EUI -64 エンコーディングされた IPv6 アドレスを必須とするよう設定できます。RFC 4291 によれば、EUI では、ホストが自分自身に一意の 64 ビットの IPv6 インターフェイス ID(EUI-64)を割り当てることができます。 この機能は、IPv6 アドレス付与で DHCP を不要とするもので、IPv4 に対するメリットでもあります。
ASAがこの拡張機能を必須とするようipv6 enforce-eui64 nameifコマンドにより設定した場合、ローカルサブネットの他のホストからの多くのネイバー検索要請とアドバタイズメントをドロップすることになります。
ヒント:詳細については、シスコサポートコミュニティのドキュメント『IPv6 EUI-64ビットアドレスについて』を参照してください。
デフォルトでは、Microsoft Windows バージョン 7 および 8、マッキントッシュ OS-X や Linux システムなどの多くのクライアントのオペレーティング システム(OS)は、プライバシー向上のために IPv6 ステートレス アドレス自動設定(SLAAC)により自分自身に付与した一時的な IPv6 アドレスを使用します。
Cisco TAC では、このことによる動作環境上の予期されない問題がいくつか発生していました。これらの問題は、ホストが静的に割り当てられたアドレスではなく、一時アドレスからトラフィックを生成することが原因です。その結果、ACL とホストに基づいたルートがトラフィックの破棄や不適切なルーティングにつながり、これはホストの通信の失敗の原因となります。
この状況を解決するために使用される 2 つの方法があります。この動作は、クライアントシステムで個別に無効にすることも、ASAおよびCisco IOSルータで無効にすることもできます。ASA、ルータ側では、この挙動を引き起こすルータ アドバタイズメント(RA)メッセージのフラグを変更する必要があります。
個々のクライアントシステムでこの動作を無効にするには、次の項を参照してください。
Microsoft Windows
Microsoft Windows システムでこの挙動を無効にするには、次の手順を実行します:
netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set privacy state=disabled
sudo sysctl -w net.inet6.ip6.use_tempaddr=0
sudo sh -c 'echo net.inet6.ip6.use_tempaddr=0 >> /etc/sysctl.conf'
sysctl -w net.ipv6.conf.all.use_tempaddr=0
ASAv(config)# interface gigabitEthernet 1/1
ASAv(config-if)# ipv6 nd prefix 2001::db8/32 300 300 no-autoconfig
ヒント:詳細については、RFC 4941を参照してください。
このセクションでは、IPv6 の使用についてよくある質問の説明をします。
はい。インターフェイスで IPv6 を有効にし、インターフェイスに IPv4 および IPv6 アドレスの両方を割り当てるだけで、両方の種類のトラフィックを同時に扱えます。
ASA バージョン 9.0(1) 以前では、これが可能です。 ASA バージョン 9.0(1) の時点で、ASA のすべての ACL は統合されました。つまり、単一の ACL で IPv4 と IPv6 の両方のエントリをサポートします。
ASA バージョン 9.0(1) 以降では、ACL は単に結合され、単一の統合 ACL が access-group コマンドでインターフェイスに適用されています。
はい。ASA では、IPv6 でのポリシングと優先度キューイングを IPv4 と同様にサポートしています。
ASA バージョン 9.0(1) の時点で、ASA のすべての ACL は統合されました。つまり、単一の ACL で IPv4 と IPv6 の両方のエントリをサポートします。その結果、ACL に一致するクラス マップに設定されたすべての QoS コマンドは IPv4 と IPv6 の両方のトラフィックに対して実行されます。
ASA では IPv6 にも NAT を設定できますが、IPv6 での NAT の使用はまったく推奨されませんし、アドレスが無数に用意でき、グローバルなルーティングが可能な以上、NAT は不要です。
IPv6シナリオでNATが必要な場合、設定方法の詳細については、『CLIブック2:Cisco ASAシリーズファイアウォールCLIコンフィギュレーションガイド9.4』の「IPv6 NATガイドライン」セクションを参照してください。
注:IPv6でNATを実装するときに考慮できるいくつかのガイドラインと制限があります。
これは、ソフトウェアのバージョンによって異なります。
CSCup89922フィックスが適用されていないすべてのバージョンでは、ASAのいずれかのインターフェイスにIPv6アドレスが設定されていて、稼働している場合、ASAはDNSサーバに照会するときにIPv6アドレスを要求します。IPv6アドレスが返されない場合、またはASAのルーティングテーブルに従ってそのアドレスに到達できない場合は、IPv4アドレスが要求されます(到達可能性チェックはCSCuu02761で追加されました)。
新しいバージョンでは、次のようにFQDNごとにクエリータイプを明示的に設定できます。
object network <fqdn> fqdn v4 <fqdn>
<fqdn>は完全修飾ドメイン名です。これは、fqdnそのものだけでなく、オブジェクトの名前でも正確に一致する必要があることに注意してください。fqdnアドレスタイプに「v6」が指定されている場合、またはそのようなオブジェクトが存在しない場合は、元の動作が保持されます。「v4」が指定されている場合、ASAはDNSサーバにIPv4アドレスを要求し、DNSキャッシュにIPv6アドレスがすでに存在する場合でもIPv4アドレスを使用します(たとえば、そのようなネットワークオブジェクトが存在せず、ASAがDNS要求を行い、DNSサーバから返されるキャッシュされたIPv6アドレスを使用した場合)。
これは、ASAでボットネットトラフィックフィルタリングまたはSmart CallHomeを使用するユーザにとって重要な機能拡張です。「updates.ironport.com」、「update-manifests.ironport.com」、「tools.cisco.com」の各サイトには、顧客のASAからIPv6で到達できない可能性があるからです。設定例:
object network update-manifests.ironport.com
fqdn v4 update-manifests.ironport.com
object network updates.ironport.com
fqdn v4 updates.ironport.com
IPv6 では、ND は L2 アドレス解決のためにリンクローカル アドレスを使用します。このため、show failover コマンド出力にある、モニタ対象となっているインターフェイスの IPv6 アドレスには、このインターフェイスに設定されているグローバル IPv6 アドレスではなく、リンクローカル アドレスが表示されます。これは正常な動作です。
IPv6 の使用に関連した既知の注意事項のいくつかを次に示します。
| 改定 | 発行日 | コメント |
|---|---|---|
1.0 |
29-Jun-2015
|
初版 |
フィードバック