この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、適応型セキュリティアプライアンス(ASA)でのマルチキャストルーティングと、一般的な問題について説明します。
短縮形 |
説明 |
FHR |
ファーストホップルータ:マルチキャストトラフィックの送信元に直接接続されているホップ。 |
LHR |
ラストホップルータ:マルチキャストトラフィックの受信者に直接接続されているホップ。 |
RP |
ランデブーポイント |
DR |
指定ルータ |
SPT |
最短パスツリー |
RPT |
ランデブーポイント(RP)ツリー、共有ツリー |
RPF |
リバースパス転送 |
石油 |
Outgoing interface list |
MRIB |
マルチキャストルーティング情報ベース |
MFIB |
マルチキャスト転送情報ベース |
アーキテクチャ セールス マネージャ(ASM) |
Any-Sourceマルチキャスト |
BSR |
ブートストラップルータ |
SSM |
Source-Specific Multicast(SSM) |
FP |
高速パス |
SP |
低速パス |
CP |
コントロールポイント |
PPS |
パケット/秒レート |
ASAは真のマルチキャストルーティングプロトコル(PIM)を介してネイバーと通信するため、PIMスパースモードが推奨されます。IGMP スタブモードは、ASA バージョン 7.0 がリリースされる以前には唯一のマルチキャスト設定オプションでしたが、単純にクライアントから受信した IGMP レポートをアップストリーム ルータに向けて転送することで動作します。
一般に、マルチキャストインフラストラクチャは次のコンポーネントで構成されます。
Sender =>マルチキャストストリームを発信するホストまたはネットワークデバイス。たとえば、ビデオや音声ストリームを送信するサーバや、EIGRPやOSPFなどのルーティングプロトコルを実行するネットワークデバイスなどがあります。
Receiver =>マルチキャストストリームを受信するホストまたはデバイス。この用語は、トラフィックに積極的に関与し、IGMPを使用して対象のマルチキャストグループに加入または脱退するホストで頻繁に使用されます。
ルータ/ ASA =>マルチキャストストリーム/トラフィックを処理し、必要に応じて送信元からクライアントまでネットワークの他のセグメントに転送するネットワークデバイス。
マルチキャストルーティングプロトコル=>マルチキャストパケットの転送を担当するプロトコル。最も一般的なのはPIM(Protocol Independent Multicast)ですが、MOSPFなどの他のプロトコルもあります。
Internet Group Management Protocol(IGMP) =>クライアントが特定のグループからマルチキャストストリームを受信するために使用するプロセス。
PIM スパースモードでは、すべてのマルチキャスト トラフィックは最初にランデブー ポイント(RP)に送られ、そこから受信者に向けて転送されます。しばらくすると、マルチキャストフローは送信元から受信側に直接送られます(そしてRPをバイパスします)。
次の図は、ASAの1つのインターフェイスにマルチキャストクライアントがあり、別のインターフェイスにPIMネイバーがある場合の一般的な導入を示しています。
1.マルチキャストルーティングを有効にします(グローバルコンフィギュレーションモード)。
ASA(config)# multicast-routing
2. PIMランデブーポイントアドレスを定義します。
ASA(config)# pim rp-address 172.18.123.3
3.適切なインターフェイスでマルチキャストパケットの受信を許可します(ASAのセキュリティポリシーが着信マルチキャストパケットをブロックする場合にのみ必要です)。
access-list 105 extended permit ip any host 224.1.2.3 access-group 105 in interface outside
クライアントのIGMP登録(赤のステップ)とサーバが受信するストリーム(緑のステップ)の色が異なることに注目してください。このように行われているため、両方のプロセスが独立して発生する可能性があります。
クライアント登録手順(赤い手順):
1.クライアントがグループ239.1.1.77のIGMPレポートを送信する
2.ルータは、グループ239.1.1.77に対して設定されたスタティックRP(10.1.1.1)にPIM Joinメッセージを送信します。
3. ASAがグループ239.1.1.77に対するPIM JoinメッセージをRPに送信する
ASAでshow mrouteコマンドの出力にPIM *,Gエントリが表示されます。
ciscoasa# show mroute 239.1.1.77 Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, I - Received Source Specific Host Report, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, State (*, 239.1.1.77), 00:03:43/00:02:41, RP 10.1.1.1, flags: S Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:03:43/00:02:41
ただし、送信元サーバではストリームがまったく開始されていないため、ASAの「show mfib」出力には受信パケットが表示されません。
ciscoasa# show mfib 239.1.1.77 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.1.1.77) Flags: C K Forwarding: 0/0/0/0, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 0/0
サーバがマルチキャストグループへのトラフィックの送信を開始する前に、RPは次のように、リストに着信インターフェイスのない「*.G」エントリのみを表示します。
CRSv#show ip mroute 239.1.1.77 IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group, G - Received BGP C-Mroute, g - Sent BGP C-Mroute, N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed, Q - Received BGP S-A Route, q - Sent BGP S-A Route, V - RD & Vector, v - Vector, p - PIM Joins on route, x - VxLAN group Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.1.1.77), 00:00:02/00:03:27, RP 10.1.1.1, flags: S Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:00:02/00:03:27
サーバがマルチキャストグループへのストリームを開始すると、RPは「S,G」エントリを作成し、送信側に面したインターフェイスを着信インターフェイスリストに配置して、トラフィックをダウンストリームのASAに送信し始めます。
CRSv#show ip mroute 239.1.1.77 ... (*, 239.1.1.77), 00:03:29/stopped, RP 10.1.1.1, flags: SF Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:03:29/00:02:58 (10.38.118.10, 239.1.1.77), 00:00:07/00:02:52, flags: FT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:00:07/00:03:22
確認には、次のコマンドを使用します。
- show mrouteコマンドで「S,G」エントリが表示される
- show mfibコマンドは、転送パケットカウンタを表示します。
- show connコマンドは、マルチキャストグループipに関連する接続を表示します
ciscoasa# show mroute 239.1.1.77 Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, I - Received Source Specific Host Report, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, State (*, 239.1.1.77), 00:06:22/00:02:50, RP 10.1.1.1, flags: S Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:06:22/00:02:50 (10.38.118.10, 239.1.1.77), 00:03:00/00:03:28, flags: ST Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:03:00/00:03:26 ciscoasa# show mfib 239.1.1.77 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.1.1.77) Flags: C K Forwarding: 15/0/1271/0, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 0/15 (10.38.118.10,239.1.1.77) Flags: K Forwarding: 7159/34/1349/360, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 7159/5 ciscoasa# show conn all | i 239.1.1.77 UDP outside 10.38.118.10:58944 inside 239.1.1.77:5004, idle 0:00:00, bytes 10732896, flags - UDP outside 10.38.118.10:58945 inside 239.1.1.77:5005, idle 0:00:01, bytes 2752, flags - UDP outside 10.38.118.10:58944 NP Identity Ifc 239.1.1.77:5004, idle 0:00:00, bytes 0, flags - UDP outside 10.38.118.10:58945 NP Identity Ifc 239.1.1.77:5005, idle 0:00:01, bytes 0, flags -
注:クライアントがマルチキャストクライアントアプリケーションを閉じると、ホストはIGMP Queryメッセージを送信します。
これがクライアントがストリームを受信する目的でルータによって認識される唯一のホストである場合、ルータはRPにIGMP Pruneメッセージを送信します。
1.マルチキャストルーティングを有効にします(グローバル設定モード)。
ASA(config)# multicast-routing
2.ファイアウォールがigmpレポートを受信するインターフェイスで、igmp forward-interfaceコマンドを設定します。このパケットをこのインターフェイスからストリームの送信元へ転送します。この例では、マルチキャストの受信者は内部インターフェイスに直接接続されており、マルチキャストの送信元は外部インターフェイスの外部にあります。
! interface Ethernet0 nameif outside security-level 0 ip address 172.16.1.1 255.255.255.0 no pim ! interface Ethernet1 nameif inside security-level 100 ip address 10.0.0.1 255.255.255.0 no pim igmp forward interface outside !
3.適切なインターフェイスでマルチキャストパケットの受信を許可します(ASAのセキュリティポリシーが着信マルチキャストトラフィックを拒否する場合にのみ必要です)。
ASA(config)# access-list 105 extended permit ip any host 224.1.2.3 ASA(config)# access-group 105 in interface outside
さまざまなigmp interface sub-modeコマンドに関して混乱が生じることが多く、それぞれを使用する状況を次の図に示します。
双方向PIMには、共有ツリー(SPT)はありません。これは、次の3つのことを意味します。
1.ファーストホップルータ(送信元に接続している)は、PIM登録パケットをRPに送信しません。
2. RPは送信元ツリーに参加するためのPIM JOINメッセージを送信しません。
3.受信側へのパス内のルータは、RPに向けてPIM Joinメッセージを送信し、RPTに参加します。
これは、デバイスがSPTに参加しないため、ASAが(S,G)を生成しないことを意味します。マルチキャストトラフィックはすべてRPを通過します。ASAは、(*,G)が存在する限り、すべてのマルチキャストトラフィックを転送します。(*,G)がない場合、ASAはPIM joinパケットを受信しなかったことを意味します。この場合、ASAはマルチキャストパケットを転送できません。
1.マルチキャストルーティングを有効にします(グローバルコンフィギュレーションモード)。
ASA(config)# multicast-routing
2. PIMランデブーポイントアドレスを定義します。
ASA(config)# pim rp-address 172.18.123.3 bidir
3.適切なインターフェイスでマルチキャストパケットの受信を許可します(ASAのセキュリティポリシーが着信マルチキャストパケットをブロックする場合にのみ必要です)。
access-list 105 extended permit ip any host 224.1.2.3 access-group 105 in interface outside
ASAのマルチキャスト転送の問題を完全に理解して診断するには、次の情報の一部またはすべてが必要です。
show mroute show mfib show pim neighbor show route show tech-support
capture cap1 interface outside match ip any host 239.1.1.77 >>> This captures the multicast traffic itself capture cappim1 interface inside match pim any any >>> This captures PIM Join/Prune messages capture capigmp interface inside match igmp any any >>> This captures IGMP Report/Query messages
show mroute コマンドの出力は、さまざまなグループ情報と転送情報を表示し、IOS の show mroute コマンドとよく似ています。show mfib コマンドは、さまざまなマルチキャスト グループの転送ステータスを表示します。特に Forwarding パケット カウンタと Other(ドロップを示す)を確認することが重要です。
ciscoasa# show mfib Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,224.1.2.3) Flags: S K Forwarding: 0/0/0/0, Other: 0/0/0 inside Flags: F Pkts: 0/0 (192.168.1.100,224.1.2.3) Flags: K Forwarding: 6749/18/1300/182, Other: 690/0/690 outside Flags: A inside Flags: F Pkts: 6619/8 (*,232.0.0.0/8) Flags: K Forwarding: 0/0/0/0, Other: 0/0/0 ciscoasa#
clear mfib countersコマンドはカウンタのクリアに使用でき、テスト中は非常に役に立ちます。
ciscoasa# clear mfib counters
オンボードパケットキャプチャユーティリティは、マルチキャストの問題のトラブルシューティングに非常に役立ちます。次の例では、DMZインターフェイスで宛先が239.17.17.17のすべての入力パケットがキャプチャされます。
ciscoasa# capture dmzcap interface dmz ciscoasa# capture dmzcap match ip any host 239.17.17.17 ciscoasa# show cap dmzcap 324 packets captured 1: 17:13:30.976618 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 2: 17:13:30.976679 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 3: 17:13:30.996606 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 4: 17:13:30.996652 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 5: 17:13:31.016676 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 6: 17:13:31.016722 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 ....
show capture x detailコマンドの出力にパケットのTTLが表示されるので、非常に便利です。この出力では、パケットのTTLは1です(デフォルトではIPパケットのTTLが減分されないため、ASAはこのパケットを渡します)。しかし、下流のルータはパケットをドロップします。
ASA# show cap capout detail 453 packets captured ... 1: 14:40:39.427147 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.4.2.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0)
パケットキャプチャは、PIMおよびIGMPトラフィックのキャプチャにも役立ちます。次のキャプチャは、10.0.0.2を送信元とするIGMPパケット(IPプロトコル2)を内部インターフェイスが受信したことを示しています。
ciscoasa# capture capin interface inside ciscoasa# capture capin match igmp any any ciscoasa# show cap capin 1 packets captured 1: 10:47:53.540346 802.1Q vlan#15 P0 10.0.0.2 > 224.1.2.3: ip-proto-2, length 8 ciscoasa#
パケットのTTLは「show capture x detail」コマンドで確認できることに注意してください。
ここでは、ドロップされたマルチキャストパケットとドロップの理由(パントレート制限)を示す、取得されたASPドロップキャプチャを確認できます。
ASA# show cap capasp det 12: 14:37:26.538332 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded 13: 14:37:26.538439 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded
次の図は、ASAがPIMスパースモードでネイバーデバイスと通信する方法を示しています。
ネットワークトポロジを理解する
特定のマルチキャストストリームの送信側と受信側の場所を正確に特定します。また、マルチキャストグループのIPアドレスとランデブーポイントの場所を特定します。
|
この場合、データはASAの外部インターフェイスで受信され、内部インターフェイスのマルチキャスト受信者に転送されます。レシーバはASAの内部インターフェイスと同じIPサブネット内にあるため、クライアントがストリームの受信を要求したときに内部インターフェイスで受信されるIGMPレポートを確認できます。送信元の IP アドレスは 192.168.1.50 です。
ASAがレシーバからIGMPレポートを受信することを確認します
この例では、IGMP レポートは受信者によって生成され、ASA によって処理されます。
パケット キャプチャと debug igmp の出力を使用して、ASA が IGMP メッセージを受信して正常に処理したことを確認できます。
ASAがランデブーポイントに向けてPIM joinメッセージを送信することを確認します
ASA は IGMP レポートを解釈して PIM join メッセージを生成し、それをインターフェイスから RP に向けて送信します。
次の出力はdebug pim group 224.1.2.3によるものであり、ASAがPIM joinメッセージを正常に送信したことを示しています。マルチキャストストリームの送信元は192.168.1.50です。
IPv4 PIM: (*,224.1.2.3) J/P processing IPv4 PIM: (*,224.1.2.3) Periodic J/P scheduled in 50 secs IPv4 PIM: (*,224.1.2.3) J/P adding Join on outside IPv4 PIM: (*,224.1.2.3) inside Processing timers IPv4 PIM: Sending J/P message for neighbor 10.2.3.2 on outside for 1 groups IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) MRIB update (a=0,f=0,t=1) IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) outside MRIB update (f=20,c=20) IPv4 PIM: [0] (192.168.1.50,224.1.2.3) Signal present on outside IPv4 PIM: (192.168.1.50,224.1.2.3) Create entry IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) outside MRIB modify NS IPv4 PIM: Adding monitor for 192.168.1.50
ASAがマルチキャストストリームを受信して転送することを確認します
ASAは外部インターフェイス(緑色の矢印)でマルチキャストトラフィックの受信を開始し、内部のレシーバに転送します。
show mroute コマンドと show mfib コマンド、およびパケット キャプチャを使用して、ASA がマルチキャスト パケットを受信して転送することを確認できます。
接続は、マルチキャストストリームを表すために接続テーブルに作成されます。
ciscoasa# show conn 59 in use, 29089 most used ... UDP outside:192.168.1.50/52075 inside:224.1.2.3/1234 flags - ...
このセクションでは、一連の実際のASAマルチキャスト関連の問題について説明します
この問題が発生すると、ASA はインターフェイスからの PIM メッセージのすべての送信に失敗します。次の図は、ASAが送信側に向けてPIMメッセージを送信できないことを示していますが、ASAがRPに向けてPIMメッセージを送信する必要がある場合にも同じ問題が見られます。
debug pimコマンドの出力は、ASAがPIMメッセージをアップストリームのネクストホップルータに送信できないことを示しています。
IPv4 PIM: Sending J/P to an invalid neighbor: outside 10.0.0.1
この問題は ASA 固有のものではなく、ルータにも影響します。この問題は、ルーティングテーブルの設定とPIMネイバーによって使用されるHSRP設定の組み合わせによって引き起こされます。
ルーティングテーブルは、ネクストホップデバイスとしてHSRP IP 10.0.0.1を指しています。
ciscoasa# show run route route outside 0.0.0.0 0.0.0.0 10.0.0.1 1
しかし、PIM のネイバー関係は、HSRP IP ではなく、ルータの物理インターフェイス IP アドレスとの間で形成されています。
ciscoasa# show pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir 10.0.0.2 outside 01:18:27 00:01:25 1 10.0.0.3 outside 01:18:03 00:01:29 1 (DR)
詳細については、『PIMスパースモードがHSRPアドレスへのスタティックルートとともに動作しない理由』を参照してください。
ドキュメントの抜粋を次に示します。
ルータはなぜ Join/Prune メッセージを送信しないのでしょうか。 RFC 2362 には「ルータは、(S,G)、(*,G)、および (*,*,RP) の各エントリに関連付けられた明確な RPF ネイバーに対して、定期的に Join/Prune メッセージを送信する。Join/Prune メッセージは、RPF ネイバーが PIM ネイバーである場合にのみ送信される」と定義されています。」
この問題を回避するには、問題のトラフィックに対して ASA でスタティックな mroute エントリを追加します。2つのルータインターフェイスIPアドレス(10.0.0.2または10.0.0.3)のいずれかを指していることを確認します。この場合、次のコマンドにより、ASAは172.16.1.2のマルチキャスト送信者に向けてPIMメッセージを送信できます。
ciscoasa(config)# mroute 172.16.1.2 255.255.255.255 10.0.0.3
これが完了すると、マルチキャストルーティングテーブルはASAのユニキャストルーティングテーブルを上書きし、ASAはPIMメッセージをネイバーの10.0.0.3に直接送信します。
この問題では ASA は直接接続されたマルチキャスト受信者から IGMP レポートを受信しますが、それを無視します。デバッグ出力は生成されず、パケットは単純にドロップされ、ストリームの受信は失敗します。
この問題では、ASAはクライアントが存在するLANセグメント上のPIMによって選出された指定ルータではないため、ASAはパケットを無視します。
次のASA CLI出力は、別のデバイスが内部インターフェイスネットワーク上の代表ルータ(DR)であることを示しています。
ciscoasa#show pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir 192.168.1.2 outside 01:18:27 00:01:25 N/A> 10.0.0.2 inside 01:18:03 00:01:29 1 (DR)
デフォルトでは、multicast-routingコマンドが設定に追加されると、すべてのASAインターフェイスでPIMが有効になります。ASAのInsideインターフェイス(クライアントが存在する場所)に他のPIMネイバー(他のルータまたはASA)があり、それらのネイバーの1つがセグメントのDRとして選出された場合、DRではないルータはIGMPレポートをドロップします。これを解決するには、インターフェイスでPIMを無効にするか(関係するインターフェイスでno pimコマンドを使用)、またはpim dr-priorityインターフェイスコマンドを使用して、ASAをセグメントのDRにします。
デフォルトでは、ASAはインターフェイスで追跡される500の現在のアクティブな参加(レポート)を許可します。これは設定可能な最大値です。多数のマルチキャストストリームがインターフェイス外のクライアントによって要求される場合、最大500のアクティブJoinが検出され、ASAはマルチキャスト受信側からの追加の着信IGMPレポートを無視する可能性があります。
これがマルチキャスト障害の原因であるかどうかを確認するには、コマンド「show igmp interface interfacename」を発行して、インターフェイスの「IGMP limit」情報を探します。
ASA# show igmp interface inside Hosting-DMZ is up, line protocol is up Internet address is 10.11.27.13/24 IGMP is enabled on interface Current IGMP version is 2 IGMP query interval is 125 seconds IGMP querier timeout is 255 seconds IGMP max query response time is 10 seconds Last member query response interval is 1 seconds Inbound IGMP access group is: IGMP limit is 500, currently active joins: 500 Cumulative IGMP activity: 7018 joins, 6219 leaves IGMP querying router is 10.11.27.13 (this system)
DEBUG - IGMP: Group x.x.x.x limit denied on outside
このアドレス範囲は、ASA で現在サポートされていない Source Specific Multicast(SSM)で使用されます。
debug igmpコマンドの出力に、次のエラーが表示されます。
IGMP: Exclude report on inside ignored for SSM group 232.179.89.253
この場合、ASA はインターフェイスでマルチキャスト トラフィックを受信しますが、受信者には転送されません。パケットがリバース パス転送(RPF)のセキュリティ チェックに失敗したため、ASA によってパケットがドロップされます。RPF はすべてのインターフェイスでマルチキャスト トラフィックに対して有効であり、無効にはできません(ユニキャスト パケットに対してはこのチェックはデフォルトではオフで、ip verify reverse-path interface コマンドによって有効になります)。
ASA は、マルチキャスト トラフィックをインターフェイスで受信したときに、RPF チェックによってそのインターフェイス上でマルチキャスト トラフィックの送信元へ戻るルートが存在するかどうかを確認します(ユニキャストとマルチキャストのルーティング テーブルを確認します)。送信元へのルートがない場合はパケットをドロップします。このドロップは show asp drop の出力でカウンタとして表示されます。
ciscoasa(config)# show asp drop Frame drop: Invalid UDP Length 2 No valid adjacency 36 No route to host 4469 Reverse-path verify failed 121012
1つのオプションは、トラフィックの送信元にmrouteを追加することです。次の例では、mrouteコマンドを使用して、外部インターフェイスで受信された172.16.1.2から送信されたマルチキャストトラフィックに対するRPFチェックを実行しています。
ciscoasa(config)# mroute 172.16.1.2 255.255.255.255 outside
最初に、PIMスパースモードのマルチキャストパケットは、マルチキャストの送信元からRPに送られ、次にRPから共有マルチキャストツリー経由で受信者に送られます。ただし、集約ビットレートが特定のしきい値に達すると、マルチキャスト受信側に最も近いルータがソース固有のツリーに沿ってトラフィックの受信を試みます。このルータはグループに対して新しいPIM joinを生成し、それをマルチキャストストリームの送信元に向けて送信します(以前のようにRPに向けて送信するのではありません)。
マルチキャストトラフィックの送信元は、RPとは異なるASAインターフェイスに存在できます。ASA が送信元ツリーへスイッチする PIM join を受信したときに、ASA は送信元の IP アドレスへのルートを知っている必要があります。このルートが見つからない場合、PIM joinパケットはドロップされ、debug pimの出力に次のメッセージが表示されます
NO RPF Neighbor to send J/P
この問題の解決策は、ストリームの送信者に対するスタティックなmrouteエントリを追加することです。このエントリは、送信者が所属しているASAインターフェイスを指し示します。
この場合、パケットのTTLが低すぎるため、マルチキャストトラフィックは失敗します。これにより ASA またはネットワークの他のデバイスがパケットをドロップします。
多くの場合、マルチキャスト パケットの IP TTL は、それを送信するアプリケーションによって非常に小さい値に設定されます。マルチキャスト トラフィックがネットワーク経由で遠くまで運ばれることがないように、デフォルトでこのように設定されている場合があります。たとえば、デフォルトではVideo LAN クライアントアプリケーション(一般的なマルチキャスト送信およびテストツール)は、デフォルトでIPパケットのTTLを1に設定します。
マルチキャストトポロジに関して次のすべてが当てはまる場合、ASAでCPUの使用率が高くなり、マルチキャストストリームでパケットのドロップが発生する可能性があります。
上記のすべての症状が発生した場合は、 設計上の制限により、ASAはマルチキャストトラフィックのプロセススイッチングを強制されます。この結果、高いデータ レートのマルチキャスト ストリームでパケット ドロップが発生します。これらのパケットがドロップしたときに増加する show asp drop のカウンタは punt-rate-limit です。
ASAにこの問題があるかどうかを確認するには、次の手順を実行します。
ステップ1:ASAがRPであるかどうかを確認します。
show run pim show pim tunnel
ステップ2:ASAが最後のホップルータかどうかを確認します。
show igmp group <mcast_group_IP>
ステップ3:ASAがファーストホップルータかどうかを確認します。
show mroute <mcast_group_IP>
この問題を軽減するには、次の手順を実行します。
- ASAがRPにならないようにトポロジを変更します。または、送信側または受信側をASAに直接接続しないようにしてください
- PIMの代わりに、マルチキャストフォワーディングにIGMPスタブモードを使用します。
マルチキャスト ストリームの最初のパケットが ASA に届いたときに、ASA はそのマルチキャスト接続を構築し、パケットを転送するための関連する mroute エントリを作成する必要があります。エントリの作成中は、mrouteと接続が確立されるまで(通常は1秒未満で済みます)、一部のマルチキャストパケットが廃棄される場合があります。マルチキャストストリームの設定が完了すると、パケットにレート制限は適用されなくなります。
この理由でドロップされたパケットのASPドロップ理由は「(punt-rate-limit) Punt rate limit exceeded」です。次に、「show capture asp」の出力を示します(ここで、aspは、ドロップされたパケットをキャプチャするようにASAで設定されたASPドロップキャプチャです)。この理由でドロップされたマルチキャストパケットを確認できます。
ASA # show capture asp 2 packets captured 1: 16:14:49.419091 10.23.2.2.810 > 239.255.123.123.890: udp 32 Drop-reason: (punt-rate-limit) Punt rate limit exceeded 2: 16:14:49.919172 10.23.2.2.810 > 239.255.123.123.890: udp 32 Drop-reason: (punt-rate-limit) Punt rate limit exceeded 2 packets shown
この問題が発生するのは、IGMPスタブモードで動作するASAだけです。PIM マルチキャスト ルーティングに参加している ASA には影響がありません。
この問題は、Cisco Bug ID CSCeg48235 1つのインターフェイスでIGMP Leaveを実行すると、他のインターフェイスのマルチキャストトラフィックが中断されます。
次に、この問題について説明しているバグのリリース ノートを示します。
Symptom: When a PIX or ASA firewall is configured for IGMP stub mode multicast reception and traffic from a multicast group is forwarded to more than one interface, if a host behind a the interface sends an IGMP Leave message for the group, it could temporarily interrupt the reception for that group on other interfaces of the firewall. The problem is triggered when the firewall forwards the IGMP leave for the group towards the upstream device; that device then sends a IGMP query to determine if any other receivers exist out that interface towards the firewall, but the firewall does not report that it still has valid receivers. Conditions: The PIX or ASA must be configured for IGMP stub mode multicast. IGMP stub mode is a legacy multicast forwarding technique, whereby IGMP packets from receivers are forwarded through the firewall towards the source of the stream. It is recommended to use PIM multicast routing instead of stub igmp forwarding. Workarounds: 1) Use PIM multicast routing instead of IGMP stub mode. 2) Decrease multicast IGMP query timers so that the receivers are queried more frequently, so their IGMP reports are forwarded towards the sender more frequently, thus restarting the stream quicker.
この特定の問題では、ASAは(設定されたセキュリティポリシーに従って)マルチキャストパケットをドロップします。しかし、ネットワーク管理者にとってはパケットがドロップする理由を特定することが困難です。この場合、インターフェイスに設定された発信アクセスリストが原因で、ASAはパケットをドロップします。回避策は発信アクセスリストでマルチキャスト ストリームを許可することです。
これが発生すると、マルチキャストパケットはASPドロップカウンタ「FP no mcast output intrf (no-mcast-intrf)」でドロップされます。
トラフィックは、パントレート制限のためにコントロールポイントによってレート制限されている可能性が高いです。asp dropの出力とキャプチャを見て、次のことを確認します。
ASA# show asp drop Frame drop: Punt rate limit exceeded (punt-rate-limit) 1492520
ASA# show cap capasp det 12: 14:37:26.538332 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded
mfibエントリは、すべてのトラフィックがプロセススイッチングされていることを示しています。
ASA(config)# show mfib 239.255.2.1195 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.255.2.195) Flags: C K Forwarding: 4278/50/1341/521, Other: 0/0/0 Outside-1007 Flags: A RDEQ-to-Corporate Flags: F NS Pkts: 0/4278 <---- HERE
マルチキャストルーティングテーブルには(*,G)が表示されますが、(S,G)は表示されません。
ASA(config)# show mroute 239.255.2.1195 Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, I - Received Source Specific Host Report, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, State (*, 239.255.2.195), 00:44:03/00:02:44, RP 10.1.135.10, flags: S Incoming interface: Outside-1007 RPF nbr: 10.100.254.18 Immediate Outgoing interface list: RDEQ-to-Corporate, Forward, 00:44:03/00:02:44
ここでの問題は、ASAに到着するパケットのマルチキャストデータパケットのTTLが1であるということです。ASAはこれらのパケットをダウンストリームデバイスに転送しますが(TTLを減らさないため)、ルータのダウンストリームはパケットをドロップします。その結果、ダウンストリームルータは送信元に向けてASAにPIM(S,G)参加(送信元固有の参加)を送信しません。ASAは、このPIM joinを受信するまで(S,G)エントリを構築しません。(S,G)は構築されないため、すべてのマルチキャストトラフィックはプロセス交換され、レート制限が発生します。
この問題の解決策は、パケットのTTLが1でないことを確認することです。これにより、ダウンストリームデバイスは送信元固有のjoinを送信者に送信できます。これにより、ASAはテーブルに送信元固有のmrouteをインストールし、すべてのパケットは(処理スイッチングではなく)ファーストスイッチングされ、トラフィックは問題なくASAを通過する必要があります。
2つのネットワークデバイスが同じマルチキャストパケットを同じサブネットに転送する場合、理想的には、一方のデバイスがパケットの転送を停止する必要があります(ストリームを複製するのは無駄であるためです)。PIMを実行しているルータが、同じインターフェイスで生成したパケットと同じパケットを受信したことを検出すると、そのLANでアサートメッセージを生成し、ストリームの転送を停止するネットワークデバイスを選択します。
このメッセージの詳細については、ASSERTプロセスに関するRFC 4601のセクションを参照してください。
このデバッグでは、ASAがグループ239.1.1.227のIGMPレポートを受信しても、隣接ルータから受信したアサートメッセージが原因でレポートを無視することがわかります。
IPv4 PIM: (*,239.1.1.227) Periodic J/P scheduled in 50 secs IPv4 PIM: (*,239.1.1.227) J/P adding Join on outside IPv4 PIM: (10.99.41.205,239.1.1.227)RPT J/P adding Prune on outside IPv4 PIM: (10.99.41.253,239.1.1.227)RPT J/P adding Prune on outside IGMP: Received v2 Report on inside from 10.20.213.204 for 239.1.1.227 IGMP: Updating EXCLUDE group timer for 239.1.1.227 IPv4 PIM: (10.99.41.253,239.1.1.227) Received [15/110] Assert from 10.20.13.2 on inside IPv4 PIM: (10.99.41.253,239.1.1.227) Assert processing message wins IPv4 PIM: (10.99.41.253,239.1.1.227) inside Update assert timer (winner 10.20.13.2)
この問題は、2つのサイトが誤ってレイヤ2でブリッジされている実稼働ネットワークで見られ、マルチキャスト受信側が存在するLANに、2つのデバイスがそれらのデバイスにマルチキャストトラフィックを転送していました。別のネットワーク問題が原因で、ASAと別のデバイスはPIM helloを介してお互いを検出できなかったため、両方ともLANの代表ルータ(DR)の役割を引き受けました。これにより、マルチキャストトラフィックがしばらくの間動作し、デバイスからASSERTメッセージが送信されると失敗します。この問題を解決するために、レイヤ2のデバイスをブリッジする誤った接続を無効にし、問題を解決しました。
これは629575899で観察されました。ASAはジャンボフレーム用に設定され、4900はジャンボフレーム用に設定されていませんでした。クライアントが73を超えるマルチキャストストリームを要求すると、特定のマルチキャストストリームが機能しません。73 SGは、サイズが1494のPIM Joinメッセージを作成しますが、これはまだMTUの範囲内です。74 SGは1500より大きいPIM Joinメッセージを作成するため、4900Mは着信パケットをドロップします。
この問題の修正は次のとおりです。
1. 4900Mでジャンボフレームがグローバルに有効になっていることを確認します
2.物理インターフェイスとSVIの両方をMTU 9216で設定する
改定 | 発行日 | コメント |
---|---|---|
1.0 |
03-Jan-2013 |
初版 |