このドキュメントでは、インターネット プロトコル バージョン 6(IPv6)トラフィックを伝送するために Cisco 適応型セキュリティ アプライアンス(ASA)を設定する方法について、ASA バージョン 7.0(1) 以降に関して説明します。
このドキュメントに特有の要件はありません。
このドキュメントの情報は、Cisco ASA バージョン 7.0(1) 以降に基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
現在、IPv6 は、市場への普及の面ではまだ新しいものといえます。しかし、IPv6 の設定アシスタンスやトラブルシューティングに関しての要求には着実に増えてきました。このドキュメントの目的はこのようなニーズに応え、さらに以下を提供することです。
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 ビットに拡大しました。これにより、サポートされるアドレシング階層が増大し、より多くのノードにアドレスの割り当てが可能になり、アドレスの自動設定が簡略化されました。マルチキャストルーティングのスケーラビリティは、マルチキャストアドレスにスコープフィールドを追加することで向上します。さらに、エニーキャストアドレスと呼ばれる新しいタイプのアドレスが定義されます。これは、グループ内の任意のノードにパケットを送信するために使用されます。
IPv4 ヘッダーの一部が削除され、または省略可能になりました。これにより、一般的なケースのパケット処理のコストが低減し、IPv6 ヘッダーの帯域幅コストが制限されます。
IP ヘッダー オプションのエンコード方法が変わったことにより、フォワーディングが効率化され、オプションの長さに対する制限が緩和されるとともに、今後新しいオプションを導入する際の柔軟性が向上しました。
この新機能で、送信者が特定のトラフィック フローに属するパケットにラベリングを行うことにより、そのトラフィック フローに対して、デフォルト以外の Quality of Service(QoS)やリアルタイム サービスなどの特別な処理を要求できるようになりました。
IPv6 には、認証、データの整合性、機密(オプション)をサポートするための機能拡張が仕様に盛り込まれています。
このセクションでは、Cisco ASA を IPv6 で使用するための設定方法について説明します。
このドキュメントの各例における 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 アドレスを設定できます。
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, outsideASAv(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)#
まず、アップストリームの Cisco 881 シリーズ サービス統合型ルータ(ISR)の Open Shortest Path First バージョン 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の最も重要な相違点の1つは、IPv6にAddress Resolution Protocol(ARP)が存在しないことです。ローカルLANセグメントのIPアドレスを解決するためにARPを使用します。
また、ND が Media Access Control(MAC)アドレス解決に Internet Control Message Protocol バージョン 6(ICMPv6)を活用することを理解することも重要です。IPv6 ND の詳細については、IPv6 ネイバー検索(CLI ブック 1:Cisco ASA シリーズ CLI コンフィギュレーション ガイド(一般的な操作)9.4 )、または RFC 4861 内の ASA IPv6 コンフィギュレーション ガイドを参照してください。
現在、ほとんどの Ipv6 関連のトラブルシューティングは ND、ルーティング、またはサブネット設定の問題のいずれかに関連しています。これは、IPv4とIPv6の主な違いでもあります。IPv6でNATを使用することは推奨されず、プライベートアドレッシングはIPv4(RFC 1918以降)で利用されなくなったため、NDはARPとは異なります.. これらの違いを理解し、L2/L3 の問題を解決すれば、TCP/UDP と高位層のプロトコルの機能は(IP のバージョンを問わず)本質的に同じなため、レイヤ 4(L4)以上のトラブルシューティング プロセスは、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 が正常に解決されたことが確認できます。
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 からのネイバー アドバタイズメントがまったく受信されていないように見えます。パケット キャプチャを確認して、実際はどうであるかを調べることができます。
アクセス コントロール リスト(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)のフォーマット チェックが失敗したことにより破棄されていることが確認できます。
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の「EIGRPのガイドライン」セクションを参照してください。Cisco ASA シリーズ CLI コンフィギュレーション ガイド 9.4(一般的な操作)」)を参照してください。
ボーダー ゲートウェイ プロトコル(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の内部ホストをシミュレートする例を示します。 OSPF経由で881インターフェイスから学習したデフォルトルートを持つインターネット:
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 サブネットを作成できます。
ASA は、修正 EUI -64 エンコーディングされた IPv6 アドレスを必須とするよう設定できます。RFC 4291 によれば、EUI では、ホストが自分自身に一意の 64 ビットの IPv6 インターフェイス ID(EUI-64)を割り当てることができます。 この機能は、IPv6 アドレス付与で DHCP を不要とするもので、IPv4 に対するメリットでもあります。
ASA がこの拡張機能を必須とするよう ipv6 enforce-eui64 nameif コマンドにより設定した場合、ローカル サブネットの他のホストからの多くのネイバー検索要請とアドバタイズメントをドロップすることになります。
デフォルトでは、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
マッキントッシュ OS-X
IPv6 SLAAC をホスト上で次のリブートまで無効にするには、端末でこのコマンドを入力します。
sudo sysctl -w net.inet6.ip6.use_tempaddr=0
設定をいつも有効にするには、このコマンドを入力します。
sudo sh -c 'echo net.inet6.ip6.use_tempaddr=0 >> /etc/sysctl.conf'
Linux
端末のシェルで、このコマンドを入力します。
sysctl -w net.ipv6.conf.all.use_tempaddr=0
ASA から SLAAC をグローバルに無効にする
この挙動の問題を解決する 2 番目の方法は、SLAAC の使用をトリガーするため ASA からクライアントに送信される RA メッセージを変更することです。RA メッセージを変更するには、インターフェイス コンフィギュレーション モードでこのコマンドを入力します。
ASAv(config)# interface gigabitEthernet 1/1
ASAv(config-if)# ipv6 nd prefix 2001::db8/32 300 300 no-autoconfig
このコマンドで ASA が送信する RA メッセージを変更し、A- ビットのフラグを抑制することで、クライアントは一時的な IPv6 アドレスを生成しなくなります。
このセクションでは、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 が必要な場合、設定方法についてはIPv6 NAT ガイドライン(「CLI ブック 2:Cisco ASA シリーズ ファイアウォール CLI コンフィギュレーション ガイド 9.4」)を参照してください。
IPv6 では、ND は L2 アドレス解決のためにリンクローカル アドレスを使用します。このため、show failover コマンド出力にある、モニタ対象となっているインターフェイスの IPv6 アドレスには、このインターフェイスに設定されているグローバル IPv6 アドレスではなく、リンクローカル アドレスが表示されます。これは正常な動作です。
IPv6 の使用に関連した既知の注意事項のいくつかを次に示します。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
29-Jun-2015 |
初版 |